cronjob을 통한 Rsync를 통한 Rsync

cronjob을 통한 Rsync를 통한 Rsync

LAN의 일부 컴퓨터에서 Rsyncs하는 로컬 서버가 있습니다. 이는 백업 솔루션의 일부입니다.

Rsync는 cronjob을 통해 하루에 두 번 실행됩니다. 때때로 사람들은 테라바이트 정도의 대용량 데이터를 추가합니다. 이 경우 두 번째 Rsync가 시작되기 전에 Rsync가 완료된다는 보장이 없습니다.

이 상황에서는 어떻게 되나요?
이것은 피해야 할 일입니까?

답변1

다른 cronjob이 완료되기 전에 하나의 cronjob이 시작되는 것이 걱정된다면 일반적으로 /tmp이와 같은 임시 파일을 만들고 /tmp/lockFile_$$첫 번째 cronjob의 마지막 단계에서 삭제한 다음 해당 파일이 루프 시작과 함께 두 번째 cronjob이 존재하도록 합니다. , 각 루프에서 5-10초 동안 대기하고 파일이 사라지면 루프를 중단합니다(몇 번 반복할 때마다 루트에 이메일을 보내 정지된 작업을 더 쉽게 확인할 수 있습니다).

첫 번째 병목 현상이 네트워크 대역폭인 경우 --compress옵션과 함께 rsync를 사용해 볼 수 있습니다.--compress-level

차단 지점이 CPU인 경우 rsync 프로세스에 더 낮은 nice 값을 부여해 볼 수 있습니다.

iowait때가 되면 Linux ionice에서 cfq를 사용하거나 rsync 명령을 여러 동시 프로세스로 분할하여 순차적으로 수행하는 대신 한 프로세스가 I/O를 기다리는 동안 다른 프로세스가 전송을 수행하는 것을 고려할 수 있습니다. 대부분의 플랫폼에서는 I/O 기능을 조정할 수도 있습니다. Linux에서는 첫 번째 cronjob 중에 일시적으로 deadline스케줄러로 전환하고(쓰기보다 읽기 우선순위를 지정하기 위해) read_ahead_kb디스크에서 전체 대용량 파일을 가져오기 때문에 일시적으로 스케줄러를 늘리는 것을 고려할 수 있습니다 .

관련 정보