首先,要瞭解 vcbSnapshot 指令的功能
該指令可以用來建立 Snapshot 或是 刪除 Snapshot
建立 Snapshot 的指令語法
vcbSnapshot –h [VM Host Name/IP/FQDN] –u [User Name] –p [Password] –c [VM Guest] [Snapshot Name] [Snapshot Description] |
[VM Host Name/IP/FQDN]、[User Name]、[Password]這三個參數一看就知道,不必贅述。
[VM Guest] 參數可以使用以下四種格式
moref:id name:VM Guest Name uuid:id ipaddr:ip address |
moref id 與 uuid 都是固定不變,要查詢 VM Guest 的 moref id/uuid 可以事先使用 vcbVmName 指令查詢
用 name:VM Guest Name 是最方便,不需要再去查詢
如果 VM Guest 沒有開機,就不能用 ipaddr 當作參數(無法辨識 VM Guest)
[Snapshot Name] 參數,考量到要自動刪除過期的 Snapshot ,所以用日期來命名
[Snapshot Description] 參數就隨你自己高興了,也可以不設定
刪除 Snapshot 的指令語法
vcbSnapshot –h [VM Host Name/IP/FQDN] –u [User Name] –p [Password] –d [VM Guest] [Snapshot] |
[VM Guest] 參數同上
[Snapshot] 參數,有兩種格式
ssid:id ssname:[Snapshot Name] |
ssid 在執行 Snapshot 時會顯示,日後要查詢的話,也是用 vcbSnapshot 指令去查詢
ssname:[Snapshot Name] 就是使用當初建立 Snapshot 的Snapshot Name,所以前面才說,把Snapshot Name 設為建立日期,這樣就可以很方便用指令組合去自動刪除某一個 Snapshot
接下來就是 date 日期指令,讓 date 指令輸出我們要的日期格式
date +%y%m%d,輸出格日期格式就是 YYMMDD,日期是今日
date –d ‘7 days ago’ +%y%m%d,日期是七天前
關於日期的指令,以下網址有比較詳細的說明!
http://blog.longwin.com.tw/2010/07/linux-date-computer-2010/
所以要建立 Snapshot 的指令就是
vcbSnapshot -h [VM Host Name] –u [User Name] –p [Password] -c name:[VM Guest Name] “`date +%y%m%d`” "Auto Snapshot by Crontab" |
要刪除七天前的 Snapshot 的指令就是
vcbSnapshot -h [VM Host Name] –u [User Name] –p [Password] -d name:[VM Guest Name] ssname:”`date -d '7 days ago' +%y%m%d`” |
最後,就是把指令加入 crontab 去,這樣就大功告成了!
PS.請不要告訴我,你要操作 VMware ,卻不知道如何使用 crontab … :P
如果真的不知道怎麼加到 crontab ,請看看鳥哥的網站教學吧…
PS.Snapshot 不能完全取代 Backup 的功能,千萬不要只做 Snapshot 而不做備份,免得哪天系統全毀時,來跟我哭訴喔… :D
PS.Snapshot 千萬不要做太多,以免拖慢虛擬系統效能,所以請謹慎考慮你的備份政策
2 意見:
請問我直接在VMware貼上
date -d '7 days ago' +%y%m%d
卻出現下面錯誤
date: invalid date '7 days ago'
這樣是寫法有錯誤嗎?
看起來沒錯
張貼留言