5分ごとに、いくつかの新しいファイルがlftpを介してローカルディレクトリにダウンロードされます。存在しないファイルだけが別のFTPにアップロードする必要があります。これまで私のスクリプトは次のようになります
#! /bin/bash
today=$(date +%Y%m%d)
today_files="rec."$today"_"
programa_dir="/home/user/local-dir"
# Download files, that do not exist in the local directory
lftp <<EOF
open -u user,pass ftp1
mget "$today_files*" -O $programa_dir
bye
EOF
# Upload the files
lftp <<EOF
open -u user,pass ftp2
lcd $programa_dir
mirror -R
bye
EOF
Mirror -R コマンドは、2 番目の FTP のリモートディレクトリには少数のファイルしか存在しないことを認識しません。
この問題を解決する方法はありますか?ファイルが作成または変更された時間ではなく、ファイル名のみを確認してください。
2番目のFTPのために試しました。
lftp <<EOF
open -u user,pass ftp2
mput $programa_dir/* -O /
bye
EOF
結果は同じです。 lftp は存在しないファイルだけでなく、すべてのファイルをアップロードします。
答え1
--only-missing
現在LFTPにはアクセスできませんが、でのみ使用可能なパラメータを探しているようですmirror
。
この試み:
lftp <<<EOF
open -u user,pass ftp2
mirror --reverse --only-newer $programa_dir/* /
bye
EOF
答え2
setがlftpコマンドスクリプトに追加されると、xfer:clobber off;
既存のファイルの上書きが防止されます。