OK, tôi đã dành chút thời gian và tìm ra cách để làm điều này trên Ubuntu Natty và đây là cách tôi làm cho nó hoạt động. Có thể có một cách thanh lịch hơn, nhưng cách này hoạt động.
Đầu tiên, chúng ta cần bọc cron thực thi trong một vỏ đặt biến TZ. Đây là cách thực hiện:
cd /usr/sbin
mv cron cron.real
Sau đó, tạo một tệp / usr / sbin / cron mới. Tôi đã sử dụng vim, nhưng bạn có thể sử dụng bất kỳ trình soạn thảo nào bạn muốn, chỉ cần làm cho tệp trông như thế này:
#!/bin/bash
export TZ=UTC
/usr/sbin/cron.real
Làm cho tập tin cron mới thực thi:
chmod ugo+rx cron
Bây giờ, khởi động lại cron daemon:
service cron restart
Các công việc định kỳ của bạn bây giờ sẽ chạy theo lịch dựa trên UTC - TUY NHIÊN, mặc dù thời gian chúng được thực thi sẽ là UTC, khi chúng chạy, chúng sẽ có múi giờ được đặt thành bất cứ điều gì được xác định cho hệ thống. Để thay đổi điều đó, hãy đặt cái này vào crontab của bạn trước bất kỳ lệnh nào:
TZ=UTC
Vì vậy, crontab của bạn sẽ trông giống như thế này:
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
TZ=UTC
00 19 * * * date > /tmp/date.log
sudo service cron restart
sau khi chỉnh sửa?