May
30
2010
0

sar

9:57 am

sar(System Admin Report)は、システムの情報を収集し、リポートを出力します。
sar は、sysstat に含まれています。
インストールは、
$ sudo apt-get install sysstat
とするだけです。

sarは 引数に実行間隔、回数を指定することで、実行時からの情報を取得することができます。

$ sar 1 5 とすると1秒ごとに5回出力して、平均値を出してくれます。

コマンド実行時からのシステム負荷情報の表示は、以上で問題ないわけですが、サーバーなど普段から取得しているシステム負荷情報の表示をする場合は、システム情報を普段から収集しておく設定をしておく必要があり、デフォルトでは収集しない設定になっているので、設定ファイルを修正します。
$ sudo nano /etc/default/sysstat で設定ファイルを編集します。
修正するのは、以下のENABLED=”false”をコメントアウトし、ENABLED=”true”追記します。

# Should sadc collect system activity informations? Valid values
# are "true" and "false". Please do not put other values, they
# will be overwritten by debconf!
ENABLED="false"

修正後です。

# Should sadc collect system activity informations? Valid values
# are "true" and "false". Please do not put other values, they
# will be overwritten by debconf!
#ENABLED="false"
ENABLED="true"

/etc/cron.d/sysstat がインストール時に自動的に生成されています。

# The first element of the path is a directory where the debian-sa1
# script is located
PATH=/usr/lib/sysstat:/usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin
# Activity reports every 10 minutes everyday
5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1
# Additional run at 23:59 to rotate the statistics file
59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2

設定ファイルを上記のように編集すると普段から収集しているシステム負荷情報の表示ができるようになり、単純に $ sar とするだけで、 cron に設定している10分間隔でのレポートが見られます。

/etc/sysstat/sysstat を編集し、14日分のデータを保存するようにしました。

# sysstat configuration file.
# How long to keep log files (in days).
# Used by sa2(8) script
# If value is greater than 28, then log files are kept in
# multiple directories, one for each month.
#HISTORY=7
HISTORY=14
# Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=10

isag は sysstat で取得した情報をグラフ化してくれるツールです。
$ sudo apt-get install isag
でインストールします。
Munin というツールもあるようです。
$ sudo apt-get install munin munin-node
KSar というのもあるようです。

参考サイト
アクセラと+αな生活
いますぐ実践! Linux システム管理 / Vol.178 /

Written by hbirds in: basic settings | Tags: , , , ,
Mar
13
2010
0

NASにcronで自動バックアップするシェルスクリプト

11:02 am

サーバーUbuntu Server 9.10 PPCの特定のディレクトリ内のデータをLANでつながっているNASにcronで定期的に自動バックアップするシェルスクリプトを作ってみたいと思います。
前提として、NASには共有フォルダが作成されており、サーバーにインストールしたsambaで認識できるようになっていることとします。

・バックアップ元(サーバー)ディレクトリ
/home/hbirds

・バックアップ先(NAS)ディレクトリ
/share

・事前の準備
NASbackup.shを文字コードUTF-8で作成し、/usr/local/sbin/に設置します。
$ sudo chmod 755 /usr/local/sbin/NASbackup.sh
$ sudo mkdir /var/backup

シェルスクリプト NASbackup.sh /usr/local/sbin/NASbackup.sh
以下の例では、バックアップ先のコンピュータ名=NAS、共有フォルダ名=share、NASのパスワード=password、NASのユーザー名=adminとなっていますが、自分の環境にあわせて設定します。

#!/bin/sh
#バックアップ・ログの保存場所
LOG=/var/backup/log.txt
#バックアップ対象になるディレクトリ
BACKUP_OJBECT=/home/hbirds
/bin/tar cvjf /tmp/backup_`/bin/date +%y%m%d%H%M`.tar.bz2 $BACKUP_OJBECT/* >> $LOG
cd /tmp
echo '-- Backup File ---' >> $LOG
/bin/ls backup_* >> $LOG
/usr/bin/smbclient //NAS/share password -U admin -c "prompt; mput backup_*.tar.bz2" >> $LOG
rm -f *.tar.bz2 >> $LOG
echo '------------------' >> $LOG
echo `/bin/date` >> $LOG
echo '------------------' >> $LOG

シェルスクリプトを実行して確認
$ sudo /usr/local/sbin/NASbackup.sh
実行結果です。以下のとおり成功しました。

hbirds@UbuntuServer:/usr/local/sbin$ sudo NASbackup.sh
/bin/tar: Removing leading `/' from member names
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.30-1.4.osstech]
putting file backup_1003131034.tar.bz2 as \backup_1003131034.tar.bz2 (8431.2 kb/s) (average 8431.2 kb/s)

念のためにNASにアクセスしてバックアップが取れているか確認します。

cron作成
シェルが問題なく動作したのを確認し、$ sudo nano /etc/crontab とし、crontabファイルに以下を追記します。これで毎日午前5時30分にバックアップを自動で行うようになります。

45 5 * * * /usr/local/sbin/NASbackup.sh

毎日午前5時45分にNASbackup.shを実行する設定です。

$ crontab -l として確認してみると

hbirds@UbuntuServer:~$ crontab -l
no crontab for hbirds

設定できてないようです。
デスクトップUbuntuの場合は、crontabに直接書き込んでも良かったのですが、サーバーの場合はダメなようです。この参考サイトのとおりやってみました。
$ crontab -l として確認してみると、設定できています。

hbirds@UbuntuServer:~$ crontab -l
# m h  dom mon dow   command
45 5 * * * /usr/local/sbin/NASbackup.sh 

syslogで確認
$ tail /var/log/syslog

バックアップしたファイルの確認
$ cat /var/backup/log.txt とすれば、ログファイルでバックアップしたファイルが確認できます。

バックアップしたファイルを復元するには
$ sudo jxvf ファイル名(backup_XXXXXXXXXX.tar.bz2)
となります。

メールの確認
$ cat /var/mail/hbirds で届いたメールの確認
最後の方に以下のようになっていればバックアップ成功です。

putting file backup_1003150545.tar.bz2 as \backup_1003150545.tar.bz2 (10446.6 kb/s) (average 10446.6 kb/s)

www.hbirds.net