以前、blogのデータをシェルスクリプトでバックアップする話題を扱いました。
具体的には、シェルスクリプト内でtarを記述する時に、
# tar zcvf hogehoge.tar.gz -C /foo/bar/ hoge
こんな風に、-Cオプションを使って第一引数(この例では/foo/bar)から相対参照させて第二引数(この例ではhoge。第二引数なので、hogeの前にはスペースが入れてあります)を頂点とした階層で書庫の元を指定できる、というものでした。
実際に出来上がったhogehoge.tar.gzを解凍すると、hogeを頂点としたディレクトリ構造が正しく解凍されることも確認できましたので、今回はシェルスクリプトに正しく記述し、cronで自動実行させることにします。
まずスクリプトですが、バックアップを作成したいディレクトリに移動してからスクリプトを実行させたいので、
# vi backup.sh
#!/bin/bash
cd /backup-directory/
TODAY=`date ‘+%F’`
tar zcf hogehoge.$TODAY.tar.gz /blog/data/
とし、tar実行時のカレントディレクトリがバックアップディレクトリになるようにします。
まずはこの段階で
# sh ./backup.sh
してみて、きちんとバックアップファイルが作成されることを確認します。
問題なければ、後はこの間のcronの設定と同様にして、自動実行させます。
# vi /var/spool/cron/root
00 4 * * * /etc/init.d/httpsd restart
30 3 * * * /sbin/ntpdate ntp.nict.jp 1>/dev/null 2>/dev/null
00 2 * * 0 /bin/sh /root/backup.sh
とし、毎週日曜日(第五引数の「0」が日曜日を指す)の午前2時にバックアップをとらせることにしました。
ただ、WordPressのDBバックアップと違い、こちらは延々バックアップファイルを取りつづけてしまいます(WordPressの方は、BackWPupの設定で、バックアップファイルの数は5個と決めているので、6個めをとるときは一番古いバックアップファイルが自動的に削除され、常にバックアップされたファイルの数は5個になる)。
容量的にはしばらくは放置しておいて問題ありませんが、この辺もそのうちなんか考えないといけないかも知れません。
まぁ、何はさておき、ひとまずはこれで様子見することにします。
これで(予算さえ取れれば)サーバマシンのアップグレード(というか、メインマシンをアップグレードして現行のメインマシンをサーバに回す)が完全に視野に入ってきた・・・のかもしれない・・・(^_^;;