简介:crontab:定时执行程序,实现脚本中的功能,crontab命令格式:crontab [-u user] [-l | -r | -e] [-i] [-s]
在做定时任务之前我们先来了解一下Linux的用户,用户组及crontab相关的知识。
crontab命令格式:crontab [-u user] [-l | -r | -e] [-i] [-s]
参数作用:
-u 指定用户
-e 编辑当前用户的crontab
-l 查看当前用户下的定时任务
-r 删除当前用户下的定时任务
注意:-u 后面是用户名如root用户,没有指定用户时默认为当前登录用户,列如:crontab -l
例如:
1:显示 crontab 当前用户下的定时任务:crontab -l
2:编辑www用户的定时任务:crontab -u www -e
3:按 i 进入编辑模式内容如下:
以进程方式查看某个用户下的定时任务
ps -ef|grep crond
定义crontab命令:
# 使用php-cli模式每1分钟执行一次脚本,并且把返回的内容添加到ceshi.log文件
*/1 * * * * /usr/local/php/bin/php /home/wwwroot/default/crontab/crontab.php > /home/wwwroot/default/crontab/ceshi.log
# 使用wget定时每1分钟请求一次url,并且把返回的内容添加到ceshi.log文件
*/1 * * * * wget http://baidu.com > /home/wwwroot/default/crontab/ceshi.log
*/1 * * * :分 时 日 月 星期 命令
’':范围的所有数字 ‘/’:每 ‘-’:范围 ‘,’:集合
合法值:分:0-59
时:0-23
日:01-31
月:01-12
星期:0-6(0是星期日)
/usr/local/php/bin/php:安装的php环境,php的全路径
/home/wwwroot/default/crontab/crontab.php:要执行的脚本
/home/wwwroot/default/crontab/ceshi.log:当crontab.php有输出时,把输出的内容写入ceshi.log文件中
实列:
每天晚上的凌晨3点到5天,每隔30分钟执行一次任务: */30 3-5 * * *
每30分钟执行一次任务: */30 * * * *
启动crond服务:
systemctl restart crond.service
# 或者使用systemctl对应的service命令
service crond restart
以日志方式查看定时任务是否有错误:可以查看 /var/log/下的cron文件
cat /var/log/cron
如果你看到这样类似的错误:ERROR chdir failed (/home/apache): No such file or directory
可能是你的权限问题,可以删除当前用户下的定时任务,使用root用户去创建定时任务
有遗漏或者不对的可以在我的公众号留言哦