Linux / 学习笔记 / 常用工具

crontab添加定时任务

迷失 · 5月5日 · 2022年本文共1312个字 · 预计阅读5分钟218次已读

快速增删任务

添加定时任务(先删除,然后再添加)

crontab -l | grep -v "your.sh" | crontab -
(crontab -l; echo "* * * * * sh "pwd"/your.sh") | crontab -
crontab -l

your.sh 为需要检测与删除的任务关键词

* sh "pwd"/your.sh 为需要一键添加的时间与脚本命令

时间可以访问这里计算: https://tool.lu/crontab

详解

编辑计划任务 crontab

运行带有 -e 参数的 crontab 以编辑 Cron 表

crontab -e

选择编辑器

第一次运行 crontab 时,系统会提示您选择一个编辑器;如果不确定要使用哪个编辑器,请按 enter 选择 nano。

添加计划任务

cron 条目的布局由六个组件组成:分钟、小时、月、月、周 要执行的命令。

# * * * * * command to execute
# ┬ ┬ ┬ ┬ ┬
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ └───── 星期几(0-7) (0-6 表示 星期日到星期六,或使用名称; 7 表示星期日,与0相同)
# │ │ │ └────────── 月 (1 - 12)
# │ │ └─────────────── 日 (1 - 31)
# │ └──────────────────── 小时 (0 - 23)
# └───────────────────────── 分钟 (0 - 59)

例如:

30 23 * * * /home/pi/backup.sh

这个计划任务每天 23:30 运行 backup.sh 脚本。

查看计划任务

查看当前保存的计划任务:

crontab -l

添加启动时运行任务

要在每次 Linux 启动时运行命令,请编写 @reboot,而不是时间和日期。例如:

@reboot python /home/pi/myscript.py

这将在每次 Raspberry PI 重新启动时运行 python 脚本。如果希望在 Raspberry PI 继续启动时在后台运行命令,请在行尾添加一个空格和 &,如下所示:

@reboot python /home/pi/myscript.py &

特殊字符串

您可以使用八个特殊字符串中的任意一个,而不是前面提到的 * * * * * command to execute。

它不仅可以节省您的时间,还可以提高可读性。

@reboot
启动时运行一次

@yearly
每年运行一次

@annually
(等同于 @yearly)

@monthly
每月运行一次

@weekly
每周运行一次

@daily
每天运行一次

@midnight
(等同于 @daily)

@hourly
每小时运行一次
# 启动这些任务
service cron start
# 若是修改定时任务内容之后,可以重启定时任务
service cron restart
# 查看定时任务的状态
service cron status
# 修改rsyslog服务,将 /etc/rsyslog.d/50-default.conf  文件中的 #cron.* 前的 # 删掉;
# 用以下命令重启rsyslog服务:
service rsyslog restart;
# 查看定时任务日志
cat /var/log/cron.log
# 查看定时任务日志的最近5个记录
tail -n 5 /var/log/cron.log