linux定时/计划任务

计划任务,就是规划好的会在预计的时间去执行的任务。在linux系统中使用crond服务来完成这项工作,我们可以把cron设置为开机时自动启动。cron启动后,它会读取它的所有配置文件(全局性配置文件/etc/crontab,以及每个用户的计划任务配置文件),然后cron会根据命令和执行时间来按时来调用度工作任务。

0、crond计划任务相关的命令、配置

名称 类型 说明
crontab 命令 crontab命令,可以创建、编辑、删除某个用户的定时任务
/etc/crontab 文件 系统计划任务的全局配置文件
/var/spool/cron/ 目录 存放以用户名命名的用户计划任务配置文件,通过crontab命令编辑
/etc/cron.deny 文件 设置哪些用户不能使用crontab功能
/etc/cron.hourly/ 目录 存放每个小时执行一次的脚本
/etc/cron.daily/ 目录 存放每天执行一次的脚本
/etc/cron.monthly/ 目录 存放每月执行一次的脚本
/etc/cron.weekly/ 目录 存放每周执行一次的脚本
/etc/cron.d/ 目录 系统自动定期需要执行的任务文件

注意:
1、通过crontab命令添加某个用户的计划任务后,会在/var/spool/cron目录下生成以该用户名为名称的文件,crontab命令编辑的就是该文件。
2、crond服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用 crond服务做一些事情。用crontab命令配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。

1、查看系统是否安装了crondtab

rpm -qa|grep crontab

2、查看是否启动了crond服务

ps -ef|grep crondservice crond status

3、如何启停crond服务

  • 启动
    /etc/init.d/crond startservice crond start
  • 停止
    /etc/init.d/crond stopservice crond stop
  • 重启
    /etc/init.d/crond restart
  • 重新载入配置文件(一般设置计划任务后执行,可以立即生效,不用等系统去读配置文件)
    /etc/init.d/crond reload

4、设置crond服务开机自启动

chkconfig crond on

5、crontab命令使用说明

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)  删除用户的计划任务(指删除该用户的所有计划任务,强烈建议使用-ir)
        -i      (prompt before deleting user's crontab) 删除用户的计划任务前进行提示
        -s      (selinux context)

示例1:编辑当前登录用户的计划任务
crontab -e
示例2:列出test用户的计划任务
crontab -l test -e

6、计划任务文件的格式

*    *    *    *    *    command
分    时     天    月    周    要执行的命令
符号 说明
表示分钟,可以是0~59之间的任意整数
表示小时,取值范围[0~23]
取值范围[1~31]
取值范围[1~12]
取值范围[0~7],0或7代表星期日
command 要执行的命令,可以是系统命令,也可以是自己编写的脚本
* 表示每的意思,例如分的位置为*,表示每分钟都要执行,表示0~59所有值
分隔符,当对应域取多个值时使用,例如分钟域的“1,3”表示每小时的1分和3分钟执行计划任务
- 表示时间范围,例如2-6表示"2,3,4,5,6"
/ 可以用来指定时间的间隔,例如“*/5”用在分钟域时表示每5分钟执行依次

示例1:每天0点0分时,执行test脚本
0 0 * * * test.sh
示例2:每3小时执行一下test脚本
* */3 * * * test.sh
示例3:周一到周五的0点0分执行test脚本
0 0 * * 1-5 test.sh

猜你喜欢

转载自www.cnblogs.com/21summer/p/11010935.html