Linux Crontab 定时任务

admin 2021-01-27 736 阅读 0评论

linux内置的cron进程能帮我们实现这些需求,cron搭配shell脚本,非常复杂的指令也没有问题。

cron介绍

我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。

  • /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名

  • /etc/crontab 这个文件负责调度各种管理和维护任务。

  • /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。

  • 我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。

crontab的使用

我们常用的命令如下:

crontab [-u username]    //省略用户表表示操作当前用户的crontab    -e      (编辑工作表)    -l      (列出工作表里的命令)    -r      (删除工作作)

我们用crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。

crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有

  • * 取值范围内的所有数字

  • / 每过多少个数字

  • - 从X到Z

  • 散列数字


实例


实例1:每1分钟执行一次myCommand

* * * * * myCommand

实例2:每小时的第3和第15分钟执行

3,15 * * * * myCommand

实例3:在上午8点到11点的第3和第15分钟执行

3,15 8-11 * * * myCommand

实例4:每隔两天的上午8点到11点的第3和第15分钟执行

3,15 8-11 */2  *  * myCommand

实例5:每周一上午8点到11点的第3和第15分钟执行

3,15 8-11 * * 1 myCommand

实例6:每晚的21:30重启smb

30 21 * * * /etc/init.d/smb restart

实例7:每月1、10、22日的4 : 45重启smb

45 4 1,10,22 * * /etc/init.d/smb restart

实例8:每周六、周日的1 : 10重启smb

10 1 * * 6,0 /etc/init.d/smb restart

实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb

0,30 18-23 * * * /etc/init.d/smb restart

实例10:每星期六的晚上11 : 00 pm重启smb

0 23 * * 6 /etc/init.d/smb restart

实例11:每一小时重启smb

* */1 * * * /etc/init.d/smb restart

实例12:晚上11点到早上7点之间,每隔一小时重启smb

* 23-7/1 * * * /etc/init.d/smb restart


常用的命令展示

安装crontab:

1
yum install crontabs

crontab服务操作说明:

1
2
3
4
5
6
7
/sbin/service crond start //启动服务
 
/sbin/service crond stop //关闭服务
 
/sbin/service crond restart //重启服务
 
/sbin/service crond reload //重新载入配置

查看crontab服务状态:

1
service crond status

手动启动crontab服务:

1
service crond start

查看crontab服务是否已设置为开机启动,执行命令:

1
2
方法一: 界面启动      ntsysv
方法二: 加入开机自动启动:   chkconfig –level 35 crond on

crontab -l查看定时任务列表


crontab 实例

编辑定时任务

# crontab -e 

//以下为定时任务实例

* * * * * /usr/local/bin/php /home/john/myscript.php

/usr/local/bin/php  ----》 为PHP程序的路径。

/home/john/myscript.php ----》 为执行的文件

以下为定时任务测试文件

1:switch.php

<?php

return 1;//1执行脚本 0退出执行脚本

?>

2:myscript.php

<?php

    ignore_user_abort();//关闭浏览器后,继续执行php代码

    set_time_limit(0);//程序执行时间无限制

    $sleep_time = 5;//多长时间执行一次

    $switch = include 'switch.php';

    while($switch){

        $switch = include 'switch.php';

        $msg=date("Y-m-d H:i:s").$switch;

            file_put_contents("/home/wwwroot/default/log.log",$msg,FILE_APPEND);//记录日志

        sleep($sleep_time);//等待时间,进行下一次操作。

    }

    exit();

?>




喜欢就支持以下吧
点赞 0

发表评论

快捷回复: 表情:
aoman baiyan bishi bizui cahan ciya dabing daku deyi doge fadai fanu fendou ganga guzhang haixiu hanxiao zuohengheng zhuakuang zhouma zhemo zhayanjian zaijian yun youhengheng yiwen yinxian xu xieyanxiao xiaoku xiaojiujie xia wunai wozuimei weixiao weiqu tuosai tu touxiao tiaopi shui se saorao qiudale qinqin qiaoda piezui penxue nanguo liulei liuhan lenghan leiben kun kuaikule ku koubi kelian keai jingya jingxi jingkong jie huaixiao haqian aini OK qiang quantou shengli woshou gouyin baoquan aixin bangbangtang xiaoyanger xigua hexie pijiu lanqiu juhua hecai haobang caidao baojin chi dan kulou shuai shouqiang yangtuo youling
提交
评论列表 (有 0 条评论, 736人围观)

最近发表

热门文章

最新留言

热门推荐

标签列表