SunRay4(新蕾4) 定時自動關機方案, Linux後臺自動任務crontab實踐

目錄:html

  1. 需求和思路分析
  2. 具體實現步驟
  3. 理解Crontab
  4. Crontab具體參數詳細說明

 


 

最近碰到一個想要實現定時自動關機的功能,關機的指令無非就是:linux

  • shutdown -h time
  • 調用openwebif的指令  wget -q -O - "http://127.0.0.1/web/powerstate?newstate=1" >/dev/null
  • halt,reboot

自動調用方式:web

  • shutdown 的定時時間參數
  • crontab 添加定時任務 (Prefer)
  • 打開/etc目錄,在rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d這幾個文件夾內添加開機自動執行的腳本(.sh文件)

SunRay的linux中集成了enigma2的不少東西,單單執行shutdown -h 容易讓SR4的面板不動然後臺其實已經shutdown,這時建議先要 killall -9 enigma2 > dev/null。dom

 

這個時候shutdown就沒法知足需求了,須要使用crontab添加定時任務。編輯器


  • 1. 得出sh文件內容:
#!/bin/sh
killall -9 enigma2 > /dev/null 2
shutdown -h now
  • 2. 建立sh文件。
    • 輸入命令
    • 1 cd /usr/script
      2 vi shutdown.sh
      3 輸入e
      4 <輸入上面那3行代碼>
      5 按esc
      6 輸入 :wq 保存
  • 3. 添加權限 (賦予執行權限)。
    • chmod +x /usr/script/shutdown.sh
  • 4. 添加到定時任務
    • 1 crontab -c /var/spool/cron/crontabs -e
      2 <添加以下內容:>
      3 0 23 * * * /usr/script/shutdown.sh
      4 按esc
      5 輸入 :wq 保存

       

上面的步驟就能夠實現定時執行關機任務(天天夜裏11點關機),固然其餘的定時任務也是同樣的道理。測試

下面分析一下具體的原理,核心命令解釋:spa

 


特定介紹一下crontab的理解(來源:http://blog.csdn.net/suer0101/article/details/8052592).net

crond是一個服務,一個守護進程。crond 是linux用來按期執行程序的命令,crond命令每分鍾會按期檢查是否有要執行的工做,若是有要執行的工做便會自動執行該工做。


crontab 是用來讓使用者在固定時間或固定間隔執行程序之用,換句話說,也就是相似使用者的時程表。


按照網上查找的資料執行時常常會碰到這種錯誤:


crontab: chdir(/var/spool/cron/crontabs): No such file or directory


因此首先建立這樣一個目錄吧!


#mkdir -p /var/spool/cron/crontabs


而後編輯要執行的任務


#crontab -e


0 */1 * * * /sbin/ntpdate 192.168.1.67 >/dev/null 2>&1 每隔一個小時更新下時間,不打印任何信息


最後,執行下


#crond


此時你會發現/var/spool/cron/crontabs下有一個跟用戶名相同的文件,保存着要執行的任務。


ps下會發現cron進程已經啓動!

 

我在SR4中的測試結果是,當-e 添加計劃任務碰到錯誤‘crontab: chdir(/var/spool/cron/crontabs): No such file or directory’code

請使用命令(手工指定一個正確的目錄)htm

crontab -c /var/spool/cron/crontabs -e

在緊接着其中的vi界面內,添加 好比(表明天天的23點0分執行):

0 23 * * * /usr/script/shutdown.sh

 

 


 具體參數說明(來源:http://blog.hexu.org/archives/703.shtml)

相關文章
相關標籤/搜索