누락 된 파일을 무시하기 위해 rsync를 얻으려면 어떻게해야합니까?


9

여러 다른 시스템에 다음과 같은 명령을 실행하고 있습니다.

$ rsync -a -v foo@machine.company.com:'/path/to/first/*.log path/to/second.txt' /dest/folder/0007/.

때때로 * .log가 존재하지 않고 정상이지만 rsync는 다음 오류를 생성합니다.

receiving file list ... rsync: link_stat "/path/to/first/*.log" failed: No such file or directory (2)
done

그것을 억제하는 방법이 있습니까? 내가 생각할 수있는 유일한 방법은 include 및 exclude 필터를 사용하는 것입니다.이 필터는 PITA처럼 보입니다. 감사!

답변:



2

명확히하기 위해 오류를 '보고'하지 않으시겠습니까? 이 경우 표준 오류 출력을 재 지정할 수 있지만 더 심각한 오류가 누락 될 수 있습니다.

리디렉션 오류 출력 예

rsync -a -v foo@machine.company.com:'/path/to/first/*.log path/to/second.txt' /dest/folder/0007/ 2>/dev/null

대신 존재하지 않는 파일의 오류 만 누락하려는 경우 rsync * .log 필터를 변경할 수 없으며 include를 사용하지 않으려면 스크립트를 래핑하여 질환.

스크립트 예

#!/bin/sh
# Script to Handle Rsync based on Log File Existence
if [ "$(ls -A /path/to/first/*.log > /dev/null > 2&1)" ]; then
     # Log Exists Use This Rsync
    rsync -a -v foo@machine.company.com:'/path/to/first/*.log path/to/second.txt' /dest/folder/0007/
else
    # Log Does Not Exist Use This Rsync
    rsync -a -v foo@machine.company.com:'path/to/second.txt' /dest/folder/0007/
fi

도움이 되었기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.