cron
是一款在 Linux 和类 Unix 操作系统中使用的任务调度工具。它预装在所有 Linux 发行版中,非常适合自动化重复性任务。
为了确保 cron
正常运作,必须定期检查该实用程序是否在您的系统中正确运行。您可以使用四种不同的方法来完成此操作:检查 cron
服务状态、检查 cron
日志、运行测试 cron
任务以及列出系统上正在运行的进程。
什么是 cron
?
cron
是一种后台作业处理程序,它可以自动执行和安排系统任务。配置和维护软件环境的用户利用 cron
来安排命令或 shell 脚本等作业(也称为 cron
作业)在固定的时间或间隔定期运行。
cron
可以自动化您可能需要经常执行的系统维护或管理任务。
在 Linux 上有多种可用的 cron
实现版本。您所拥有的版本取决于您的 Linux 发行版。”Vixie cron
” 以其原始开发者 Paul Vixie 的名字命名,是一种常见的版本,也是 Debian 和 Ubuntu 上的默认版本。然而,Arch Linux 默认不包含任何 cron
版本,而是使用 systemd 计时器。
cronie
是 Vixie cron
的一个分支,可以作为标准的 Arch 软件包使用。要安装它,请使用 pacman:
sudo pacman -S cronie
然后启动并启用它:
sudo systemctl start cronie.service
sudo systemctl enable cronie.service
您可以通过查找其在线帮助页面来查看系统上安装的是哪个版本的 cron
:
man cron
如何检查 cron
是否在 Linux 上运行?
以下是一些检查 cron
是否正常工作的方法:
1. 检查 Linux 上的 cron
服务状态
检查 cron
是否正常工作的一种方法是通过运行基本的 Linux 命令来检查 cron
服务的状态。按 Ctrl + Alt + T 打开 Linux 终端,然后使用 systemctl
命令检查 cron
的状态:
sudo systemctl status cron
如果看到以下输出,则表示 cron
处于活动状态并且在您的系统上运行良好。
但是,如果 cron
处于非活动状态(如下所示)怎么办?
您可以像这样启动服务:
sudo systemctl start cron.service
启动 cron
服务后,启用它,以便它在每次系统重新启动时启动:
sudo systemctl enable cron.service
2. 检查 Linux 上的 cron
日志
检查 cron
是否正常工作的另一种方法是检查日志文件。Linux 上的 cron
日志存储在 /var/log/syslog
目录中。
syslog
是 Linux 系统用来集中事件数据日志的协议。然后访问日志以执行审核、监控、故障排除、报告和其他必要的 IT 操作任务。
您可以通过执行以下命令在 syslog
文件中查看 cron
作业日志:
grep 'cron' /var/log/syslog
您将看到类似的输出,表明 cron
运行良好,并且其日志存储在日志文件中:
由于 syslog
文件夹包含其他系统日志以及 cron
日志,因此仅检查文件中与 cron
相关的日志可能会有点棘手。您可以通过创建一个单独的日志文件来解决此问题,该日志文件仅存储 syslog
文件中出现的 cron
条目。
在此示例中,我们将使用 nano
编辑器,但您可以使用您觉得合适的任何编辑器。
使用 nano
打开以下文件:
nano /etc/rsyslog.d/50-default.conf
找到以以下内容开头的行:
#cron.*
通过删除井号 (#) 取消注释此行。然后,按 Ctrl + X 保存并退出文件,然后按 Y 并按 Enter 键。
通过发出以下命令重新启动 rsyslog
服务:
sudo service rsyslog restart
您现在将在位于 /var/log
目录中的 cron.log
文件中收到日志。
如果您的终端无法获取任何日志,则可能意味着 cron
未运行。在这种情况下,请使用其他方法确认 cron
是否正常工作。
3. 在 Linux 上运行 cron
作业
您还可以通过简单地创建一个测试 cron
作业并执行它来检查 cron
是否正常工作。如果作业成功执行任务,则意味着它运行良好。
您首先需要创建一个 Bash 脚本。Bash 脚本允许您在 Linux 上自动执行日常任务。
让我们创建一个 Bash 脚本来打印“我的 cron
任务正在工作!”到 TXT 文件中。要创建该文件,首先,使用以下命令找出当前的工作目录:
pwd
使用 touch
命令在当前目录中创建文件:
touch file.txt
之后,使用 nano
创建一个 Bash 文件:
nano script.sh
将以下内容添加到文件中:
#! /usr/bin/bash
echo "my cronjob is working!" >> /home/username/file.txt
确保提供您创建的文本文件的正确位置。按 Ctrl + X,然后按 Y,然后按 Enter 键保存并退出文件。
授予 Bash 脚本执行权限:
chmod +x script.sh
现在创建一个 cron
作业来执行该脚本。为此,请使用以下命令打开 crontab
文件:
crontab -e
在文件末尾输入以下行。
* * * * * /path/to/script.sh
五个星号与执行时间匹配,其中第一个星号代表分钟(0-59),第二个星号代表小时(24小时制,所以下午1:00是13,午夜从0开始),第三个星号表示日期(0-7,0 和 7 是星期日),第四个星号表示月份,最后一个星号表示年份。
文件中还提到了可执行文件的名称及其路径。
保存并关闭文件后,您将在终端上看到“crontab:安装新的 crontab”消息。
要检查 cron
作业是否有效,请转到 file.txt
目录并使用 cat
在终端上打印其内容:
cat file.txt
这表明 cron
工作正常。
4. 检查 Linux 上正在运行的进程
检查 cron
守护进程是否正常工作的另一种方法是列出系统上正在运行的进程。您可以使用 ps
命令来实现此目的。cron
守护进程将在输出中显示为 crond
。
ps aux | grep cron
这确认 cron
进程正在您的 Linux 系统上运行。
使用 cron
自动执行和安排系统任务
cron
是 Linux 上最重要的实用程序之一,它使系统能够高效运行。有时,在排除系统问题时必须检查 cron
是否正常工作。
您可以通过检查 cron
日志或查看系统上正在运行的进程来实现此目的。您还可以使用 systemctl
实用程序检查 cron
状态。除此之外,运行测试 cron
作业还可以告诉您服务是否正在运行。
cron
的顺利工作使您可以自动化和安排日常系统作业。大多数 cron
作业都是由已安装的应用程序自动创建的。自动化和调度任务可以提高整体系统性能并保持其健康运行。