Linux使用crontab定时任务

本文深入讲解Cron机制,包括crontab的安装、服务操作、参数使用、格式说明及实例,帮助读者掌握如何通过Cron进行定时任务设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • cron机制

cron可以让系统在指定的时间,去执行某个指定的工作,我们可以使用crontab指令来管理cron机制

  • 安装crontab
yum install crontabs
  • crontab服务操作说明
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
  •  查看crontab服务状态
service crond status
  • 加入开机启动
chkconfig –level 35 crond on
  • crontab参数

-u: 这个参数可以让我们去编辑其他人的crontab,如果没有加上这个参数的话就会开启自己的crontab

crontab -u 使用者名称

-l: 可以列出crontab的内容

crontab -l

-r: 可以移除crontab

crontab -r

-e: 可以使用系统预设的编辑器,开启crontab

crontab -e

-i: 可以移除crontab,会跳出系统信息让你再次确定是否移除crontab

crontab -i
  • crontab格式说明

分 时 日 月 星期 要运行的命令

第1列分钟0~59

第2列小时0~23(0表示子夜)

第3列日1~31

第4列月1~12

第5列星期0~7(0和7表示星期天)

第6列要运行的命令

  • crontab时间格式范例

1-3表示123

1-9/2表示13579

*/2 每隔2XX执行一次

  • crontab范例

每五分钟执行   */5 * * * *

每小时执行      0 * * * *

每天执行         0 0 * * *

每周执行         0 0 * * 0

每月执行         0 0 1 * *

每年执行         0 0 1 1 *

每小时的第3和第15分钟执行                       3,15 * * * *

在8点到11点的第3和第15分钟执行             3,15 8-11 * * *

每周一8点到11点的第3和第15分钟执行     3,15 8-11 * * 1

  • 设定cron的权限

/etc/cron.allow
/etc/cron.deny

系统首先判断是否有cron.allow这个文件,如果有这个文件的话,系统会判断这个使用者有没有在cron.allow的名单里面,如果在名单里面的话,就可以使用cron机制。如果这个使用者没有在cron.allow名单里面的话,就不能使用cron机制。

如果系统里面没有cron.allow这个文件的话,系统会再判断是否有cron.deny这个文件,如果有cron.deny这个文件的话,就会判断这个使用者有没有在cron.deny这个名单里面,如果这个使用者在cron.deny名单里面的话,将不能使用cron机制。如果这个使用者没有在cron.deny这个名单里面的话就可以使用cron机制。

  • 使用crontab执行bash脚本

0  * * * *  /bin/sh /root/start.sh>>result1.log 2>&1

0  * * * *  /opt/python36/bin/python3 /root/action.py >>result2.log 2>&1

  • 使用crontab监测项目,如果挂掉就重新开启

编写监测脚本monitor.sh

# init,因为 crontab 用的系统变量
source ~/.bash_profile

# grep 服务的端口号,grep  LISTEN 表示服务正在正常运行
server=`netstat -nat | grep 3000 | grep  LISTEN`

# 如果服务没有开启,sever 会是空的
# 如果服务没有开启,开启;若服务已经开启,输出提示
if [ ! "$server" ];
then
        cd /project/
        /bin/sh ./start.sh
else
        echo "project is running!! "
fi

添加crontab定时任务,每分钟监测一次

* * * * * /bin/sh /project/monitor.sh >> /project/monitor.log 2>&1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值