惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
MyScale Blog
MyScale Blog
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell
GbyAI
GbyAI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
N
Netflix TechBlog - Medium
V
V2EX
MongoDB | Blog
MongoDB | Blog
Microsoft Security Blog
Microsoft Security Blog
博客园 - 三生石上(FineUI控件)
Stack Overflow Blog
Stack Overflow Blog
U
Unit 42
B
Blog
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
H
Help Net Security
D
DataBreaches.Net
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
T
The Blog of Author Tim Ferriss
C
Check Point Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

方永、南天紫雲

linux透明代理 技术的边界 停机问题通俗说明 Rust与oracle、redis集群的纠结 学习能力的增长 微信调试的原语 mac外接移动硬盘安装ArchLinux linux的死机问题 linux下全键盘操作 漂亮又好用的bspwm linux本机透明代理 ssh、mosh、autossh linux不能待机又一例 从WordPress切换到Hugo 折腾电脑开机 linux系统QQ新思路 Arch Linux的字体渲染 svn管理之submin OpenWrt自动fucking墙記錄 二维码(qrcode)名片的一些事儿 用lua nginx module搭建一个二维码(qr code)生成器 CentOS 7 安裝註記 php程序連接MySQL时只能127.0.0.1而localhost無法連接的問題 ThinkPad之FAN_ERROR、hi fi聲卡 jetty多端口部署 OpenWrt簡單暴力限網 linux中cron之PATH变量 OpenWrt的WDS無線橋接模式 再敘OpenWrt下的rtl8187無線中繼 sed之模擬tail
OpenWrt中crontab -e的使用
zola · 2012-08-26 · via 方永、南天紫雲

OpenWrt中使用crontab -e 添加计划任务在Openwrt重启之后添加的项会被删除。

这个很让人纠结。于是grep找到了busybox包中的/etc/init.d/cron脚本,在通用start函数中赫然有一行“rm -rf /etc/crontabs/root”,之后下面两行正是加载/etc/config/cron中的配置,将这三行删除保存,重启之后/etc/crontabs/root中内容果然不再莫名地消失了。

其实,OpenwWrt提供的/etc/config的机制很好,一是便于手动维护,二是有利于自动化处理。

/etc/init.d/cron脚本的那三行,rm一行是为了不至于添加重复的cron项,但这样也导致了通过其它方式添加的cron项失效,而删除了那三行,/etc/config/cron配置文件将不再起作用。前面说了,配置文件有好的一面,但是crontab -e显然比配置文件清晰明了,权衡之下,还是舍弃了配置文件。

附:更改后的/etc/init.d/cron 文件。

这个问题只在某些特定的OpenWrt版本中存在。

以下contab的使用,来自http://www.centos.bz/2011/03/auto-run-task-crontab/

crontab用法

crontab的格式如下面:

f1 f2 f3 f4 f5 program
分 时 日 月 周 执行的命令

其中f1 表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行程式的路径。

  • 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程式,其余类推
  • 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
  • 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推
  • 当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其余类推

管理员登录SSH,输入命令crontab -e编辑crontab文件,根据上面的格式输入并保存。

crontab例子

每月每天每小时的第 0 分钟执行一次 /bin/ls :

0 * * * * /bin/ls

在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup :

\*/20 6-12 * 12 * /usr/bin/backup

周一到周五每天下午 5:00 寄一封信给 [email protected] :

0 17 * * 1-5 mail -s "hi" [email protected] </tmp/maildata

每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分….执行 echo “haha”

20 0-23/2 * * * echo "haha"

晚上11点到早上8点之间每两个小时,早上8点

0 23-7/2,8 * * * date