Bash

LFTP 鏡像僅將不存在的文件上傳到遠端目錄

  • August 24, 2016

每 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 命令腳本,它將避免覆蓋現有文件。

引用自:https://unix.stackexchange.com/questions/97909