Bash
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 命令無法辨識只有少數文件不存在於第二個 ftp 的遠端目錄中。
有沒有辦法解決這個問題?我只需要檢查文件名,而不是文件的創建或修改時間。
對於我嘗試的第二個 ftp
lftp <<EOF open -u user,pass ftp2 mput $programa_dir/* -O / bye EOF
結果是一樣的——lftp 上傳所有文件,而不僅僅是不存在的。
我目前無法訪問 LFTP,但我懷疑您正在尋找
--only-missing
僅可用於mirror
.試試這個:
lftp <<<EOF open -u user,pass ftp2 mirror --reverse --only-newer $programa_dir/* / bye EOF
如果將 set 添加
xfer:clobber off;
到 lftp 命令腳本,它將避免覆蓋現有文件。