![매달 실행되는 rsync를 차단할 수 없습니다.](https://linux55.com/image/180588/%EB%A7%A4%EB%8B%AC%20%EC%8B%A4%ED%96%89%EB%90%98%EB%8A%94%20rsync%EB%A5%BC%20%EC%B0%A8%EB%8B%A8%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
나는 이전에 백업을 위해 rsync를 사용한 적이 없습니다. 저는 파워 유저는 아니지만 Linux를 좋아합니다. 웹사이트의 지침을 따랐고(현재 URL은 없음) 매월 실행되도록 rsync를 설정했습니다. 물론, rsync를 처음 접했기 때문에 전체 루트 디렉터리를 백업하게 했는데, 아시다시피 이는 너무 많은 일입니다. 다 죽였다고 생각했는데 매달(또는 30일) 시동이 걸려서 드라이브가 가득 찼습니다. 검색하고 찾아봐도 어디서 rsync를 시작해야 하는지, 무엇이 rsync를 시작했는지 찾을 수 없었습니다.
처음 시작할 때는 cli를 사용하고 있었습니다. 크론처럼 실행하기 위해 데몬이나 프로세스를 설정한다고 언급할 수도 있는 것 같습니다. crontab -e를 실행해서 거기에서 찾아서 삭제했습니다. 아직 실행 중이므로 분명히 다른 방법으로도 실행하도록 설정했습니다.
중지할 수 있도록 실행 중인 위치를 찾는 방법을 알려주실 수 있나요? Linux Mint 20 Cinnamon Cinnamon 버전 4.6.7 Linux 커널 5.4.0-47-generic
답변1
rsync를 호출하는 모든 시스템 및 사용자 크론 작업을 확인하는 빠르고 더러운 방법인 grep은 여러분의 친구입니다.
grep -R rsync /etc/cron* /var/spool/cron
그러면 모든 crontab(/etc/crontab 및 /var/spool/cron/>USERNAMES>)과 시스템 위치 /etc/cron.d, /etc/cron.hourly, /etc/cron.daily를 확인합니다. /etc/cron.weekly 및 /etc/cron.monthly. 따라서 cron을 통해 수행된 경우 해당 위치에서 찾을 수 있습니다.
출력은 다음과 같은 형식이 됩니다.
/path/to/file/that/includes/match:line_that_matches
작업 위치를 알고 나면 작업을 편집/삭제/비활성화할 수 있습니다.
하지만 이 기사의 미래 독자들이 주목해야 할 한 가지는 요즘 도시에서 크론이 유일한 쇼가 아니라는 것입니다. Cron은 여전히 널리 사용되고 많이 사용되지만 systemd(현재 대부분의 배포판에서 사용되는 init 시스템)에는 "타이머"가 있습니다. 크론 작업과 마찬가지로 일정에 따라 명령을 자동으로 실행하는 도구를 제공합니다. Systemd-timer는 cron보다 더 많은 유연성을 제공하지만 더 복잡하므로 더 많은 문제가 발생합니다.
systemd가 구성되는 방식 때문에 간단한 grep만으로는 충분하지 않습니다. 더 좋고 쉬운 방법이 있을 수 있지만 grep을 다시 사용하지만 이번에는 find를 사용하여 트릭을 수행해야 합니다. 다음과 같은 것(위와 비슷한 형식으로 출력되어야 함):
for dir in /etc /run /lib; do
find $dir/systemd -type f -name "*.timer" -exec grep rsync /dev/null {} \;
done
("rsync" 이외의 항목을 검색하려면 사용하려는 검색어로 바꾸십시오. 공백이 포함된 경우 따옴표로 묶으십시오.)