データファイルのバックアップをどうしようか?と考えていました。
主な要望は以下
・homeディレクトリ毎すべてのファイルをバックアップしたい
・バックアップ先はLinkStation(バッファロー製)
・使えるプロトコルは「FTP」
LinuxサーバーからLinuxサーバーへのバックアップであれば「rsync」を使用できるが、相手がFTPしか使えないのでどうするか?
FTPコマンドでは1ファイルずつ操作するので、増えていくファイルに対応するのは至難の業ですね。
そこで、何かないかとさがしていたところ、見つけたのは「lftp」です。rsyncが流行するまで使用されたことがあるようですが、幸いCentOSには標準で入っている(追加のモジュールが必要です)ようです。
以下、設定手順
必要なモジュールをアップデートする
# yum install lftp
lftp
perl-String-CRC32
rootフォルダにシェルスクリプトを作成する
# vi daily_backup.sh
—
#!/bin/sh
# FTP SYNC
lftp -u ユーザ名,パスワード -e “mirror –reverse –only-newer /home /disk1/backup” ホスト名 << END
quit
END
---
基本的なコマンドは
lftp -u ユーザ名,パスワード ホスト名
となる。ホスト名はIPアドレスでよい。
「mirror コピー元,コピー先」でフォルダの同期が行えるが標準はダウンロードになる。今回はバックアップのLinkStationにアップロードしたいので、「--reverse」スイッチを使用する。またバックアップ節減のため新規ファイルのみ対象とするため、さらに「--only-newer」スイッチを付加する。
lftpコマンドは自身で終了しないので、最後に「quit」を入力する。
シェルの権限変更
# chmod 700 daily_backup.sh
毎日2時に実行する
# vi /etc/crontab
---
0 2 * * * root /root/daily_backup.sh
---
# service crond restart
これでFTPで同期処理できるようになった。
参考サイト: lftpで行う手軽なバックアップ