다음과 같은 시스템 타이머 구성이 있습니다
[Unit]
Description=Timer for Service
[Timer]
Unit=service-unit.service
OnCalendar=Mon..Fri *-*-* 13..23:0,15,30,45:00
# *-*-* means every day and 10:00:00 is the time of day (UTC)
[Install]
WantedBy=timers.target
타이머를 시작하려고 하면 다음과 같은 오류 메시지가 나타납니다.
Failed to parse calendar specification, ignoring: Mon..Fri *-*-* 13..23...5,30,45:00 service-timer.timer lacks value setting. Refusing.
타임스탬프를 확인해 보았지만 systemd-analyze calendar "Mon..Fri *-*-* 13..23:5,30,45:00"
내 버전에는 이 옵션이 없는 것 같습니다. 그것은 돌아온다Unknown operation 'calendar'.
달력 옵션을 사용할 수 있는 다른 서버에서 시도하면 유효한 타임스탬프인 것 같습니다.
$ sudo systemd-analyze calendar "Mon..Fri *-*-* 13..23:0,15,30,45:00"
Original form: Mon..Fri *-*-* 13..23:0,15,30,45:00
Normalized form: Mon..Fri *-*-* 13..23:00,15,30,45:00
Next elapse: Thu 2020-09-10 14:00:00 EDT
(in UTC): Thu 2020-09-10 18:00:00 UTC
From now: 1min 21s left
작동하지 않는 서버는 CentOS 7이고 작동하는 서버는 Ubuntu 18.04 Minimal입니다.
답변1
CentOS 7에서 사용 가능한 systemd 버전 은 ..
.13..23
13/1
Mon..Fri
OnCalendar=Mon..Fri *-*-* 13..23:0,15,30,45:00
~이 되다
OnCalendar=Mon,Tue,Wed,Thu,Fri *-*-* 13/1:0,15,30,45:00
답변2
답변해주신 모든 분들께 감사드립니다. 나에게 가장 좋은 옵션은 내가 찾은 Facebook 백포트를 사용하여 systemd를 업데이트하는 것입니다.여기. 이렇게 하면 해결 방법을 사용하는 대신 새로운 기능을 활용할 수 있습니다.
219에서 231로 업데이트한 후 정상적으로 작동합니다. 이 저장소에서 사용할 수 있는 기본 업데이트 지침은 다음과 같습니다.
설치 참고 사항
- 업데이트하기 전에 /etc/selinux/config를 편집하고 SELinux에 권한을 부여했는지 확인하십시오. 그렇지 않으면 시스템이 부팅되지 않습니다!
# wget https://copr.fedorainfracloud.org/coprs/jsynacek/systemd-backports-for-centos-7/repo/epel-7/jsynacek-systemd-backports-for-centos-7-epel-7.repo -O /etc/yum.repos.d/jsynacek-systemd-centos-7.repo
# yum update systemd
- 재시작.