Linux:CentOS:lftpによるミラーリング
A鯖のフォルダとB鯖のフォルダを同期させたいという時がある。 rsyncでも出来るけど、centosはlftpが標準で入っていたのでこれを使う事にした。 lftpをバッチモードで動かせば結構いろんな事が出来るっぽいし。バッチ処理用のA鯖データ保存用のB鯖A鯖でlftpをバッチ起動、B鯖のディレクトリと同期を取る(A鯖をB鯖に合わせる)--A鯖をB鯖に合わせる--lftp sftp://[user]:[passwd]@[B鯖のip or hostname][初期ディレクトリ]mirror --only-newer [ホスト側(B鯖)同期ディレクトリ] [クライアント側(A鯖)同期ディレクトリ]closequit--/A鯖をB鯖に合わせる--A鯖で新しく追加されたファイルが無いかチェックし、追加されていたらそのファイルを対象にしてバッチ処理を走らせるA鯖でバッチ処理が終わったら、ファイルを別ディレクトリへ移動これでA鯖とB鯖に差異ができる。B鯖のディレクトリをA鯖に合わせるために、A鯖でlftpをバッチ起動、-Rオプションによって最初とは逆パターンの動機を取る--B鯖をA鯖に合わせる--lftp sftp://[user]:[passwd]@[B鯖のip or hostname][初期ディレクトリ]mirror -R --only-newer --delete [クライアント側(A鯖)同期ディレクトリ] [ホスト側(B鯖)同期ディレクトリ]closequit--/B鯖をA鯖に合わせる--見ての通り、A鯖とB鯖の同期ディレクトリを書く分が逆になっている。-Rオプション指定によってgetからputになった為?lftpを起動するのは前者も後者もA鯖から起動している。何か見にくいのでメモがてら記述例(123.45.67.89サーバーの/home/hogeuser/mirrorの内容を自分のマシンの/tmp/mirrorにコピー)--記述例--lftp sftp://hogeuser:hogepass@123.45.67.89/home/hogeusermirror --only-newer /home/hogeuser/mirror /tmp/mirrorclosequit--/記述例-- ちなみにnologinユーザーだとログインできなかった。ログインはじかれた場合は、そこら辺の設定を見てみるといいかも。