cron에서 UTC를 사용하도록 만드는 방법은 무엇입니까?

cron에서 UTC를 사용하도록 만드는 방법은 무엇입니까?

내 현지 시간대가 UTC가 아닙니다. 내 컴퓨터의 시간대를 변경하지 않고 cron이 일정에 UTC를 사용하도록 하려면 어떻게 해야 합니까?

답변1

에서는 가능합니다cronie구현cron.

모든man cron:

crontables에서는 다른 시간대를 사용할 수 있습니다. 자세한 내용은 crontab(5)을 참조하십시오.

모든man 5 crontab,

CRON_TZ 변수는 cron 테이블별 시간대를 지정합니다. 사용자는 지정된 시간대를 기준으로 테이블에 시간을 입력해야 합니다. 로그 파일에 쓰는 데 사용되는 시간은 데몬이 실행 중인 현지 시간대를 기준으로 합니다.

전체 cron 파일에 대한 시간대를 지정하려면 시간대를 CRON_TZ=UTC또는 나열된 다른 시간대 로 설정할 수 있습니다 timedatectl list-timezones. 그러면 해당 시간에 명령이 실행되지만 UTC명령에 사용된 시간은 표준 시간대를 사용합니다.

명령에서 시간을 참조하려면 명령/스크립트 앞에 다음을 붙여야 합니다./usr/bin/env TZ=UTC

답변2

TZ환경 변수를 사용하여 시간대를 설정할 수 있습니다 . 시스템이 를 기반으로 하는 경우 파일 systemd을 변경 cron.service하고 해당 서비스에 대해서만 변수를 설정할 수 있습니다.

예를 들어 Debian /usr/lib/systemd/system/cron.serviceadd 의 경우

Environment="TZ=UTC"

일부[Service]뒤쪽에 EnvironmentFile=읽었습니다(해당 파일이 값을 재설정하지 않도록 하기 위해). 데몬을 다시 로드하고 다시 시작합니다 cron.service.

데비안 11에서 테스트되었습니다.

관련 정보