CRON_TZ สั่งให้ตาราง cron ของคุณทำงานในเขตเวลาที่กำหนด คุณยังสามารถใช้ TZ ซึ่งจะตั้งค่าเขตเวลาสำหรับคำสั่งของคุณ หากคุณต้องการให้ใช้เขตเวลาที่แตกต่างจากระบบ
# คำสั่ง min hour dom month dow
CRON_TZ=ยุโรป/เฮลซิงกิ
0 9 * * * TZ=ยุโรป/เฮลซิงกิ /bin/sh -c 'date +"$USER: \%a \%e \%b \%Y \%H:\%M:\%S \%Z" ' >> /tmp/timestamp.log
cron นี้จะทำงานเมื่อนาฬิกาตีเวลา 09:00 น. ในฟินแลนด์ นั่นคือ 08:00 น. ที่นี่
[bac0n@betazoid ~ 07:59]: tail -f /tmp/timestamp.log
bac0n: ส. 4 ธ.ค. 2564 09:00:01 น
หากคุณต้องการเรียกใช้สคริปต์เฉพาะในเขตเวลาต่างๆ คุณสามารถใช้ systemd.timer
แทน. มีหลายวิธีในการจัดระเบียบตัวจับเวลา/บริการของคุณ เช่น คุณสามารถใช้ตัวจับเวลาแบบอินสแตนซ์เพื่อเพิ่มเขตเวลาต่างๆ
# ไฟล์: [email protected]
[หน่วย]
คำอธิบาย=ตัวจับเวลาสำหรับเขตเวลา %I
[ตัวจับเวลา]
ความแม่นยำ วินาที=1 วินาที
OnCalendar=*-*-* 09:00:00 %I
[ติดตั้ง]
WantedBy=timers.target
เทมเพลตบริการที่สองเป็นบริการทั่วไปสำหรับโซนเวลาที่เปิดใช้งานทั้งหมด นอกจากนี้ยังเป็นไปได้ที่จะสร้างบริการเฉพาะสำหรับโซนเวลาด้วยชุดคุณสมบัติที่แตกต่างกัน
# ไฟล์: [email protected]
[หน่วย]
คำอธิบาย=บริการสำหรับเขตเวลา %I
[บริการ]
สภาพแวดล้อม=TZ=%I
ExecStart=/bin/date +"%I: %%a %%e %%b %%Y %%H:%%M:%%S %%Z"
StandardOutput=ต่อท้าย:/tmp/timestamp.log
ตอนนี้คุณสามารถเริ่มเพิ่มเขตเวลาของคุณได้แล้ว
เปิดใช้งาน systemctl -- ตอนนี้ 'timezone@Europe\x2fLondon.timer' 'timezone@Europe\x2fStockholm.timer' 'timezone@Europe\x2fHelsinki.timer'