您的位置:首页 > 运维架构

openwrt cron添加定时启动任务

2016-06-14 14:06 381 查看
1. 修改启动脚本/etc/init.d/cron

/etc/rc.d/S50cron为/etc/init.d/cron的链接

#!/bin/sh /etc/rc.common

# Copyright (C) 2006-2011 OpenWrt.org

START=50

USE_PROCD=1

PROG=/usr/sbin/crond

validate_cron_section() {

    uci_validate_section system system "${1}" \

        'cronloglevel:uinteger'

}

start_service () {

    [ -z "$(ls /etc/crontabs/)" ] && return 1

    loglevel=$(uci_get "system.@system[0].cronloglevel")

    [ -z "${loglevel}" ] || {

        /sbin/validate_data uinteger "${loglevel}"

        [ "$?" -eq 0 ] || {

            echo "validation failed"

            return 1

        }

    }

    mkdir -p /var/spool/cron

    ln -s /etc/crontabs /var/spool/cron/ 2>/dev/null

    procd_open_instance

    procd_set_param command "$PROG" -f -c /etc/crontabs -l ${loglevel:-5}

    procd_close_instance

}

service_triggers()

{

    procd_add_validation validate_cron_section

}

2. 添加默认启动程序/etc/crontabs/root

0 9 * * * killall zllgateway

简单记录一下crontab的用法。

crontab -l

列出当前的默认计划任务列表

crontab -r

删除当前的默认计划任务列表

crontab -e

启用vi修改当前的默认计划任务列表

crontab后面还可以跟FILE参数,指定计划任务列表

然后是计划任务列表的格式:

[minute] [hour] [day of month] [month] [day of week] [program to be run]

其中各个参数的取值范围是:

minute(0-59)

hour(0-23)

day of month(1-31)

month(1-12)

day of week(0-7,0 or 7 is Sun)

每个参数里的取值可以有4种间隔符:

* 表示任意

- 表示范围

, 表示枚举多个值

/ 表示每隔

例如:

周一到周五每天晚上23:30执行ruijieclient -k

30 23 * * 1-5 /bin/ruijieclient -k

每天每隔10分钟执行date

*/10 * * * * date

另外每次执行完成任务后系统会发送信息给你,如果你不想收,可以在每条执行语句后面加:

>> /dev/null 2>&1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: