Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18029
  • 博文数量: 3
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 40
  • 用 户 组: 普通用户
  • 注册时间: 2017-03-06 00:01
文章分类

全部博文(3)

文章存档

2017年(3)

我的朋友

分类: 系统运维

2017-10-29 22:01:09

crond是linux下帮助用户或系统定时执行任务的守护进程,它会每分钟在特定的文件里检查是否有要执行的任务,有则自动执行。
crond会在一下几个目录或文件检查要执行的任务:
       /var/spool/cron    这个目录包含用户的定时任务配置文件,用户对应的配置文件的名字即为用户名
       /etc/anacrontab    这个文件配置了系统每日、周、月要执行的工作
       /etc/cron.d    这个目录包含一些系统的定时任务配置文件
       /etc/crontab    系统的定时任务配置文件
crond的日志文件位置 /var/log/cron

1. 检查crond是否开机自启动
   在CentOS 6下:
       chkconfig --list | grep 3:on | grep cron
   若无输出信息则执行:
       chkconfig crond on
2. 根据需要手动启动crond
   /etc/init.d/crond start
3. 使用crontab工具编写配置文件
   一般使用crontab -e 编辑当前用户的crontab文件内容,该命令会调用文本编辑器(vi)来编辑生成/var/spool/cron目录下的与用户同名配置文件
   crontab文件语法
   * * * * * cmd
   上述前5个星号对应的五个字段是周期性执行任务的时间粒度,代表的含义(从左到右)分别为分、时、日、月、周,后面为周期性执行的命令。
   五个字段的使用方法:
       星号: 代表任意可能值,即有每分、每时、每日、每月、每周的意思
       逗号:上述五个字段中是用空格隔开的,对于一个字段里的内容,可以用逗号隔开来指定精确的时间点列表
       中杠:在字段中用中杆连接两个数字指定时间范围
         /   :斜杆后加数字,有每隔多少时间的意思
   举例说明:
       1)0 */3 * * * cmd    每隔3小时的执行一次cmd
       2)*/5 *  * * *  cmd    每隔5分钟执行一次cmd
       3)30 3 * * 6  cmd      每周六的3点30分执行一次cmd
       4)0 0 1,20 * * cmd   每月的1号和20号的0点0分执行一次任务
       5)0 0  2-6 * * * cmd    每月的2,3,4,5,6号的0点0分执行一次任务
      6)0 12 2-10/2 * * * cmd    每月的2号到10号间,4,6,8,10号的12点整执行一次cmd
4. 默认情况下 crond会把任务执行时的输出信息作为邮件发送到相应用户,为避免不必要磁盘空间消耗,一般会把命令的输出用重定向到/dev/null,即在cmd后加上"> /dev/null 2>&1",
或者在crontab文件中将环境变量"MALTTO"赋值为空,表示不发送邮件给用户,若不使用上述措施,并且系统没有开启邮件服务(CentOS 6为postfix),
则在/var/spool/postfix/maildrop目录下会不断堆积临时邮件文件,可能会造成文件系统虽有剩余空间,inode却满的情况
5. 以下建议摘取子某培训视频
    1)注意系统环境变量导致的定时任务执行问题,但crond执行定时任务时,是不会加载任何环境变量,需要在crontab文件中添加必要的环境变量
   2)定时任务里的命令尽量用全路径,如果不想使用路径,则需在crontab文件里指定PATH环境变量,参考/etc/crontab
   3)切换到目标目录的上一级打包目标
   4)使用脚本程序替代命令行定时任务
   5)避免不必要的程序及命令输出




    


        
    


阅读(1607) | 评论(0) | 转发(0) |
0

上一篇:Linux文件硬链接和软链接

下一篇:没有了

给主人留下些什么吧!~~