从脚本创建 cron 作业

从脚本创建 cron 作业

我正在尝试创建一个安装一些 cron 作业的脚本。到目前为止,我所做的就是创建一个我想要的 crontab 模板,并将其复制到 /var/spool/cron/crontabs/root,覆盖原始文件。如果您“crontab -e”,您可以看到正确定义的 cron 作业,但它们实际上并未运行。只有当您修改某些内容然后退出时,强制 crontab“安装”cron 文件才会起作用。

我是否还需要运行任何程序以便“解析”或“安装”新的 cron 文件。

谢谢!

答案1

根据您所使用的系统,systemd 可能会比 cron 获得更好的结果,因为后者已被弃用。

编写您的 shell 脚本,将其保存在 /etc 中,例如 shell-script.sh,并使其可执行。

在 /etc/systemd/system/ 中创建一个名为 shell-script.service 的 .service 文件,用于调用 shell-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

在 /etc/systemd/system/ 中创建一个名为 shell-script.timer 的 .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

相关内容