• 每天一个Linux命令—— crontab


    一、简介

     1、 Linux中有许多周期性执行的任务,这些任务由cron守护进程完成,因此cron这个系统服务是默认启动的。

     2、Linux中调度任务分为两类:系统任务调度和用户任务调度,系统任务调度即系统周期性所要执行的工作。/etc/crontab文件是系统任务调度的配置文件。

     3、用户任务调度就是用户要周期性执行的工作,可用crontab命令定制自己的计划任务,用户定义的计划任务都保存在/var/spool/cron目录中,文件名与用户名一致

     4、用户任务调度使用者权限:

      1)、/etc/cron.deny , 文件所列用户不允许使用crontab命令

      2)、/etc/cron.allow , 文件所列用户允许使用crontab命令

      3)、/var/spool/cron/ , 所有用户crontab文件存放的目录,文件名同用户名

    二、crontab  定时任务命令详解

    cat /etc/crontab

    SHELL=/bin/bash  #SHELL变量指定系统使用哪种shell,这里使用bash

    PATH=/sbin:/bin:/usr/sbin:/usr/bin  #PATH变量指定系统执行命令的路径

    MAILTO=root  #MAILTO变量指定任务执行信息发送给谁

    HOME=/  #HOME变量指定执行命令或脚本时使用的主目录

    # For details see man 4 crontabs

    # Example of job definition:

    # .---------------- minute (0 - 59)

    # |  .------------- hour (0 - 23)

    # |  |  .---------- day of month (1 - 31)

    # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

    # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

    # |  |  |  |  |

    # *  *  *  *  * user-name command to be executed

    1、前5个字段为时间设置段,第6个字段是所需执行的命令段

    minute hour day month week command

    分钟  小时  日期  月份    星期几    要执行的命令或脚本

    每个字段可使用的特殊字符代表意义:

    *  表示所有可能的值,如day为*,则表示在满足其他字段制约的条件后每天都执行该命令或脚本;

    ,  可用逗号隔开的值指定一个列表范围

    -  可以用整数之间的中杠表示整数范围

    /  用来指定时间的间隔,如"0-23/2"表示在0点~23点,每两小时执行一次,如hour字段"*/3"表示每3小时执行一次

    2、crond服务

    安装crond命令:yum install crontabs

    服务操作命令:

    /sbin/service crond start //启动服务
    /sbin/service crond stop //关闭服务
    /sbin/service crond restart //重启服务
    /sbin/service crond reload //重新载入配置
    /sbin/service crond status //启动服务

    查看开机启动服务:ntsysv

    加入开机启动:chkconfig -level 35 crond on

    3、crontab命令详解

    crontab命令可以在指定时间执行指定的命令或者shell脚本。

    crontab --help
    usage: crontab [-u user] file
     crontab [-u user] [ -e | -l | -r ]
      (default operation is replace, per 1003.2)
     -e (edit user's crontab)
     -l (list user's crontab)
     -r (delete user's crontab)
     -i (prompt before deleting user's crontab)
     -s (selinux context)

    -u user  :  设定某个用户的crontab服务,如"-u root" 表示设定root用户的crontab服务

    -e  :  编辑某个用户的crontab文件,不使用-u指定则表示编辑当前用户的crontab文件,下同

    -l  :  显示某个用户的crontab文件内容

    -r   :  从/var/spool/cron/目录中删除某个用户的crontab文件

    -i  :  删除某用户的crontabz文件前提示用户

    -s  :  selinux内容

    4、举例:

    每周一,三,五的下午3:00系统进入维护状态,重新启动系统。

     0 15 * * 1,3,5 shutdown -r +5

    每小时的1分执行用户目录下的bin/account这个指令:

    1 * * * * bin/account

    每天早晨三点二十分执行用户目录下如下所示的两个指令(每个指令以;分隔):

    20 3 * * * (/bin/rm -f expire.ls logins.bad;bin/expire$#@62;expire.1st)

    每年的一月和四月,4号到9号的3点12分和3点55分执行/bin/rm -f expire.1st这个指令,并把结果添加在mm.txt这个文件之后(mm.txt文件位于用户自己的目录位置)。

    12,55 3 5-9 1,4 * /bin/rm -f expire.1st$#@62;$#@62;mm.txt

  • 相关阅读:
    对 Excel 工作簿中的数字签名和代码签名的说明
    单例模式
    面向对象
    Des对称加密
    Java获取电脑硬件信息
    鼠标双击事件不可描述的问题
    RSA不对称加密
    JTable表格案例
    控件刷新的奥秘
    反编译插件安装
  • 原文地址:https://www.cnblogs.com/MrFee/p/6774230.html
Copyright © 2020-2023  润新知