Linux部署定时任务

一、Crontab

1.1、安装

检查

rpm -qa | grep crontab

安装

yum –y install vixie-cron
yum –y install crontabs

配置

#设置开机自启动
chkconfig --level 345 crond on

操作

service crond start     //启动服务
service crond stop      //关闭服务
service crond restart   //重启服务
service crond reload    //重新载入配置

1.2、知识

格式

* * * * * *

含义

第一个*:minute表示分钟,可以是从0到59之间的任何整数。
第二个*:hour表示小时,可以是从0到23之间的任何整数。
第三个*:day表示日期,可以是从1到31之间的任何整数。
第四个*:month表示月份,可以是从1到12之间的任何整数。
第五个*:week表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
第六个*:command要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

字符

星号(*):代表每的意思,例如month字段如果是星号,则表示每月都执行该命令操作。
逗号(,):表示分隔时段的意思,例如,“1,3,5,7,9”。
中杠(-):表示一个时间范围,例如“2-6”表示“2,3,4,5,6”。
正斜线(/):指定时间间隔频率,如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

日志

位置:/var/log/
查看:tail –f /var/log/cron

流程

1.在/home/mstest目录下创建test.sh,给test.sh脚本执行赋权chmod a+x test.sh;
2.然后运行crontab -e 编写一条每5分钟运行的定时任务 */5 * * * * /home/mstest/test.sh
3.可以 crontab -l 查询当前用户定时任务,或者 crontab -r  删除当前用户所有定时任务  
4.等5分钟后查看任务执行情况

1.3、使用

脚本

mkdir /home/test 
cd test
echo “hello”>test.sh

任务

# 1.1 创建
crontab –e
# 创建一个每分钟执行一次的任务,结果打到/home/test/test.log
*/1 * * * * /home/test/test.sh >> /home/test/test.log

# 1.2  查看
crontab –l

结果

vi /home/test/test.log

1.4、问题

Crontab不立即生效

新建Crontab定时任务保存后需要等待2分钟后才会执行,当然如果想要立即执行可以重启Crontab。当crontab失效时,可以尝试/etc/init.d/crond restart解决问题,或者查看日志看某个任务有没有执行/报错tail -f /var/log/cron。

Crontab不执行
脚本中涉及文件路径时写全局路径,更新系统时间时区后需要重启cron。当手动执行脚本OK,但是crontab不执行时,很有可能是环境变量,可尝试在crontab中直接引入环境变量解决问题,例如:0 * * * * . /etc/profile;/bin/sh /root/backup.sh

Crontab无权限执行
要注意系统级任务调度与用户级任务调度。只有 root 用户和 crontab 文件的所有者可以在 -e 、-l、-r 和 -v 标志后面使用 UserName 以编辑、列出、除去或验证指定用户的 crontab 文件。
root用户的任务调度操作可以通过”crontab –uroot –e”来设置,也可以将调度任务直接写入/etc/crontab文件。想编辑别的用户的 crontab, 使用root运行下面的命令,同一个格式 (追加 “-u username” 到命令后) 也可以用来列出或删除 crontabs: crontab -u username -e

Crontab执行后通知
当Crontab定时任务在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,可以在日志中/var/log/cron看到。若是你不希望收到这样的通知,请在每一行空一格之后加上 > /dev/null 2>&1 即可。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值