📜  crontab 测试 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:30:07.482000             🧑  作者: Mango

crontab 测试 - Shell-Bash

简介

crontab是一个定时任务工具,在Linux系统上广泛使用。可以设置定时执行某些命令或脚本,非常方便。

在本文中,我们将介绍如何在Shell/Bash中使用crontab工具,并提供一些测试方法。

使用方法

首先,打开终端,输入以下命令进入编辑模式:

crontab -e

这将打开一个文本文件,可以在其中添加定时任务。每行表示一个定时任务,格式如下:

* * * * * /path/to/command arg1 arg2

其中* * * * *表示定时任务的时间设置,具体含义如下:

  • 第1个*:表示分钟,取值范围0-59;
  • 第2个*:表示小时,取值范围0-23;
  • 第3个*:表示日期,取值范围1-31;
  • 第4个*:表示月份,取值范围1-12;
  • 第5个*:表示星期,取值范围0-6(0表示周日,1表示周一,以此类推)。

/path/to/command表示需要执行的命令或脚本路径,arg1arg2为命令的参数,可以省略。

以下是一些例子:

  • 每天0点执行/root/backup.sh脚本:0 0 * * * /root/backup.sh
  • 每周一下午3点执行/usr/bin/python3 /root/task.py命令:0 15 * * 1 /usr/bin/python3 /root/task.py
  • 每隔2小时执行/usr/bin/php /var/www/html/test.php脚本:0 */2 * * * /usr/bin/php /var/www/html/test.php

注意,crontab配置文件的每行结尾不能有空格或TAB键,否则定时任务将不能正常执行。

测试方法

测试crontab定时任务是否正常执行,有以下方法:

1. 查看系统日志

crontab的执行日志会保存在系统日志中,可以通过以下命令查看是否有定时任务执行记录:

sudo grep CRON /var/log/syslog

如果有定时任务执行记录,说明crontab工作正常。

2. 查看命令输出

如果定时任务执行的命令或脚本有输出,可以通过以下方法查看命令输出:

tail -f /var/log/syslog | grep mycommand

其中mycommand为需要查看输出的命令名或脚本名。如果输出正常,说明定时任务执行正常。

3. 模拟定时执行

如果不想等待定时任务自动执行,可以手动模拟定时任务执行。

例如,如果我们设置了每小时执行一次/root/task.sh脚本,可以手动执行以下命令,模拟定时任务的执行:

while true; do sleep 3600 && /root/task.sh; done

这将让脚本每隔1小时运行一次,如有输出可以查看它们。

结论

通过本文的介绍和测试方法,我们可以轻松使用crontab工具来实现定时任务。