Cron ежечасно после загрузки

Есть ли способ запускать cron ежечасно после загрузки, а не в определенное время каждый час? Я работаю с компьютерами CentOS6 и CentOS 7.

EG: Когда мой компьютер загружается в 00:42, я хочу, чтобы он выполнялся в 01:42, 02:42, 03:42 и так далее. Но когда компьютер запускается в 00:21, я хочу, чтобы cron запускался в 01:21, 02:21, 03:21 ...

0
задан 19 September 2018 в 17:42
2 ответа

Таймер 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
3
ответ дан 4 December 2019 в 12:16

Я не думаю, что 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"
0
ответ дан 4 December 2019 в 12:16

Теги

Похожие вопросы