如何讓Proxmox VE排程關機 / How to Make Proxmox VE Schedule Shutdown
做了很多次了,赫然發現我還沒有好好記錄at的用法。
環境 / Environment
我是用的是Proxmox VE 7.2-3,並不是最新版本。但舊版的Proxmox VE操作起來也差不多。
假設我們即將要在8月6日(星期日)的早上8點到下午5點之間停電的話,那我們要記得在之前先讓Proxmox VE關機才行。
那要怎麼設定呢?
關機排程指令 / Command to scheduled shutdown
要在特定時候進行關機,我們會用到關機指令「shutdown -h now」跟排程指令「at」。以8月6日早上8點停電來說,我們需要提早一段時間執行關機指令,讓Proxmox VE在關機的時候也逐台關閉虛擬機器。
如果我們打算要在8月6日早上6點執行關機指令,那麼at指令的寫法如下:
echo "shutdown -h now" | at 6:00am August 6
當然,你可以更換上述紅字的時間,調整成你合適的時間即可。
為每個節點排程 / Set crontab on each node
再來我們要為Proxmox VE每一個節點輸入上述指令。必須要注意的是,是每一個節點都要進行下面的設定喔。
請在左邊Server View的地方選擇節點(node)。這個節點的意思是實體的機器。上圖的例子中,我只有一臺實體機器,不過裡面還運作很多虛擬機器就是了。千萬不要把兩者搞錯了喔。
再來是點選右上角的「Shell」,開啟指令介面。
如果你已經是root身份了,請執行以下指令來安裝at。
apt update; apt install at -y
將剛剛設定好的at排程指令貼上,並且執行。
看到「warning: commands will be executed」這樣的訊息,表示at排程完成。
管理at排程的工作 / Manage scheduled jobs
接著我們可以用「atq」指令查看已經排程的工作。上圖可以看到目前已經有一個排程的工作,編號是1。
如果要取消已排程的工作,可以使用atrm指令。以下指令將取消編號1的已排程工作:
atrm 1
再用atq查詢的時候,已經看不到剛剛排程的工作囉。
確認是否有關機 / Shutdown monitoring
如果你想確認伺服器有正常關機的話,可以搭配UptimeRobot一起使用。UptimeRobot可以監控某個網址,當網址可以連線或無法連線的時候,它可以自動發送通知email給你。這算是一個我用了很久的好服務。
復電後自動啟動 / Startup on power restore
除了要設定關機排程之外,也別忘記在BIOS設定「Restore on AC/Power Loss: Power On」,這樣復電之後才會自動啟動喔。
文章最後要問的問題是:停電的時候,你都是怎麼處理電腦的呢?
- 停電前一天手動關機。
- 知道要停電的時候,就設定自動關機排程。
- 不管他,讓他自動斷電。
- 我有UPS的電池,可以撐很久。
歡迎在下面留言喔!