Есть ли способ запускать cron ежечасно после загрузки, а не в определенное время каждый час? Я работаю с машинами CentOS6 и CentOS 7.
Э. Г .: Когда мой компьютер загружается в 00:42, я хочу, чтобы он выполнялся в 01:42, 02:42, 03:42 и так далее. Но когда компьютер запускается в 00:21, я хочу, чтобы cron запускался в 01:21, 02:21, 03:21 ...
А системный таймер можно запланировать на интервал, соответствующий времени загрузки / запуска системы, с помощью 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"