顯示文件導覽

執行指令

同一份指令送到選定設備,集中查看進度與輸出,讓例行工作更順手。

適用範圍
RouterOS 6.49.x 與 7.21.x/7.23.x
最後更新

這一頁是批次執行的細節。還沒跑過任何東西的話,先看快速上手

挑對選項#

四種連線方式、五個選項——因為 WinBox 的 8291 有兩種把腳本送過去的做法。 它們能做的事不一樣,不能互相替代。

選項RouterOS怎麼送過去最長能送多少
8291 一行一行送(預設)6.x/7.x像你坐在終端機前面逐行打,靠設備回的提示字判斷一行跑完了沒256 KiB
8291 整包送6.x/7.x整份一起執行;腳本很長的時候畫面回顯會慢一點24 KiB
SSH (選用)6.x/7.x整段透過 SSH 送出去執行60 KiB
API (選用)只有 7.x整段當成字串交給設備執行60 KiB
REST (選用)只有 7.x整段透過網頁介面的那個通道送出去執行60 KiB

什麼時候用哪一個#

  • 一行一行送是預設值,多數情況下也是對的答案。它能送的最長,而且 6.x 跟 7.x 都通。
  • 整包送用在腳本需要自己宣告變數的時候。逐行餵給終端機的話,

:local 宣告的變數活不過那一行——這是送法本身的性質,不是程式少做了什麼。

  • SSH 適合 8291 被擋、但 SSH 通的環境,需要設備上的 /ip service ssh 是開的。
  • API/REST 給已經統一用這兩種方式的環境。兩者執行指令都只有 RouterOS 7.x 可以

REST 還需要 /ip service wwwwww-ssl

寫指令#

那一格就是純文字,旁邊有一個數字告訴你目前用了多少、這個選項最多能送多少。 歷史會留著你跑過的內容,整份也能存成檔案再叫回來, 所以例行檢查不用每次重打。

適合先拿來試的、只會讀取的指令:

routeros
/system resource print
/interface ethernet print where running
/ip address print

至於會改到設備的指令,請自己在自己的設備上負責判斷。有兩個習慣值得養成:

  • 先對同一批設備跑一次對應的查詢指令,確認你即將改的到底是什麼。
  • 特別小心那些可能把你自己連線那條路切斷的指令——防火牆規則、停用介面、改位址。

程式沒辦法幫你把那些復原,斷掉的連線也一樣。

一次跑幾台、每台等多久#

並行數是同時處理幾台設備,每台逾時是任何一台最多能耗多久才被放棄。

  • 最多可以填到 100。超過建議的 20 時欄位會提醒你一聲,但不會擋你。
  • 調高不一定比較快。設備本身、中間的網路、還有你自己的電腦,都可能先變成瓶頸。
  • 逾時是一台一台算的,所以一台特別慢的設備不會吃掉其他台的時間。

送出前會先問你#

按下執行已勾選並不會立刻送出任何東西。 確認畫面會先跳出來,告訴你即將對幾台執行什麼。 不會因為你手滑點了一下,指令就已經在路由器上跑起來了。

讀結果#

結果在3. 檢視結果裡一台一列,有狀態、花了多久、它回了什麼。 這裡只列這一輪的設備。

狀態意思
執行中還在跑。
已完成設備跑到了你那份指令的最後一行。
連線失敗根本沒連上,什麼都沒送出去。
結果不確定指令已經送出去了,然後連線斷掉、或執行被取消。
已取消你自己停掉了這一輪。

按取消會怎樣#

停止會取消這一輪。它實際代表什麼,要看你用的是哪一種連線方式:

  • 8291 時,取消會把那條連線停掉。
  • API、SSH、REST 時,取消只是讓程式不再等

它不能保證設備那邊的指令也停了——設備很可能會把已經收到的東西跑完。

不管哪一種,指令已經送出去的那幾台會被報成結果不確定而不是失敗, 而且程式不會自動重送。默默重試,正是一條指令變成兩條的原因。

跑完之後#

  • 加入暫存區(本輪問題)把所有有狀況的設備整組存起來。
  • 重試問題設備只針對那幾台重跑一次。
  • 複製輸出複製狀態摘要把結果放到剪貼簿。

接下來#

  • 埠監看——看線上實際正在發生什麼。
  • 疑難排解——設備沒回應的時候怎麼查。