FTPによるファイル同期バッチ処理

ミラーサイトの同期をcronとftpコマンドで行う

要件

  • 直近X日以内に変更のあったファイルのみを対象とする

getの場合

ncftpが簡単

get -n X *

putの場合 or ncftpがない場合

方針

  1. findにて直近X日以内に変更のあったファイルを選別
  2. ftpの標準入力にコマンドファイルを流し込むバッチファイルにてput転送

実例

  • バッチファイル
#!/bin/bash
mkdir /tmp/hogehoge
find /original -mindepth 1 -mtime -X -exec cp "{}" /tmp/hogehoge \;
ftp -i -n < コマンドファイル
rm -rf /tmp/hogehoge
  • コマンドファイル
open サイト名
user ユーザ名 パスワード
cd 転送先ディレクトリ
lcd /tmp/hogehoge
mput *
close
bye
  • /etc/crontab
分 時 日 * * 自分のユーザ名 バッチファイルのパス