Linux定时任务-crontab

简介:crontab:定时执行程序,实现脚本中的功能,crontab命令格式:crontab [-u user] [-l | -r | -e] [-i] [-s]

在做定时任务之前我们先来了解一下Linux的用户,用户组及crontab相关的知识。

  1. 首先购买Linux服务器时服务商都会要求设置root账号的密码,这个root就是Linux的超级用户,拥有所有可操作的权限,我们用root用户登录以后可以分配其他用户,还可以设置用户对某些文件的操作权限。
  2. 用户组就是给用户分组,其作用可想而知
  3. crontab是定时执行程序。在Linux中是通过etc/rc.d/init.d(Linux版本的不同服务所在的位置不一样)这个守护进程服务来实现计划任务

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用户去创建定时任务

有遗漏或者不对的可以在我的公众号留言哦

编程经验共享公众号二维码

编程经验共享公众号二维码
更多内容关注公众号
Copyright © 2021 编程经验共享 赣ICP备2021010401号-1