OpenWrt任务定时cron

您所在的位置:网站首页 cron日志删除 OpenWrt任务定时cron

OpenWrt任务定时cron

2024-07-17 06:32| 来源: 网络整理| 查看: 265

Cron软件 及其 crontab命令使用

Cron 软件允许你指定时间来运行你的任务(程序,或者脚本)。 OpenWrt默认使用busybox工具箱软件自带的cron系统功能。

添加和编辑cron定时任务

crontab -e: 这个命令会自动调用“vi”文本编辑器,来打开“/etc/crontabs/root”文件(因为OpenWrt默认的登录用户名是root,某个用户的定时任务配置文件,就放在以它的用户名命名的文件)。

查看当前已经配置的定时任务

crontab -l

删除当前已经配置的定时任务

crontab -r

设置定时任务 * * * * * 需要执行的命令 - - - - - | | | | | | | | | ----- 一星期中的第几天 (0 - 6) (其中0表示星期日) | | | ------- 月份 (1 - 12) | | --------- 一个月中的第几天 (1 - 31) | ----------- 一天中的第几小时 (0 - 23) ------------- 一小时中的第几分钟 (0 - 59)

星号(*):代表所有可能的值,如month字段为星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。 例如:

分钟0-59小时0-23月内第几天1-31月份1-12每周第几天0-6(0表示周日)效果*****每分钟执行一次*/5****每五分钟执行一次12*/3***每过3个小时后的第12分钟执行一次5711151,6,12*在1、6、12月中的15号的11点57分各执行一次256**1-5工作日期间(周1到周5),每天早上6点25分执行一次004,12,26**每月的第4、12、26日,晚上12点执行一次 日志

logread -e cron 读取cron软件执行的记录,不是所有信息都会被记录到日志里的,在/etc/config/system修改 cronloglevel的值修改,信息等级。默认为5,0将打印所有调试消息,8将记录命令执行,9或更高版本将仅记录错误消息。

定时重启

用来对付一些系统运行时出现的难题(比如内存泄露、性能下降、……)的法宝就是每晚定期重启。 有可能会出现反复重启问题: 一种解决cron定时重启任务的怪圈的办法是在重启前,推迟一会儿重启,同时主动用touch命令去修改/etc下的任意文件。

# 每天上午4:30执行重启 # 注意: 为了防止循环重启的怪圈,需要推迟70秒钟执行重启 # 在/etc目录下touch修改一个文件的时间属性,并且设置 # 为上午4:31然后再执行cron的重启任务. 30 4 * * * sleep 70 && touch /etc/banner && reboot

注意:如果出现脚本或者命令未执行,情况可能是环境变量问题。

在crontab文件中定义多个调度任务时,需要特别注意的一个问题就是环境变量的设置,因为我们手动执行某个脚本时,是在当前shell环境下进行的,程序能找到环境变量;而系统自动执行任务调度时,除了默认的环境,是不会加载任何其他环境变量的。因此就需要在crontab文件中指定任务运行所需的所有环境变量。  不要假定cron知道所需要的特殊环境,它其实并不知道。所以用户要保证在shell脚本中提供所有必要的路径和环境变量,除了一些自动设置的全局变量。以下三点需要注意:

1. 脚本中涉及文件路径时写绝对路径;

2. 脚本执行要用到环境变量时,通过source命令显式引入,例如:

  #!/bin/sh   source /etc/profile

3. 当手动执行脚本没问题,但是crontab不执行时,可以尝试在crontab中直接引入环境变量解决问题,例如: * * * * * . /etc/profile; /xx/xx/test.sh 好了,这个问题就这样解决了,反正是加上环境变量没错的。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3