debian系Cron定时任务

Install

1
apt-get install cron

Create a scheduled task

  1. 键入 crontab -e 编辑 crontab 服务文件
  2. 用 crontab -u username -l 命令,查看该用户下的crontab服务是否创建成功
  3. 用 ps -ax | grep cron 查看服务是否已经运行

初始化 cron 进程,使用 systemctl 进行管理的发行版同理

  • 启动 /etc/init.d/cron start

  • 关闭 /etc/init.d/cron stop

  • 重启 /etc/init.d/cron restart

Configuration

1. 编辑配置文件

  crontab是通过读取一个crontab文件来工作,这是一个普通的文本文件,里面列出了要执行的任务。每行都含有要指定的任务的命令、参数与选项,以及要执行任务的时间。(cron 软件在后台运行并且经常检查 /etc/crontab 文件。cron 软件也检查 /var/cron/tabs 目录,搜索新的 crontab 文件。这些 crontab 文件存储一些 cron 在特定时间执行任务的信息。)

  crontab的基本格式:

1
* * * * * command

几个星号分别为:分 时 日 月 周,最后是要执行的命令。

  • 分:0~59
  • 时:0~23
  • 日:1~31
  • 月:1~12
  • 周:0~6(0表示星期天)

除了数字还有几个个特殊的符号就是* / - :

  • * 代表所有的取值范围内的数字
  • / 代表每的意思
  • */5 表示每5个单位
  • - 代表从某个数字到某个数字
  • , 分开几个离散的数字

配置文件的一些例子:

  • 0 3 * /root/test.sh 每天凌晨3点执行test.sh文件
  • * 23-7/1 * /root/lnmp restart 晚上11点到早上7点之间,每隔一小时重启lnmp套件
  • /30 * /usr/sbin/ntpdate 每半小时同步一下时间
  • 0 23 6 /lnmp restart 每星期六的11 : 00 pm重启重启lnmp套件。
  • /1 * echo “i am running.”>>/tmp/running.txt 每隔1分钟向/tmp/running.txt写一个”i am running.”字符串。

2. 直接用crontab命令编辑

cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数

crontab -l //列出某个用户cron服务的详细内容

crontab -r //删除每个用户的cron服务

crontab -e //编辑某个用户的cron服务

比如说root查看自己的cron设置:

crontab -u root -l

再例如,root想删除fred的cron设置:

crontab -u fred -r

在编辑cron服务时,编辑的内容有一些格式和约定,输入:

crontab -u root -e