您当前的位置: 首页 >  linux

培根芝士

暂无认证

  • 0浏览

    0关注

    446博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Linux使用crontab定时任务

培根芝士 发布时间:2020-08-04 11:17:57 ,浏览量:0

  • 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

关注
打赏
1660824269
查看更多评论
立即登录/注册

微信扫码登录

0.0476s