Điểm:1

Làm cách nào tôi có thể thay đổi múi giờ trong đó một công việc định kỳ được thực thi?

lá cờ cn

Tôi muốn thay đổi múi giờ mà các công việc định kỳ được thực thi nhưng giữ phần còn lại của múi giờ mặc định của hệ thống. Điều này có thể không?

tôi đã đọc bài báo này https://linuxhint.com/set-timezone-crontab/

nhưng tôi nghĩ điều này không ảnh hưởng khi công việc được thực thi. Nó chỉ chỉ định múi giờ nào sẽ được sử dụng bởi quy trình sau khi được khởi chạy bởi cron

waltinator avatar
lá cờ it
Điều này nghe giống như một vấn đề XY. Tại sao bạn không thể chỉnh sửa crontab và thay đổi thời gian ở đó?
nicholas avatar
lá cờ cn
Tôi không thể. Thật khó để cung cấp cho bạn bối cảnh cho điều đó. Nhiệm vụ của tôi là thay đổi múi giờ của công việc cron.
bac0n avatar
lá cờ cn
Tôi nghĩ bạn có thể sử dụng ```CRON_TZ```. nhưng tôi không nghĩ rằng bạn có thể thay đổi TZ trên các mục riêng lẻ.
waltinator avatar
lá cờ it
Ý bạn là gì? Thay đổi thời gian chạy công việc `cron` (chỉnh sửa `crontab`) HOẶC thuyết phục công việc `cron` rằng nó đang được chạy trước thời hạn (chỉnh sửa `crontab`, đặt `TZ=` cho công việc)? Đọc `man -a crontab`.
Điểm:3
lá cờ cn

CRON_TZ hướng dẫn bảng cron của bạn chạy trong múi giờ được chỉ định, bạn cũng có thể sử dụng TZ, đặt múi giờ cho lệnh của bạn nếu bạn muốn nó sử dụng múi giờ khác với hệ thống.

# lệnh tối thiểu giờ dom tháng dow
CRON_TZ=Châu Âu/Helsinki
0 9 * * * TZ=Europe/Helsinki /bin/sh -c 'date +"$USER: \%a \%e \%b \%Y \%H:\%M:\%S \%Z" ' >> /tmp/timestamp.log

Cron này sẽ chạy khi đồng hồ điểm 09:00 ở Phần Lan, tức là 08:00 ở đây.

[bac0n@betazoid ~ 07:59]: đuôi -f /tmp/timestamp.log
bac0n: Thứ bảy, ngày 4 tháng 12 năm 2021 09:00:01 EET

Nếu bạn muốn chạy các tập lệnh cụ thể ở các múi giờ khác nhau, bạn có thể sử dụng systemd.timer thay thế. Có vô số cách để sắp xếp bộ hẹn giờ/dịch vụ của bạn, ví dụ: bạn có thể sử dụng bộ hẹn giờ khởi tạo để thêm các múi giờ khác nhau.

# tập tin: [email protected]
[Đơn vị]  
Mô tả=Hẹn giờ cho múi giờ %I  
  
[Hẹn giờ]  
Độ chính xácSec=1s  
OnCalendar=*-*-* 09:00:00 %I  
  
[Cài đặt]  
WantedBy=timers.target

Mẫu dịch vụ thứ hai là một dịch vụ chung cho tất cả các múi giờ được bật, cũng có thể tạo một dịch vụ cụ thể cho một múi giờ với các bộ thuộc tính khác nhau.

# tập tin: [email protected]
[Đơn vị]
Mô tả=Dịch vụ cho múi giờ %I

[Dịch vụ]
Môi trường=TZ=%I
ExecStart=/bin/date +"%I: %%a %%e %%b %%Y %%H:%%M:%%S %%Z"
StandardOutput=append:/tmp/timestamp.log

Bây giờ bạn có thể bắt đầu thêm múi giờ của mình.

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

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.