Linux 之 定时任务 crontab 简单使用
定时任务是做一些周期性的任务,如:定时备份数据等
安装 crontab - centos
// vixie-cron 软件包是cron的主程序
yum install vixie-cron
yum install crontabs
设置开机自启动
设置crond 定时任务服务的开机自启, 在 /etc/rc.d/rc.local
脚本中加入 /sbin/service crond start
使用任务
crontab -e //编辑定时任务
//1、每天早上5点0分追加一个字符串到指定文本中
0 5 * * * echo "test crontab" >> /tmp/test.txt
//2、每月每天每小时的第 0 分钟执行一次
0 * * * * echo "test crontab" >> /tmp/test/txt
// 3、 每五分钟执行一次任务 laravel
*/5 * * * * /usr/bin/php /www/wwwroot/project_name/artisan user_command >>/dev/null 2>&1
*/5 * * * * /usr/bin/php /www/wwwroot/project_name/artisan commands >>/dev/null 2>&1
“/dev/null2>&1”表示先将标准输出重定向到/dev/null,然后将标准错误重定向到标准输出,由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null,这样日志输出问题就解决了。
有关crontab的一些命令:
crontab [-u username] [-e|-l|-r]
-u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务
此参数一般有root用户来运行。
-e //编辑定时任务 编辑某个用户的crontab文件内容。当不指定用户时,表示编辑当前用户的crontab文件
-l //查看定时任务 显示某个用户的crontab文件内容,当不指定用户,则表示显示当前用户的crontab文件内容
-r //删除定时任务 从/var/spool/cron目录中删除某个用户的crontab文件
当不指定用户,则默认删除当前用户的crontab文件。
定时任务关于时间相关介绍
[root@VM_0_6_centos ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# 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
部分多次调用实例
# 1、每小时的第3分钟和第30分钟执行命令
3,15 * * * * user_command
# 2、每天上午的8点到11点的第3分钟和第30分钟执行
3,30 8-11 * * * user_command
# 3、每个3天的上午7点到12点的第3分钟和第30分钟执行
3,30 7-12 */3 * * user_command
# 4、 每个星期1的上午7点到12点的第3分钟和第30分钟执行
3,30 7-12 * * 1 user_command
实例相关时间介绍
#每 N 分钟(小时、天、月份) 使用 /N
#不连续的时间(第3分钟,第30分钟) 使用 " , "
#连续的时间使用(7点到12点) 使用 " - "