nycu-OpenWrt
  • OpenWRT: WiFi 網路的開放平台
  • OpenWRT 硬體
    • 測試硬體與功能列表
    • 小米路由器3的設定與測試
  • OpenWRT 編譯環境建立
    • OPKG Package Manager
    • 建立編譯環境 (Cross Compiler)
    • 建立編譯環境 (SDK for .ipk 封裝)
    • 遠端登入執行程式
  • OpenWRT 功能測試
    • 設定時區與 NTP 網路對時
    • CRONTAB 排程工作
    • 從 WAN 登入 OpenWRT
    • 防火牆的設置
    • 無線網路 SSID 的設定
    • Bridge-mode and Router-mode
    • 在 OpenWRT 上布建 Container (LXC)
    • 實驗: WiFi 的無線設定 (iw)
    • 實驗: 封包排程與 QoS
  • 實驗: 側聽封包資訊
    • 802.11 封包解析
    • 實驗: 虛擬監聽網卡並取得 RSSI
    • 實驗: 取得 RSSI 並回傳至伺服器
  • 實驗: MQTT 物聯網
    • MQTT 通訊協定
    • MQTT 在 OpenWRT 上的開發
  • 實驗: SDN-based Network
    • pica8 基本設定
    • 在 OpenWRT 上架設 Open vSwitch (OVS)
    • VLAN 在 WiFi AP 硬體上的實現
    • 在 OpenWRT 上架設 VLAN
    • 架設一個訪客用的無線網路
  • 實驗: OpenWRT 周邊存取
    • 實驗: GPIO 的存取
    • 實驗: I2C 的操作
Powered by GitBook
On this page
  1. OpenWRT 功能測試

CRONTAB 排程工作

利用 CRONTAB 來排程 OpenWRT 上執行的工作

Previous設定時區與 NTP 網路對時Next從 WAN 登入 OpenWRT

Last updated 5 years ago

在 Linux 系統中,cron 是一種將工作排程的方式,關於 cron 的敘述,可以參考鳥哥的介紹:

而在 OpenWRT 中也支援 cron 的功能,要啟用 cron 的功能,我們要先編輯 cron 的排程列表,輸入 crontab -e, 就可以開始編輯 cron 的工作排程,其格式如下:

簡單來說,就是定義: 分; 時; 日; 月; 周期 以及要執行的工作,舉例而言,我們可以定義:

*/1 * * * * echo "hello"

這樣就會每一分鐘都顯示一次 "hello" 訊息,我們可以在 logread 中看到:

root@OpenWrt:~# logread
Jun 21 07:17:01 OpenWrt cron.err crond[1211]: USER root pid 1495 cmd echo "hello"

當然,cron 用於 WiFi AP 主要是希望能夠提供管理上的功能,舉例來說,我們可以設定每天半夜定期重開機:

# Reboot at 0:45am every day
# Note: To avoid infinite reboot loop, wait 70 seconds
# and touch a file in /etc so clock will be set
# properly to 0:46 on reboot before cron starts.
45 0 * * * sleep 70 && touch /etc/banner && reboot

設定完 crontab 之後,要記得透過/etc/init.d/cron start開啟 OpenWRT 中 cron 的功能 (預設是關閉),然而,此設定將隨重開機而消失,因此,可以修改開機進程(/etc/rc.local),確保開機時啟動 cron。修改時,在exit 0前加入:

# start the cron service
/etc/init.d/cron enable
/etc/init.d/cron start

這樣一來,就可以透過 logread 看到每天重開機,加上調整時間的成果,如下所示:

Jan  1 08:01:21 OpenWrt daemon.info dnsmasq[1253]: using local addresses only for domain lan
Jun 21 00:48:23 OpenWrt cron.err crond[1212]: time disparity of 25491887 minutes detected

如果需要 OpenWRT 上更多關於 cron 的細節可以參考:

https://wiki.openwrt.org/doc/howto/cron
http://linux.vbird.org/linux_basic/0430cron.php
來自: http://einverne.github.io/post/2017/03/auto-reboot-openwrt.html