我如何知道 crontab 是否工作正常?

我如何知道 crontab 是否工作正常?

有没有 crontab 的日志让我知道 crontab 是否工作正常?我使用的是 Linux Mint 17.3。

我做了什么:

  1. crontab -e以 root身份运行
  2. 它不存在,所以我选择nano编辑器并继续
  3. 进入这一行00 12 * * * /home/vlastimil/Development/bash/full-upgrade.sh
  4. 保存并退出

我的目标是每天 12 小时(中午,而不是午夜)自动更新。这篇文章并不是要争论实现这一目标的最佳方法。

我创建了/home/vlastimil/Development/bash/full-upgrade.sh包含以下内容的文件:

#!/bin/bash
apt-get update && apt-get dist-upgrade -y && apt-get --purge autoremove -y

最后我为该文件设置了 755 权限。

我不知道如何测试它。它会起作用吗?

答案1

日志可能会转到 syslog,这取决于所涉及的 syslog 守护进程以及它的日志配置方式,从

grep -r cron /etc/*syslog*

查找系统上发生的位置和情况,或者根据 derobertsystemd相关命令是

journalctl -b 0 _SYSTEMD_UNIT=cron.service

添加涉及文件的测试 cron 作业(最好不要在 中/tmp,除非供应商出于安全原因将其设为每个用户私有)还应该确认 cron 是否正在工作,只需确保最终删除之前的测试 cron 作业填满一个分区或一些愚蠢的东西。

其他可用性和安全性指针:一些 cron 守护进程可以直接运行脚本,在这种情况下,您可以将脚本复制到/etc/cron.daily,尽管这可能不适合您不想在顶部运行的东西(与其他所有内容一起运行!)小时。root在用户的主目录下运行脚本可能会非常糟糕,因为该用户帐户的妥协可能会被利用来获得 root 访问权限,或者如果主目录位于 NFS 上或已加密,则脚本可能会不必要地失败;将脚本移到其他地方以避免这种情况(/root/bin或者位于本地文件系统首选项之下/usr/local/opt取决于本地文件系统首选项)。

更多的指针落入 shell 脚本调试领域,主要是要注意 cron 不是 shell;使用envset查看 cron 下的设置,检查是否PATH正确,等等(一个古老而可怕的 Linux 内核错误涉及 java 守护进程崩溃,但前提是它们是从 cron 运行的;调试起来很有趣......)

相关内容