Snapper는 지난 2년 동안 시간별 스냅샷(정시)을 완벽하게 실행해 왔습니다. 저번에 눈치챘어둘스냅샷은 매시간 촬영됩니다. 한 시간에 한 번(HH:00), 다른 한 번은 1분 후에(HH:01)
Snapper 로그 파일에는 두 개의 중복 스냅샷 모두에 대해 libsnapper에 대한 동일한 프로세스 ID가 표시됩니다. 매 시간마다 새로운 프로세스 ID가 생성되지만 로그에 따르면 동일한 프로세스 ID로 반복적인 스냅샷이 수행됩니다. 로그에서는 모든 것이 정상적으로 보입니다. 내가 아는 한, 이 작업은 두 번만 반복되었습니다.
snapper list-configs
중복된 구성이 없습니다.
나는 항상 systemd 타이머를 활성화하고 snapper-timeline.timer를 시작했습니다(이것은 다음을 기반으로 합니다).Arch's Snapper 위키 페이지).
루트 크론이 없습니다.
# crontab -l
no crontab for root
내가 아는 한 사용자의 cron: /var/spool/cron/
은 비어 있지 않습니다.
이것은 정말 이상한 일입니다. 중지 및 비활성화되면 snapper-timeline.timer
해당 시간에 생성된 스냅샷은 중지되지만 해당 시간 이후 1분에 생성된 스냅샷은 계속됩니다. 재부팅 후에도 마찬가지입니다.
위 단계를 수행한 후 systemctl은 snapper-timeline.timer 항목을 나열하지 않습니다.
$ systemctl --user list-timers
0 timers listed.
$ sudo systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Wed 2018-02-21 00:00:00 EST 1h 40min left Tue 2018-02-20 00:00:00 EST 22h ago logrotate.timer logrotate.service
Wed 2018-02-21 00:00:00 EST 1h 40min left Tue 2018-02-20 00:00:00 EST 22h ago man-db.timer man-db.service
Wed 2018-02-21 00:00:00 EST 1h 40min left Tue 2018-02-20 00:00:00 EST 22h ago shadow.timer shadow.service
Wed 2018-02-21 03:54:50 EST 5h 35min left Tue 2018-02-20 03:54:49 EST 18h ago snapper-cleanup.timer snapper-cleanup.service
Wed 2018-02-21 03:59:50 EST 5h 40min left Tue 2018-02-20 03:59:49 EST 18h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Mon 2018-02-26 00:00:00 EST 5 days left Mon 2018-02-19 00:00:23 EST 1 day 22h ago fstrim.timer fstrim.service
고쳐 쓰다:
우리가 아는 한,아치 위키 스내퍼 페이지, "자동 타임라인 스냅샷" 아래:
cron 데몬이 있는 경우 이 기능[시간별 자동 스냅샷]이 자동으로 시작됩니다.
위에서 말했듯이 crontab -l
루트와 사용자로 확인했는데 둘 다 비어 있습니다.
하지만 제 경우에는 cronie를 설치했습니다(cronie는 cron 데몬입니다). 보기에는 /etc/cron.daily/
스내퍼 파일이 표시되며 /etc/cron.hourly/
스내퍼 파일도 포함되어 있습니다.
나머지 질문은 다음과 같습니다.
어떤 사용자의 crontab에 Snapper cronjob이 표시됩니까?
Snapper의 cronjob을 비활성화하고 패키지 업데이트 전반에 걸쳐 지속되도록 하는 방법이 있습니까(시스템 타이머를 활성 상태로 유지하는 동안)?
/etc/cron.daily
/etc/cron.hourly/`에서 항목을 삭제하면 Snapper 패키지가 업데이트될 때 해당 항목이 교체될 것이라고 가정합니다 . [업데이트 2: 이 가설을 확인하는 테스트를 수행했습니다. 댓글을 읽어보세요. ]
답변1
이 답변에 대한 크레딧은 @jasonwryan에게 있습니다.
우리가 아는 한,아치 위키 스내퍼 페이지, "자동 타임라인 스냅샷" 아래:
cron 데몬이 있는 경우 이 기능[시간별 자동 스냅샷]이 자동으로 시작됩니다.
crontab -l
루트와 사용자로 확인했는데 둘 다 비어 있습니다 .
하지만 제 경우에는 cronie를 설치했습니다(cronie는 cron 데몬입니다). 패키지 설치 시 Snapper 타임라인 정리 스크립트는 에 /etc/cron.daily/
, 시간별 스냅샷 스크립트는 에 배치됩니다 /etc/cron.hourly/
. (Snapper 시스템 장치가 활성화된 경우에도 이 작업이 수행됩니다.)
systemd 타이머 사용을 선호하지만 이상한 작업을 위해 cron 데몬을 유지하는 경우 Snapper는 cron 데몬을 선호합니다.
내가 했던 것처럼 cron 데몬을 설치해야 하지만 systemd를 사용하여 Snapper 타이머를 관리하고 싶다면 해결책(@jasonwryan 덕분에)은 다음과 같습니다.
/etc/pacman.conf 편집`
NoExtract
지시어에 주석이 달려 있으면 주석 처리를 제거하십시오 .Snapper 패키지의 다음 두 파일을
NoExtract
지시문 에 추가합니다.등/cron.daily/snapper 등/cron.hourly/snapper
여러 파일을 추가하는 구문은 여기에서 설명됩니다.
pacman.conf 여러 줄 파일 목록에 대한 NoExtract 구문/Pacman 및 패키지 업그레이드 문제/Arch Linux 포럼
/etc/pacman.conf의 결과 줄 예:
NoExtract = etc/cron.daily/snapper etc/cron.hourly/snapper
이 솔루션은 내 친구에게 효과적이지만 다른 cron 데몬을 사용하는 경우 경로가 다를 수 있습니다.