쉘 스크립트로 감싸 야 할 것입니다. 예를 들어, 같은 lftp는 스크립트를 생성해야합니다
쉘 스크립트 :
set xfer:log true
set xfer:log-file "/path/to/somewhere/$DATESTAMP.log"
lcd "/path/of/source"
open -u $UN,$Pass sftp://$Server
mirror -R $Directory
quit
가 lftp -f $ScriptName
에 의해 실행합니다.
그런 다음 생성 된 로그 파일을 구문 분석하십시오. AFAIK에는 성공적인 송금 만 포함됩니다.
awk '{print $3,$6}' $DATESTAMP.log | sed -r -e 's/ [0-9]+-/ /'
위의 내용은 각 파일에 대해 전송 된 파일 및 바이트 목록을 생성합니다. 당신은 주
# WARNING: Script assumes that filename contains no space.
while read fname fsize; do
# The following line used if the lftp runs from e.g. the source folder
actualname=$Prefix/$fname
actualsize=$(stat -c "%s" "$actualname")
if ((actualsize != fsize)); then
# Some error handling code here
fi
done <<< "$(awk '{print $3,$6}' $DATESTAMP.log | sed -r -e 's/ [0-9]+-/ /')"
예를
를 들어, 결과를 통해 루프를 할 수있는 실제 파일 크기 비교 : 나는
while
루프 내에서 변수의 조작을 가능하게하는 대신 배관의 "herestring을"이 사용하고 있습니다.
누구? 어떤 생각? 이 전송은 로그에 아무 것도 표시되지 않고 간헐적으로 실패합니다. –