최신 파일 복사

최신 파일 복사

원격 서버에서 월별 생성 보고서를 가져오는 스크립트를 실행 중입니다. 원격 서버에서 최신 파일만 가져오는 방법을 찾으려고 합니다. 각본에서 일자리를 찾을 수 있나요? 아니면 이것이 나쁜 습관입니까?

for host in "${hosts[@]}"; do
    scp "$host":"$remote_path" "$local_target_dir"/filename."$host"
done

파일형식 = 서버명_BBC-3.0_2014-06-04_164510_.txt

답변1

ls -rtSSH를 통해 서버의 디렉터리에서 실행하면 마지막으로 수정된 파일(파일 이름이 아닌 마지막 수정 날짜 기준)을 찾을 수 있습니다.

fileToCopy=$(ssh "$host" "cd $remote_path && ls -rt | tail -1")
scp "$host":"$remote_path"/"$fileToCopy" "$local_target_dir"/filename."$host"

답변2

날짜를 확인하고 마지막 백업을 고려하기 위해 이를 찾아보는 것이 좋습니다. 예를 들면 다음과 같습니다.

#!/bin/bash
day=${date +%d}
last_month=${date -d "-1 month" date +%Y-%m-%d}
if [ $day -eq 15]
then
    echo "Is 15th, time to make get last backup!"
    scp -P port user@server:/dir/servername_BBC-3.0_$last_month* destination
fi

관련 정보