NcFTPでWebサイトやログファイルを自動定期バックアップ
- 2008.04.13
- Webマスター
Webコンテンツやログファイル等の定期的なバックアップに。
- MacにNcFTPをあらかじめインストールしておく。
- NcFTPのncftpget -Rコマンドで複数のファイルをダウンロードできる機能を利用する。
- バックアップスクリプトを作る。
- Mac上で、cronを利用して毎日あるいは、毎週バックアップする。
■手動でバックアップできることを確認しておく
適当なディレクトリで、FTPを実行してバックアップしたいファイルをダウンロードできることを確認する。
$ /usr/local/bin/ncftpget -u ユーザ名 -p 'パスワード' -R ftp://サーバ名/public_html/
public_html以下に大量にファイルがある場合、ダウンロードが始まるまで時間がかかる。
■バックアップスクリプトを作成する
バックアップ先は、外付けハードディスクの場合 ls -l /Volumes/ でマウント名を確認しておく。
バックアップ先: /Volumes/Backup/www/20080413/ (日付ディレクトリを毎回作る)
スクリプト保存場所: /Users/MyName/Scripts/backup.sh
FTPのログ: /Users/MyName/Scripts/backup.log
バックアップ元: ftp://サーバ名/ログイン時に指定したいディレクトリ/
backup.sh
#!/bin/sh # バックアップ先、ログファイルを指定する BACKUP_DIR=/Volumes/Backup/www FTP_LOG=/Users/MyName/Scripts/get_backup.log # 今日の日付でディレクトリを作る DATE=`date +%Y%m%d` mkdir $BACKUP_DIR/$DATE cd $BACKUP_DIR/$DATE # FTP開始時刻をログに記入する echo "###########################" >> $FTP_LOG echo BACKUP START: `date` >> $FTP_LOG # FTPでデータをダウンロードする /usr/local/bin/ncftpget -u MyName -p 'Password' -R ftp://192.168.1.123/public_html/ # ログに終了時刻をログ記入する echo BACKUP END: `date` >> $FTP_LOG echo "" >> $FTP_LOG echo "" >> $FTP_LOG
FTP先のホームディレクトリのpublic_htmlディレクトリを指定する場合、
ftp://サーバ名/public_html/
FTP先のホームディレクリではなく、上位のディレクトリ(ルートディレクトリや/etcなど)を指定する場合、
ftp://サーバ名/../../etc/
というように../で指定する。
chmod 700 backup.shで実行権を与えておくのを忘れずに。
■CRONで定期的に実行する
◎ crontab -e で毎朝7時に実行する。
0 7 * * * nice -n 10 $HOME/Scripts/backup.sh > /dev/null
- nice -n 10 を指定してCPUの使用優先順位を下げておくことで、ブラウザやメールの同時利用が快適になる。
- Mac OS X のシステム環境設定 > 省エネルギー > スケジュール を利用すれば、定期的にMacの電源を入れたり、シャットダウンできる。
◎ 毎週日曜日の朝7時に実行する場合。(0〜6で、日〜土を表す)
0 7 * * 0 nice -n 10 $HOME/Scripts/backup.sh > /dev/null
◎ 毎月1日の朝7時に実行する場合。
0 7 1 * * nice -n 10 $HOME/Scripts/backup.sh > /dev/null
-
前の記事
HTMLファイルだけを別のディレクトリにコピーする 2008.04.11
-
次の記事
Apache .htaccessでアクセス制限(特定のIPアドレス・ホスト) 2008.04.13