Puncte:1

Cum pot schimba fusul orar în care este executat un job cron?

drapel cn

Vreau să schimb fusul orar în care sunt executate joburile cron, dar să păstrez restul fusului orar implicit al sistemului. Este posibil?

Am citit acest articol https://linuxhint.com/set-timezone-crontab/

dar cred că acest lucru nu afectează momentul în care lucrarea este executată. Specifică doar ce fus orar ar trebui utilizat de proces odată lansat de cron

waltinator avatar
drapel it
Asta pare o problemă XY. De ce nu poți edita crontab și schimba orele acolo?
nicholas avatar
drapel cn
Nu pot. E greu să-ți dau context pentru asta. Sarcina mea este să schimb fusul orar al joburilor cron.
bac0n avatar
drapel cn
Cred că puteți folosi ```CRON_TZ```. dar nu cred că puteți schimba TZ pe intrări individuale.
waltinator avatar
drapel it
La ce te referi? Schimbați ora la care rulează un job `cron` (editați `crontab`) SAU convingeți jobul `cron` că este rulat înainte de un termen limită (editați `crontab`, setați `TZ=` pentru job)? Citiți `man -a crontab`.
Puncte:3
drapel cn

CRON_TZ instruiește tabelul cron să ruleze în fusul orar alocat, puteți utiliza și TZ, care setează fusul orar pentru comandă dacă doriți ca acesta să folosească un fus orar diferit de sistem.

# min oră dom luna comanda dow
CRON_TZ=Europa/Helsinki
0 9 * * * TZ=Europa/Helsinki /bin/sh -c 'data +"$USER: \%a \%e \%b \%Y \%H:\%M:\%S \%Z" ' >> /tmp/timestamp.log

Acest cron va rula când ceasul va suna 09:00 în Finlanda, adică 08:00 aici.

[bac0n@betazoid ~ 07:59]: tail -f /tmp/timestamp.log
bac0n: Sâmbătă 4 Dec 2021 09:00:01 EET

Dacă doriți să rulați scripturi specifice în diferite fusuri orare, puteți utiliza systemd.timer in schimb. Există nenumărate moduri de a vă organiza cronometrul/serviciile, de exemplu, puteți utiliza un cronometru instanțiat pentru a adăuga diferitele fusuri orare.

# fișier: fus [email protected]
[Unitate]  
Descriere=Temporizator pentru fusul orar %I  
  
[Temporizator]  
AccuracySec=1s  
OnCalendar=*-*-* 09:00:00 %I  
  
[Instalare]  
WantedBy=timers.target

Al doilea șablon de serviciu este un serviciu general pentru toate fusurile orare activate, de asemenea, este posibil să creați un serviciu specific pentru un fus orar cu diferite seturi de proprietăți.

# fișier: fus [email protected]
[Unitate]
Descriere=Serviciul pentru fusul orar %I

[Serviciu]
Mediu=TZ=%I
ExecStart=/bin/date +"%I: %%a %%e %%b %%Y %%H:%%M:%%S %%Z"
StandardOutput=append:/tmp/timestamp.log

Acum puteți începe să adăugați fusurile orare.

systemctl activare --now 'timezone@Europe\x2fLondon.timer' 'timezone@Europe\x2fStockholm.timer' 'timezone@Europe\x2fHelsinki.timer'

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.