为了账号安全,请及时绑定邮箱和手机立即绑定

干货 | crontab课堂笔记

标签:
Linux

Crontab简介
被周期行执行的任务我们称为Cron Job
周期性执行的任务列表我们称为Cron Table
相关工具
Putty 远程管理linux的软件
安装并检查Crontab服务
检查cron服务
-检查Crontab工具是否安装:crontab –l
-检查crond服务是否启动:service crond status
//service * status判断服务是否在启动当中
//大部分后边加d表示服务
安装cron
-yum install vixie-cron
-yum install crontabs
一般linux默认安装
一个简单的例子
每分钟都打印当前时间到一个日志文件中
-/1 date >> /tmp/log.txt
Crontab –e
在文件末尾加上
/1 date >> /tmp/log.txt保存退出
Crontab –l 查看任务
Crontab的基本组成**
系统服务 配置工具
配置文件  crond  crontab
文件方式设置 每分钟都会从配置 用于调整定时任务
定时任务 文件刷新定时任务

Crontab的配置文件格式

          • COMMAND
            分钟0~59
            小时0~23
            日期1~31
            月份1~12
            星期0-7(0或7表示星期天)
             每晚的21:30重启apache
            30 21 service httpd restart
             每月的1、10、22日的4:45重启apache
            45 4 1,10,22
            service httpd restart
             每月的1到10 日的4:45重启apache
            45 4 1-10
            service httpd restart
             每隔两分钟重启Apache服务
            /2 service httpd restart
            1-59/2 service httpd restart
             晚上11点到早上7点之间隔一个小时重启apache
            0 23-7/2 service httpd restart
             每天18:00之23:00每隔30分钟重启apache
            0,30 18-23
            service httpd restart
            0-59/30 18-23 service httpd restart
             小结
            表示任何时候都匹配
            -可以用“A,B,C”表示A或者B或者C时执行命令
            -可以用“A-B”表示A到B之间时执行命令
            -可以用“*/A”表示每A分钟(小时等)执行命令
            Crontab工具的使用
             查看某用户的计划任务列表crontab -l
             修改某用的计划任务crontab -e
             查看生成的最终计划任务文件
  • /var/spool/cron
    Crontab配置文件
     全局(系统)配置文件
  • /etc/crontab
  • 注意格式
    Vim /etc/crontab 也能增加计划任务
    增加一条计划任务
    /1 * root echo “JOB IN THE /etc/crontab FILE ***
    一般不直接crontab -e 一般改文件在 crontab 将文件导入进来
    Vim crontst
    /1 * user echo “file in /etc/cron.d/crontst****
    Crontab –l –u user
    会发现刚才的不会出现,crontab不能编辑系统级的配置文件,cron.d的文件是系统文件的一个补充,在里边创建一个计划任务时也可以生效,作为系统任务,crontab –l或者-e时看不到,在日志里边可以看到
    Cat /var/spool/cron/root 和crontab –l是一样的
    做一个实验 修改/var/spool/cron/root 完全映射到了crontab –l里边,和crontab –e效果是一样的
     Root配置文件
    -只有root用户才会把这些内容载入到计划任务表中
    Crontab的日志
     /var/log/cron文件保存着cron的任务执行记录
    Ls –l cron

    可以看到每一天都有一个cron日志的变化,今天的叫cron,其他的是cron+时间
    Cd /var/spool/mail
    Tail -100 root会发现每一个都会以邮件的方式发送给这个用户,能扣看到一些相关的日志信息
    一般来说可能/var/log/cron就够了
    Crontab的常见错误*
     环境变量
    Cd ~
    有一个.bash_profile设置环境变量,source .bash_profile
    Echo $设置的环境变量可以正常显示
    但是在
    /1 echo $环境变量 >> /tmp/appdir.log
    并不会正常写入,只有空行,环境变量并没有导入到脚本中
     命令行双引号中使用%时,未加反斜线\
    . 59 1 1-7 4 test date +\%w -eq 0 && /root/a.sh
     第三和第五个域之间执行的是“或”操作
    -四月的第一个星期日早晨1点59分运行a.sh
    . 59 1 1-7 4 0 /root/a.sh//或的关系1-7和星期日都会执行
    . 59 1 1-7 4
    test date +\%w -eq 0 && /root/a.sh
    Test测试后边的判断成不成功 1 不成功 0成功
    如果用“=”测试前后要加空格
    && 与操作,前边成功时执行 或操作前边不成功时执行
     分钟设置的误用
  • 两小时运行一次
    0,2,4,6,8 date 错误的,每分钟都会执行
    正确应该将分钟设置成0
    0
    /2 date
    综合案例解析
     Crontab中最小只能设置到每分钟执行一个命令,如果想每半分钟执行某个命令怎么做到?
    -通过shell脚本的sleep命令配合crontab即可完成这一功能
    -date && sleep0.5s && date
    /1 date >>wenjan
    /1 * sleep 30s;date >>wenjain
点击查看更多内容
5人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消