Linux 定时任务调度(crontab命令)

  1. crond 是Linux下用周期性的执行某种任务或者等待处理某些事件的一个守护进程,crond 进程会每分钟定期检查是否有要执行的任务,如果有要执行的任务则自动执行该任务
  2. Linux 下的任务调度
    1. 系统任务调度:系统周期性所要执行的工作,如:写缓存数据到硬盘、清理日志等。系统任务调度的配置文件 /etc/crontab
    2. 用户任务调度:用户定期要执行的工作,比如数据库备份、定时邮件提醒等。所有用户定义的crontab文件都保存在/var/spool/cron目录中。文件名与用户名一致。
  3. crontab 文件的含义 用户所建立的crontab文件中,每一行代表一项任务,每行的每个字段代表一项设置,共分六个字段,前五段是时间设定段,第六段是要执行的命令段 minute hour day month week command

在以上各个字段中,还可以使用以下特殊字符: 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9” 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6” 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次

  1. crontab 服务
    1. service cron start //启动服务
    2. service cron stop //关闭服务
    3. service cron restart //重启服务
    4. service cron reload //重新载入配置
    5. service cron status //查看服务状态
  2. 查看服务是否已经运行用 ps -ax | grep cron
  3. crontab命令选项:
    1. -u指定一个用户
    2. -l列出某个用户的任务计划
    3. -r删除某个用户的任务
    4. -e编辑某个用户的任务
  4. 新增任务调度
    1. 在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
    2. 直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。
  5. 查看任务调度 crontab -l //列出当前的所有调度任务 crontab -l -u jp //列出用户jp的所有调度任务
  6. 删除任务调度 crontab -r //删除所有任务调度工作
  7. 利用任务调度执行Shell脚本,在Shell脚本中执行PHP文件,可以做到每秒执行一次PHP文件
    1. 假设脚本为 aaa.sh (一定要给该文件可执行的权限) 内容为: #!/bin/bash int=1 while(( $int<=60 )) do php /var/www/html/index.php echo $int let "int++" sleep 1 done
    2. PHP文件(如果执行不成功可以尝试给该文件授权为755) 内容为: <?php echo "this is zhuchenglin's website!";
    3. 执行如下命令:
      1. sudo corntab -e 编辑定时任务 内容,加上下面内容(里面是绝对路径): * * * * * sh /var/www/html/aaa.sh >> /var/www/html/crontab.log #后面将输出的内容重定向到日志文件中是为了看定时任务是否执行
      2. 编辑好后,保存并退出
      3. 重启cron服务 service cron restart
      4. 过大概一分钟后查看日志文件内是否有内容 (尽量给该日志文件足够的权限) cat /var/www/html/crontab.log

注:本文参考:Linux定时任务crontab命令详解linux定时任务的设置 crontab 配置指南 如需转载请注明出处:http://www.cnblogs.com/zhuchenglin/p/8758444.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Spark学习技巧

高性能:MYSQL异步客户端

实时处理领域,当需要使用外部存储数据染色的时候,需要慎重对待,不能让与外部系统之间的交互延迟对流的整个进度取决定性的影响。

3182

创建您的第一本Chef Cookbook

Cookbook是Chef框架的关键组成部分之一,其描述了相关节点的所需状态,并允许Chef推送需达到该状态的更改数据。由于需要进行配置的选项和区域数量众多,第...

2295
来自专栏编程坑太多

『中级篇』k8s的NodePort类型Service以及Label的简单实用(68)

3047
来自专栏Youngxj

AE博客原创 | 开源的短网址程序Myurl

2712
来自专栏编程坑太多

『中级篇』Docker-Secret管理和使用(51)

PS:网络现在很发达,密码一定要好好的保存,在公司内部开发安全也是首位,所以本节至关重要!

931
来自专栏编程坑太多

『中级篇』k8s的NodePort类型Service以及Label的简单实用(68)

993
来自专栏北京马哥教育

教你如何在Fedora,CentOS,RHEL中检查RPM包的依赖性

我们都知道,在基于红帽的Linux系统中,一个RPM包,需要把先将它依赖的其他包安装好才能正常的工作。对于终端用户,RPM的安装、更新、删除中存在的依赖关系已经...

33411
来自专栏信安之路

简单粗暴的文件上传漏洞

文件上传漏洞可以说是日常渗透测试用得最多的一个漏洞,因为用它获得服务器权限最快最直接。但是想真正把这个漏洞利用好却不那么容易,其中有很多技巧,也有很多需要掌握的...

8240
来自专栏happyJared

Java开发人员常用的服务配置(Nginx、Tomcat、JVM、Mysql、Redis)

3681
来自专栏我和PYTHON有个约会

爬虫0020:urllib2操作urllib2的使用

至此,我们可以描述爬虫程序,就是用来根据一定的规则采集获取网络中的数据的! 整个采集过程主要步骤如下:

1163

扫码关注云+社区

领取腾讯云代金券