设为首页收藏本站

17nyy 国内著名免费干货分享社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
楼主: admin

CentOS 7 cron 定时任务使用方法

[复制链接]
  • TA的每日心情
    难过
    2020-10-4 20:24
  • 主题

    帖子

    0

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    0
    发表于 2019-12-14 20:21:11 | 显示全部楼层 |阅读模式
    http://www.17nyy.com/index.php/archives/19/

    [root@localhost ~]# yum install crontab
    已加载插件:fastestmirror
    Loading mirror speeds from cached hostfile
    * base: mirrors.aliyun.com
    * epel: ftp.iij.ad.jp
    * extras: mirrors.aliyun.com
    * remi-safe: mirrors.tuna.tsinghua.edu.cn
    * updates: mirror.bit.edu.cn
    没有可用软件包 crontab。
    错误:无须任何处理
    会发现找不到可用的服务包,然后在stackoverflow.com找到了答案:

    On CentOS 7 you need to use cronie:

    yum install cronie On CentOS 6 you can install vixie-cron, but the
    real package is cronie:

    yum install vixie-cron and yum install cronie In both cases you get
    the same output:

    .../...
    ================================================================== Package Arch Version Repository Size
    ================================================================== Installing: cronie x86_64 1.4.4-12.el6 base
    73 k Installing for dependencies: cronie-anacron x86_64
    1.4.4-12.el6 base 30 k crontabs noarch 1.10-33.el6 base 10 k exim x86_64 4.72-6.el6 epel 1.2 M

    Transaction Summary
    ================================================================== Install 4 Package(s)

    Note that on 6.x yum install crontabs will also install cronie,
    cronie-anacron, and exim. Be sure to remember the service is crond and
    it will need to be started (and chkconfig enable on)

    然后借此机会记录一下,免得以后忘记了

    cron安装
    就是CentOS 7 使用

    yum install cronie
    而 CentOS 6 需要更多一个

    yum install vixie-cron cronie
    或者
    yum install crontabs
    crontab基本使用
    查看crontab服务状态
    [root@localhost ~]# service crond status
    [root@localhost ~]# systemctl status crond.service
    开启crontab
    [root@localhost ~]# service crond start
    [root@localhost ~]# systemctl start crond.service
    关闭crontab
    [root@localhost ~]# service crond stop
    [root@localhost ~]# systemctl stop crond.service
    重启crontab
    [root@localhost ~]# service crond restart
    [root@localhost ~]# systemctl restart crond.service
    开机运行
    [root@localhost ~]# systemctl enable crond.service
    crontab基本格式
    # *  *  *  *  *  command
    # |  |  |  |  |
    # |  |  |  |  +---- week    星期(0 - 7) (星期天=0 or 7)
    # |  |  |  +------- month   月份(1 - 12)
    # |  |  +---------- day     日期(1 - 31)
    # |  +------------- hour    小时(0 - 23)
    # +---------------- minute  分钟(0 - 59) 每分钟用*或者 */1表示
    crontab命令编辑
    crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
    crontab -l //查看当前用户cron服务的详细内容   
    crontab -r //删除当前用户的cron服务  
    crontab -e //编辑当前用户的cron服务
    编辑当前用户
    crontab -e
    0 */1 * * * command
    查看某个用户
    crontab -l -u root
    删除某个用户
    crontab -r -u root
    crontab常用示例

    30 21 *  *  *  systemctl restart httpd.service
    表示每晚21:30重启apache。

    45 4 1,10,22  *  * systemctl restart httpd.service
    表示每月1、10、22日的4 : 45重启apache。

    10 1 * * 6,0 systemctl restart httpd.service
    表示每周六、周日的1 : 10重启apache。

    0,30 18-23 * * * systemctl restart httpd.service
    表示在每天18 : 00至23 : 00每隔30分钟重启apache。

    0 23 * * 6 systemctl restart httpd.service
    表示星期六晚上11点重启apache。

    * */1 * * * systemctl restart httpd.service
    每一小时重启apache

    * 23-7/1 * * * systemctl restart httpd.service
    晚上11点到早上7点之间,每隔一小时重启apache

    0 11 4 * mon-wed systemctl restart httpd.service
    每月的4号与每周一到周三的11点重启apache

    0 4 1 jan * systemctl restart httpd.service
    表示一月一号的4点重启apache
    cron信息记录在哪里
    每次编辑完某个用户的cron信息后, cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的, 只可以用crontab -e 来编辑。
    cron启动后每过一分钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。
    那如何要控制到秒级别呢??
    [root@localhost cron]# clear
    [root@localhost cron]# pwd
    /var/spool/cron
    [root@localhost cron]# ll
    总用量 0
    [root@localhost cron]# crontab -e
    no crontab for root - using an empty one
    * 2 * * * sdfsadfsd
    "/tmp/crontab.JgDDT9" 1L, 20C written
    crontab: installing new crontab
    [root@localhost cron]# ll
    总用量 4
    -rw------- 1 root root 20 12月 13 07:39 root
    [root@localhost cron]#
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|一起赢 ( 蜀ICP备19039281号-1 )

    GMT+8, 2020-12-2 21:11 , Processed in 0.716680 second(s), 25 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

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