LFTPミラーは、存在しないファイルのみをリモートディレクトリにアップロードします。

LFTPミラーは、存在しないファイルのみをリモートディレクトリにアップロードします。

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;既存のファイルの上書きが防止されます。

関連情報