Linux
啟動時間後每小時 cron
無論如何在啟動時間後每小時執行一次cron,而不是在每小時的特定時間執行一次?我正在使用 CentOS6 和 CentOS 7 機器。
EG:當我的電腦在 00:42 啟動時,我希望它在 01:42、02:42、03:42 等執行。但是當電腦在 00:21 啟動時,我希望 cron 在 01:21、02:21、03:21 執行…
可以使用, , ,選項將systemd 計時器安排為與系統啟動/啟動時間相關的時間間隔
OnActiveSec=``OnBootSec=``OnStartupSec=``OnUnitActiveSec=
/etc/systemd/system/your-notcron-hourly.timer [Unit] Description=Run Something every hour respective to systemd start time [Timer] OnUnitActiveSec=1h [Install] WantedBy=timers.target
我不認為 cron 可以做到這一點,但你可以用一些 bash 魔術來做到這一點。:)
/proc/uptime
您可以在一些轉換後獲得啟動時間date -d "`cut -f1 -d. /proc/uptime` seconds ago" +%M
所以你可以
/etc/cron.d/your-script
像這樣使用:* * * * * user /bin/bash -c "if [[ $(date +%M) == $(date -d \"`cut -f1 -d. /proc/uptime` seconds ago\" +%M) ]]; then do-my-job; fi"