Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
zh:docs:guide-user:base-system:cron [2019/11/03 13:27] – [Extras] longgenxingzh:docs:guide-user:base-system:cron [2019/11/04 01:03] – [定期重启] longgenxing
Line 1: Line 1:
-FIXME **This page is not fully translated, yet. Please help completing the translation.**\\ //(remove this paragraph once the translation is finished)// 
- 
 ====== Cron and crontab ====== ====== Cron and crontab ======
 ====== Cron软件 及其 crontab命令使用 ====== ====== Cron软件 及其 crontab命令使用 ======
Line 110: Line 108:
 ===== 其他 ===== ===== 其他 =====
 ==== Periodic reboot ==== ==== Periodic reboot ====
 +==== 定期重启 ====
 A simple solution for some hard-to-solve problems (memory leak, performance degradation, ...) is to reboot the router periodically, for instance every night. A simple solution for some hard-to-solve problems (memory leak, performance degradation, ...) is to reboot the router periodically, for instance every night.
 +
 +**中文翻译**:用来对付一些系统运行时出现的难题(比如内存泄露、性能下降、......)的法宝就是每晚定期重启。
  
 However, this is not as simple as it seems, because the router usually does not have a real-time clock. However, this is not as simple as it seems, because the router usually does not have a real-time clock.
 This could lead to a never-ending loop of reboots. This could lead to a never-ending loop of reboots.
 +
 +**中文翻译**:即便是这样重启,也不是那么简单就能做到的,因为这样的路由器通常没有实时时钟。弄不好就成为下面这个怪圈:
  
 In the boot process the clock is initially set by ''sysfixtime'' to the most recent timestamp of any file found in /etc. In the boot process the clock is initially set by ''sysfixtime'' to the most recent timestamp of any file found in /etc.
Line 120: Line 123:
 Then cron starts and notices a few seconds later that the required boot moment has again arrived and reboots again... Then cron starts and notices a few seconds later that the required boot moment has again arrived and reboots again...
 (At the end of the boot process ntpd starts, and it may also take a while before ntpd gets and sets the correct time, so cron may start the reboot in between.) (At the end of the boot process ntpd starts, and it may also take a while before ntpd gets and sets the correct time, so cron may start the reboot in between.)
 +
 +**中文翻译**:在启动的时候,当前系统的时间使用“sysfixtime”程序来设置;设定依据是在/etc目录下,使用最近被修改的文件的时间;
 +它可能是一个状态文件,或者配置文件,它可能在cron定时任务需要重启系统前30秒刚做了修改。
 +所以,如果在重启系统的过程中,系统时间被设置为这个文件的时间属性的前若干秒钟的话。
 +当cron软件开始计时,cron马上又会发现,设置的重启的时间又到了,然后又开始重启了……
 +(还有的可能就是:启动流程的最后ntpd的时间服务启动了,这个软件得需要一阵子才能获取并且设置正确的时间,所以这段时间内,cron定时重启任务又被触发重启了。)
  
 One solution for cron is to use a delay and touch a file in ''/etc'' before reboot. One solution for cron is to use a delay and touch a file in ''/etc'' before reboot.
 +
 +**中文翻译**:一种解决cron定时重启任务的怪圈的办法是在重启前,推迟一会儿重启,同时主动用touch命令去修改/etc下的任意文件。
  
 <code bash> <code bash>
Line 128: Line 139:
 # and touch a file in /etc so clock will be set # and touch a file in /etc so clock will be set
 # properly to 4:31 on reboot before cron starts. # properly to 4:31 on reboot before cron starts.
 +30 4 * * * sleep 70 && touch /etc/banner && reboot
 +</code>
 +
 +**中文翻译**:举例crontab的配置如下:
 +<code bash>
 +# 每天上午4:30执行重启
 +# 注意: 为了防止循环重启的怪圈,需要推迟70秒钟执行重启
 +# 在/etc目录下touch修改一个文件的时间属性,并且设置
 +# 为上午4:31然后再执行cron的重启任务.
 30 4 * * * sleep 70 && touch /etc/banner && reboot 30 4 * * * sleep 70 && touch /etc/banner && reboot
 </code> </code>
Line 134: Line 154:
 There is usually no programmable circuitry to actually power off the unit. There is usually no programmable circuitry to actually power off the unit.
 ''reboot'' does work, in case you should want to reboot the router periodically. ''reboot'' does work, in case you should want to reboot the router periodically.
 +
 +**中文翻译**::!: 在一些平台上“shutdown”命令是没有的;它仅仅是停止CPU的运行,而不会重启设备。
 +这通常是因为这样的设备没有去执行断电的电路。
  
 However, a more flexible approach is to use use the [[packages:pkgdata:watchcat|watchcat]] package. However, a more flexible approach is to use use the [[packages:pkgdata:watchcat|watchcat]] package.
 +
 +**中文翻译**:即便这样,也还是可以使用一种更为灵活的方法,通过使用[[packages:pkgdata:watchcat|watchcat]]软件包来使用 。
 +安装命令如下:
  
 <code bash> <code bash>
Line 143: Line 169:
  
 ==== Alarm clock ==== ==== Alarm clock ====
 +==== 闹钟功能 ====
 If you have [[wp>Daylight saving time]] you could write yourself a nice alarm clock ;-) If you have [[wp>Daylight saving time]] you could write yourself a nice alarm clock ;-)
 When DST starts in central Europe, clocks advance from 02:00 CET to 03:00 CEST on last Sunday in March. When DST starts in central Europe, clocks advance from 02:00 CET to 03:00 CEST on last Sunday in March.
Line 148: Line 175:
 Later won't work, you'll be late ;-) Later won't work, you'll be late ;-)
 When DST ends in central Europe, clocks retreat from 03:00 CEST to 02:00 CET on last Sunday in October. When DST ends in central Europe, clocks retreat from 03:00 CEST to 02:00 CET on last Sunday in October.
 +
 +**中文翻译**:如果你所在的地区使用“夏令时”[[wp>Daylight saving time]],你可以自己动手写一个合适的闹钟程序;)
 +假设你在欧洲中部使用“夏令时”,那么时钟在每年3月份,就要提前从中欧时间的2点,变成了3点的中欧夏令时时间。
 +在此之前的6天,你可以把自己的网络唤醒闹钟每天提前10分钟。
 +如果没生效的话,估计你上班就要迟到了;)
  
 <code bash> <code bash>
Line 155: Line 187:
 </code> </code>
  
 +**中文翻译**:
 +
 +<code bash>
 +#分 时 日 月 星 执行命令
 +59 05 * * 1 /usr/bin/wol -h 192.168.1.255 xx:xx:xx:xx:xx:xx # Mo
 +#crontab配置文件必须包含一行空白(跟/etc/fstab配置文件一样,该文件用于开机挂在分区)
 +</code>
 +
 +
 +==== 翻译信息 ====
 +LongGenxing 20191103 第一次翻译
  • Last modified: 2020/05/16 16:23
  • by huangzulin