Linux

啟動時間後每小時 cron

  • September 19, 2018

無論如何在啟動時間後每小時執行一次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"

引用自:https://serverfault.com/questions/931685