Linux利用crond添加定时任务

Linux利用crond添加定时任务

crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。

1 查看crond服务状态:

[root@localhost ~]# systemctl status crond.service
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2022-03-23 10:41:37 CST; 59min ago
 Main PID: 21686 (crond)
    Tasks: 1
   Memory: 1.0M
   CGroup: /system.slice/crond.service
           └─21686 /usr/sbin/crond -n

3月 23 11:01:02 localhost.localdomain CROND[24590]: (root) CMDOUT (/etc/cron.hourly/sm3-whitelist:)
3月 23 11:01:02 localhost.localdomain CROND[24590]: (root) CMDOUT ()
3月 23 11:01:02 localhost.localdomain CROND[24590]: (root) CMDOUT (/etc/cron.hourly/sm3-whitelist: 第 3 行:cd: /var/backups: 没有那个文件或目录)
3月 23 11:32:33 localhost.localdomain systemd[1]: Reloading Command Scheduler.
3月 23 11:32:33 localhost.localdomain systemd[1]: Reloaded Command Scheduler.
3月 23 11:33:01 localhost.localdomain crond[21686]: (CRON) INFO (running with inotify support)
3月 23 11:35:01 localhost.localdomain crond[21686]: (root) RELOAD (/var/spool/cron/root)
3月 23 11:36:08 localhost.localdomain systemd[1]: Reloading Command Scheduler.
3月 23 11:36:08 localhost.localdomain systemd[1]: Reloaded Command Scheduler.
3月 23 11:37:01 localhost.localdomain crond[21686]: (CRON) INFO (running with inotify support)

可以看到crond服务是自启动(enabled),且正在运行的(active)

2 配置

2.1 全局用户配置

配置文件:/etc/crontab,直接vi等编辑就可以。

2.2 个人用户配置(临时配置)

  • 加任务:
        crontab -e
        0 */1 * * * command
        0 */2 * * * command
  • 查询任务是否加了:
        crontab -l
        0 */1 * * * command
        0 */2 * * * command

2.3 配置格式

*   *  *  *  *  command
分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天)  命令
第1列表示分钟1~59 每分钟用*或者 */1表示,每5分钟(*/5)
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

相关参数详细说明:
星号(*)可以用来代表所有有效的值。譬如,月份值中的星号意味着在满足其它制约条件后每月都执行该命令。
整数间的短线(-)指定一个整数范围。譬如,1-4 意味着整数 1、2、3、4。
用逗号(,)隔开的一系列值指定一个列表。譬如,3, 4, 6, 8 标明这四个指定的整数。
正斜线(/)可以用来指定间隔频率。在范围后加上 / 意味着在范围内可以跳过 integer。譬如,0-59/2 可以用来在分钟字段定义每两分钟。间隔频率值还可以和星号一起使用。例如,*/3 的值可以用在月份字段中表示每三个月运行一次任务。
开头为井号(#)的行是注释,不会被处理。

2.3.1 配置实例
  • 每隔1个小时执行一次 ls
    0 */1 * * * ls
  • 每隔2个小时执行一次 ls
    0 */2 * * * ls
  • 每隔3个小时执行一次 ls
    0 */3 * * * ls
  • 每隔4个小时执行一次 ls
    0 */4 * * * ls
  • 每隔10天执行一次 ls
    0 0 */10 * * ls
  • 每天1点执行 ls
    0 1 * * * ls

3 命令

3.1 crontab命令

crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数  
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除每个用户的cron服务
crontab -e //编辑某个用户的cron服务

例1:root查看自己的cron设置:crontab -u root -l
例2:root删除fred的cron设置:crontab -u fred -r

3.2 任务调度执行结果的转向:

例1:每天5:30执行ls命令,并把结果输出到/jp/test文件中

   30 5 * * * ls >/jp/test 2>&1

注:2>&1 表示执行结果及错误信息。

3.3 crond服务控制命令

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

3.4 查看crond 执行日志

tail -200f /var/log/cron
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值