rsync 명령을 예약하는 방법은 무엇입니까?

rsync 명령을 예약하는 방법은 무엇입니까?

안녕히 가세요!

저는 칠레에서 일합니다. 문제는 여기의 연결 속도가 매우 느리고 각 스테이션이 패키지를 인터넷에 직접 업데이트하는 등의 작업이 불가능하다는 것입니다. 그래서 밤에만 rsync를 통해서만 업데이트하려는 로컬 저장소가 있습니다.

rsync에는 아무런 문제가 없으며 사용 방법을 알고 있습니다. 저는 cronjob 및 이와 유사한 내용을 비교적 처음 접했습니다.

간단히 말해서, 내가 해야 할 일은 매일 밤 저장소를 업데이트하는 것입니다. 매일 오후 7시에 시작하여 오전 7시에 끝난다고 가정해 보겠습니다.

어떻게 해야 하나요?

미리 감사드립니다.

따뜻한 안부 인사.

PD: 저는 우분투 16.04를 사용합니다.

답변1

cron을 사용하는 방법에는 두 가지가 있는데, 이는 /etc/cron.d/repo-sync다음 형식으로 파일을 생성하는 것입니다.

<minute> <hour> <day_of_month> <month> <day_of_week> <user> <command>

예를 들어 매일 19:00에 src에서 dest로 rsync를 실행하려면 다음을 사용합니다.

0 19 * * * root rsync -a src dest

또는 위의 줄에서 사용자를 제외하고 실행하여(명령을 실행하려는 사용자로) crontab을 생성할 수 있습니다. crontab -e예:

0 19 * * * rsync -a src dest

개인적으로 저는 시스템/루트 작업을 위해 cron.d 파일을 생성하는 것을 선호하지만 두 방법 모두 동일한 결과를 생성합니다.

이제 지정된 시간에 명령이 한 번 실행됩니다. 명령 실행이 완료되면 중지되므로 rsync가 그때까지 완료되어야 하므로 7시에 중지하도록 명령을 지정할 필요가 없습니다. 정말로 명령을 7시에 중지해야 한다면 주어진 시간에 기존 프로세스를 종료하는 또 다른 cron 작업을 실행할 수 있습니다.

0 7 * * * root killall rsync

불행하게도 이렇게 하면 모든 rsync 명령이 종료됩니다. rsync를 동시에 실행하려고 하면 부작용이 발생할 수 있으므로 이 방법을 권장하지 않습니다.

해당 pid를 파일에 기록하는 스크립트에 rsync 명령을 넣고 Kill 명령에서 해당 pid를 사용하면 이 문제를 더욱 완화할 수 있지만 이는 실제로 필요한 것보다 더 복잡할 수 있습니다.

크론 작업 설정에 대해 자세히 알아볼 수 있습니다.여기또는여기.

관련 정보