设为首页 收藏本站
查看: 337|回复: 0

[经验分享] 非常好的介绍:Linux定时执行工具cron

[复制链接]

尚未签到

发表于 2016-3-11 12:52:25 | 显示全部楼层 |阅读模式
  Linux经过十多年的发展,很多用户都很了解Linux了,这里介绍一下Linux下cron的理解,和大家讨论讨论。cron是一个Linux
定时执行工具,可以在无需人工干预的情况下运行作业,本文档不讲cron实现原理,主要讲一下Linux定时执行工具cron的具体使用及简单介绍。
  新增调度任务
推荐使用crontab
-e命令添加自定义的任务(编辑的是/var/spool/cron下对应用户的cron文件),退出后重启crond进程,虽然官方文档描述为
“crond命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。”,但我曾经遇到不重启无法运行任务的情况(也许因为某些
系统crontab是读到内存中的,修改完/etc/crontab后并没有马上执行),可以使用如下方式重新启动cron服务或重新加载cron配置


  • /etc/rc.d/init.d/crond restart  
  • service crond reload

  同样,我们也可以直接修改/etc/crontab文件来新建任务,/etc/crontab文件内容默认如下:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/sbin:/usr/bin
MAILTO=root
//如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=///使用者运行的路径,这时是根目录
# run -parts
01 *
* * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
02 4 * * *
root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
22 4 * * 0 root
run-parts /etc/cron.weekly //每周执行/etc/cron.weekly内的脚本
42 4 1 * * root
run-parts /etc/cron.monthly //每月执行/etc/cron.monthly内的脚本
  注意:
"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某表脚本名,而不是文件夹的名了。
/etc/cron.hourly/
,/etc/cron.dail/ 、cron.weekly/ 、cron.monthly/ 存放着系统预先制定的cron的任务
/etc
/crontab文件语法如下:
MinuteHour   Day    Month Dayofweekcommand
分钟   小时天  月   
天每星期命令
每个字段代表的含义如下:
  Minute 每个小时的第几分钟执行该任务
Hour   每天的第几个小时执行该任务
Day每月的第几天执行该任务
Month
每年的第几个月执行该任务
DayOfWeek每周的第几天执行该任务
Command 指定要执行的程序
在这些字段里,除
了“Command”是每次都必须指定的字段以外,其它字段皆为可选字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。
  同时,cron支持类似正则表达式的书写,支持如下几个特殊符号定义:
"*"代表取值范围内的数字,
"/"代表"每",
"-"
代表从某个数字到某个数字,
","分开几个离散的数字
  举例如下:
5 * ***ls 指定每小时的第5分钟执行一次ls命令
305 ***ls 指定每天的 5:30 执行ls命令
307
8   **ls 指定每月8号的7:30分执行ls命令
50   7 * **rootrun-parts/etc/cron.daily   
每天7:50以root
身份执行/etc/cron.daily目录中的所有可执行文件[注:run-parts参数表示,执行后面目录中的所有可执行文件,如果单独执行某个脚
本的话,是不需要增加run-parts参数的。]
  服务管理
service crond start
service crond stop
service
crond restart
service crond reload//启新载入配置
  命令选项
-u 指定一个用户
-l 列出某个用户的任务
-r 删除某个用户的任务
-e
编辑某个用户的任务
  如:
crontab -u //指定某个用户的cron服务
crontab -l
//列出某个用户的cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e
//编辑某个用户的cron服务
  任务分类
系统工作:系统周期性所要执行的工作,如备份系统数据、清理缓存,系统工作一般都定义在
/etc/crontab文件中
个人工作:某个用户定期要做的工作,如清理3天前的文件
  cron用户限制
我们可以对不同用户设置限制,比如允许user1使用cron服务,而user2不允
许使用cron服务;可以通过编辑如下两个文件实现这个策略:
/etc/cron.deny    被记录在此的用户不能使用cron任务

/etc/cron.allow   被记录在此的用户可以使用cron任务

注意:如果两个文件都不存在,则默认所有用户均可以使用cron服务
  其它:
/var/spool/cron/   该目录下存放所有用户的cron服务
/var/log/cron   
记录cron运行的日志信息。以上就是Linux定时执行工具cron的具体使用及简单介绍。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-189431-1-1.html 上篇帖子: 在Linux下怎么看网络流量?方法太多了 下篇帖子: 《Unix & Linux 大学教程》
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表