Score:1

ฉันจะเปลี่ยนเขตเวลาที่ใช้งาน cron ได้อย่างไร

ธง cn

ฉันต้องการเปลี่ยนเขตเวลาที่งาน cron ถูกดำเนินการ แต่เก็บเขตเวลาเริ่มต้นที่เหลือของระบบไว้ เป็นไปได้ไหม

ฉันอ่านบทความนี้ https://linuxhint.com/set-timezone-crontab/

แต่ฉันคิดว่าสิ่งนี้ไม่ส่งผลกระทบต่อเมื่องานถูกดำเนินการ เพียงแค่ระบุว่าโซนเวลาใดที่ควรใช้โดยกระบวนการเมื่อเปิดตัวโดย cron

waltinator avatar
it flag
ฟังดูเหมือนปัญหา XY ทำไมคุณไม่สามารถแก้ไข crontab และเปลี่ยนเวลาที่นั่นได้
nicholas avatar
cn flag
ฉันไม่สามารถ เป็นการยากที่จะให้บริบทแก่คุณ งานของฉันคือเปลี่ยนเขตเวลางาน cron
bac0n avatar
cn flag
ฉันคิดว่าคุณสามารถใช้ ```CRON_TZ``` ได้ แต่ฉันไม่คิดว่าคุณจะเปลี่ยน TZ ในแต่ละรายการได้
waltinator avatar
it flag
คุณหมายถึงอะไร เปลี่ยนเวลาที่งาน `cron` ทำงาน (แก้ไข `crontab`) หรือโน้มน้าวใจงาน `cron` ที่กำลังทำงานก่อนกำหนด (แก้ไข `crontab` ตั้ง `TZ=` สำหรับงาน) อ่าน `man -a crontab`
Score:3
ธง cn

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'

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา