Cron
阅读量:
Cron 本身是一个守护进程,是 Linux 下的计划任务管理工具,在后台运行,通过配置文件“crontab”来根据时间调度指定的作业执行。
- cron 是大多数 linux 发行版都自带的守护进程(daemon)
- cron job 是指定义好的在指定时间运行的任务
- crontab(cron table 的简称) 既可以指 cron 用来定期执行特定任务所需要的列表文件,又可以指用来创建、删除、查看当前用户(或者指定用户)的 crontab 文件的命令。
# Check cron service on Linux system
sudo systemctl status cron.service
crontab 命令
-
crontab -a <filename>
: 创建一个新的文件<filename>
作为 crontab 文件 -
crontab -e
: 编辑 crontab 文件,若不存在则新建 -
crontab -l
: 列出 crontab 文件 -
crontab -r
: 删除所有 crontab 文件 -
crontab -v
: 显示最近一次编辑的 crontab 文件
配置文件
系统默认 crontab 文件为/etc/crontab,以及/etc/cron.d/目录下的文件,有些程序会把自己的 crontab 文件放在/etc/cron.d/目录下。cron 守护进程会检查/etc/crontab 以及/etc/cron.d/目录下的文件,根据这些文件中的 cron 任务所设置的执行时间决定是否执行任务,如果当前时间与 cron 任务所设置的执行时间相同,则执行任务。
每个用户自己的 crontab 文件都会被放在 /var/spool/cron 目录下,默认为空,可以使用 crontab 命令创建。cron 守护进程会检查/var/spool/cron 目录下的文件,根据这些文件中的 cron 任务所设置的执行时间决定是否执行任务,如果当前时间与 cron 任务所设置的执行时间相同,则执行任务。
语法
SHELL=/bin/bash
MAILTO=root@example.com
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
* any value
, value list separator
- range of values
/ step values
查看 cron 语法的网站 https://crontab.guru/
示例
* * * * * cd /home/audhi && /bin/bash shell-script.sh >> log.out
-
* * * * *
表示任务将会每分钟执行一次 - 工作目录将会切换至
/home/audhi
,shell-script.sh
储存在该目录下 -
/bin/bash
是 bash 的可执行程序 -
>>
将执行结果添加至log.out
文件中,若使用>
则会对文件进行覆盖 -
shell-script.sh
是具体的 bash 脚本
相关命令
-
列出所有运行中的 cron 任务
ps fauxww | grep -A 1 '[C]RON'
#待整理笔记
反向链接
到头儿啦~