나는 systemd-cron
이것을 /lib/systemd 아래에 유닛 파일을 만드는 데 사용합니다. 유닛 파일 cron-daily.timer
에는
[Timer]
OnCalendar=daily
그러면 자정에 스크립트가 실행됩니다. 나는 그들이 오전 3시에 발사되기를 원합니다.
디렉토리 override.conf
에 생성 하면cron-daily.timer.d
/etc/systemd/system
[Timer]
OnCalendar=*-*-* 03:00:00
daemon-reload를 실행하고 타이머를 다시 시작한 다음 systemctl list-timers
00:00:00에 실행되도록 계속 실행하세요. 그러나 override.conf
내 이름을 바꾸면
[Timer]
OnCalendar=hourly
그런 다음 예상대로 매시간 실행하려고 합니다. 특정 시간에 실행되도록 서비스를 재정의할 수 없는 이유는 무엇입니까?
답변1
systemd 타이머 단위는 다양한 OnCalendar=
크기를 가질 수 있으므로 오전 3시에 실행되는 오버레이를 생성하면 실제로다음에 추가그 시간(하루에 두 번, 자정과 오전 3시에 실행되도록 합니다.)
타이머를 나열하면 다음 일정이 표시됩니다. 자정과 오전 3시 사이에 명령을 실행하지 않는 한 자정에 원래 실행이 표시되며 아마도 다음과 같은 내용이 표시될 것입니다. 구성이 구현되지 않았으며 그렇지 않습니다. 일하다. ( hourly
오후 11시부터 자정 사이에 명령을 실행하지 않는 한 으로 설정하면 변경 사항이 표시될 수 있습니다 .)
오버레이 파일을 사용하여 매일 오전 3시에 실행되도록 cron을 변경하려면 daily
먼저 이전 정의( )를 지우십시오. OnCalendar=
이를 null로 설정하면 됩니다.
[Timer]
OnCalendar=
OnCalendar=*-*-* 03:00:00
타이머 장치에 대한 systemd 매뉴얼 페이지에는 실제로 이에 대한 문서가 나와 있지만 아래에서 찾을 수 있습니다.OnActiveSec=
친구들과 함께, 내용은 다음과 같습니다.
이러한 옵션 중 하나에 빈 문자열이 할당되면 타이머 목록이 재설정되고 모든 이전 할당이 무효화됩니다.