Я пытаюсь создать сценарий который устанавливает рабочие места sme cron. Пока что я создал шаблон того, как должен выглядеть crontab, и скопировал его в / var / spool / cron / crontabs / root, перезаписав исходный файл. Если вы «crontab -e», вы можете увидеть, что задания cron определены правильно, но на самом деле они не выполняются. Только если вы измените что-то, а затем выйдете, заставив crontab «установить» файл cron, он сработает.
Нужно ли мне дополнительно запускать что-нибудь, чтобы новый файл cron был «проанализирован» или «установлен». Спасибо!
В зависимости от системы Вы идете, systemd может получить Ваш результат лучше, чем крон, потому что последний удерживается от использования.
Запись Ваш сценарий оболочки, сохраните его в / и т.д. как что-то как оболочка-script.sh и сделайте его исполняемым файлом.
Создают .service файл в/etc/systemd/system/, названном оболочкой-script.service, которая называет оболочку-script.sh.
# /etc/systemd/system/shell-script.service
[Unit]
Description=Run shell-script.sh
[Service]
Type=oneshot
ExecStart=-/bin/bash -c /etc/shell-script.sh
Создают .timer файл в/etc/systemd/system/, названном оболочкой-script.timer:
# /etc/systemd/system/shell-script.timer
[Unit]
Description=Periodically run shell-script.service.
[Timer]
# Run daily at 8:08am and every 4 hours thereafter:
OnCalendar=*-*-* 08/4:08:00
Persistent=true
[Install]
WantedBy=multi-user.target
Наконец, запустите .timer:
sudo systemctl start shell-script.timer
и включают его так, чтобы это было правильно скомпилировано для погони за перезагрузкой:
sudo systemctl enable shell-script.timer