scp를 통해 최신 파일을 제외한 모든 파일 복사/백업

scp를 통해 최신 파일을 제외한 모든 파일 복사/백업

결과를 쓰는 여러 컴퓨터에서 실행되는 프로그램이 있는데 ~/data/machine_name/결과 파일이 1MB를 초과할 때마다 프로그램이 계속 진행되어 새 파일을 씁니다. (모든 컴퓨터는 동일한 디렉터리 구조를 갖습니다.)

머신 중 하나에 오류가 발생할 경우를 대비해 이 파일을 자동으로 백업하고 싶습니다. 가장 최근에 액세스한 파일이 프로그램이 쓰고 있는 파일이라는 것을 알고 있으므로 이 파일을 제외한 모든 이전 파일을 복사하겠습니다. 다음에 백업 작업이 트리거되면 마지막 백업에서 생략된 최신 파일이 포함됩니다.

이제 간단한 scp명령만 사용하면 원격 컴퓨터에서 연 파일도 복사됩니다.

이것을 달성할 수 있는 방법이 있나요? 이런 종류의 작업을 위한 명령줄 유틸리티나 스크립트가 있습니까?

답변1

rsync백업 유틸리티 및 옵션을 사용할 수 있습니다 --exclude.

/usr/bin/rsync -avz --exclude='$EXCLUDED_DIR_OR_FILE' -e ssh /your/base/folder \
user@host_or_ip:/target/machine/path >> /optional/log/file.log

$EXCLUDED_DIR_OR_FILE마지막으로 업데이트된 파일을 찾아 변수를 확인할 수 있습니다 . 특정 디렉토리에서 마지막으로 업데이트된 파일을 찾는 방법에는 여러 가지가 있으며 그 중 하나는 유틸리티 ls와 함께 ​​사용하는 것입니다.awk

ls -lrt | awk '{ f=$NF }; END{ print f }'

이 명령은 file name파일의 전체 경로가 아닌 마지막으로 수정된 경로를 인쇄합니다.

관련 정보