NASにcronで自動バックアップするシェルスクリプト
サーバー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)
Related Posts
No Comments »
RSS feed for comments on this post. TrackBack URL
Leave a comment
You must be logged in to post a comment.