分享

centos crontab定时任务用法

 中间件 2021-08-30

一、安装crond服务

yum -y update
yum -y install cronie yum-cron

 

二、crontab任务语法

复制代码
crontab任务配置基本格式:
*   *  *  *  *  command
第1列表示分钟0~59 每分钟用 * 或者 */1 表示
第2列表示小时0~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~60,7都可表示星期天)
第6列要运行的命令或执行shell脚本
复制代码

综合起来就是: 分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天)  命令

从上面可以看出,crontab最小的时间单位: 1分钟。如果要每30秒执行一次脚本,要么写个小脚本,要么在crontab增加延迟。

例子:crontab中增加延迟30秒来实现

复制代码
a、crontab -e,添加如下内容:
*/1 * * * * sh && echo "dd" >> /logs/cron-cc.log
*/1 * * * * sleep 30 && echo "cc" >> /logs/cron-cc.log

b、重启crond
systemctl reload crond
systemctl restart crond

c、查看当前用户定时任务
crontab -l

d、通过日志查看是否生效
tail -f /logs/cron-cc.log
复制代码

 

案例一:每隔10秒执行一次

##crontab设置的最小时间为每分钟,实现以秒为单位进行定时任务执行。

*/1 * * * * sh /root/shell/aa.sh
*/1 * * * * sleep 10 && sh /root/shell/aa.sh
*/1 * * * * sleep 20 && sh /root/shell/aa.sh
*/1 * * * * sleep 30 && sh /root/shell/aa.sh
*/1 * * * * sleep 40 && sh /root/shell/aa.sh
*/1 * * * * sleep 50 && sh /root/shell/aa.sh

注意:aa.sh为执行脚本


案例二:每隔20秒执行一次

*/1 * * * * sh /root/shell/aa.sh
*/1 * * * * sleep 20 && sh /root/shell/aa.sh
*/1 * * * * sleep 40 && sh /root/shell/aa.sh

注意:aa.sh为执行脚本

案例三:每隔5分钟执行一次

*/5 * * * * sh /root/shell/echo.sh


三、crontab常用命令

复制代码
##查看当前用户定时任务
crontab -l 
调用/var/spool/cron/目录下相关用户的定时任务信息

查看定时任务日志
tail -f /var/log/cron

systemctl status crond.service
systemctl start crond.service
systemctl stop crond.service
systemctl restart crond.service
systemctl reload crond.service


把cron服务加入linux开机自启动
systemctl enable crond.service
systemctl is-enabled crond.service

#crond后台的工作情况并过滤出来
ps -ef |grep crond|grep -v grep
复制代码

 注意:

路径问题

有些脚本涉及到文件操作,文件路径不正确也会导致脚本无法正常执行,建议使用绝对路径,或者在执行脚本时,先进入该脚本的路径下,在执行。Crontab的command配置如下:

*/1 * * * * cd /root/shell && ./cron.sh

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多