내 현지 시간대가 UTC가 아닙니다. 내 컴퓨터의 시간대를 변경하지 않고 cron이 일정에 UTC를 사용하도록 하려면 어떻게 해야 합니까?
답변1
에서는 가능합니다cronie
구현의 cron
.
모든man cron
:
crontables에서는 다른 시간대를 사용할 수 있습니다. 자세한 내용은 crontab(5)을 참조하십시오.
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.service
add 의 경우
Environment="TZ=UTC"
일부[Service]
뒤쪽에 EnvironmentFile=
읽었습니다(해당 파일이 값을 재설정하지 않도록 하기 위해). 데몬을 다시 로드하고 다시 시작합니다 cron.service
.
데비안 11에서 테스트되었습니다.