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는 존재하지 않는 파일뿐만 아니라 모든 파일을 업로드합니다.
답변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;
기존 파일 덮어쓰기가 방지됩니다.