邊做邊學,順便留個筆記,若有錯誤請不吝指教。
Junos基本操作及root密碼設定可參考我之前的文章:Juniper Junos基本操作、root密碼設定
所有Juniper相關文章列表:Juniper JunOS 系列文章列表
使用Juniper設備的設定模式時,Junos會將目前運行的config檔複製出來供管理者做修改。
這個時候對config檔所有改動皆不會立即生效,需要透過commit指令將設定檔寫入才會生效。
如果commit成功則會顯示如下:
{master:0}[edit]
root# commit
configuration check succeeds
commit complete
這邊要注意的是完成commit之後仍然是在設定模式,如果希望在完成commit後回到命令列模式可以在commit後加上and-quit。
{master:0}[edit]
root# commit and-quit
configuration check succeeds
commit complete
Exiting configuration mode
commit指令提供管理者在commit時加上註解(comment)的功能,用來紀錄修改內容
root# commit comment test
root# commit comment "test 123"
這裡需要特別注意的是,如果註解內容包含空格則需要在註解內容前後加上引號(“)。
如果遠端設定時擔心設定檔內容有誤造成斷線,commit指令提供一個10分鐘自動復原(rollback)的功能。
root# commit confirmed
configuration check succeeds
commit confirmed will be automatically rolled back in 10 minutes unless confirmed
commit complete
如同上面的系統提示所述,如果管理者在10分鐘內沒有再次下達commit指令,則系統會自動復原至commit前的設定檔。
另外commit也提供管理者排程功能,在commit指令後加上at [時間] 即可。
{master:0}[edit]
root# commit at "2019-01-19 16:41:00"
configuration check succeeds
commit at will be executed at 2019-01-19 16:41:00 UTC
Exiting configuration mode
在命令列模式下可以使用”show system commit”來查看commit紀錄,這邊就可以看到我們剛剛所有的commit紀錄。
root> show system commit
0 2019-01-19 16:41:18 UTC by root via cli commit at
1 2019-01-19 16:36:21 UTC by root via cli
2 2019-01-19 16:36:13 UTC by root via cli commit confirmed, rollback in 10mins
3 2019-01-19 16:35:57 UTC by root via cli
test 123
4 2019-01-19 16:35:51 UTC by root via cli
test
5 2019-01-19 16:35:39 UTC by root via cli
最後提供一個在commit前用來檢查設定檔的指令
{master:0}[edit]
root# commit check
configuration check succeeds
commit check僅僅會檢查語法是否正確,設定上的邏輯是否正確仍然需要人工進行確認,可以在commit前先確認與現行設定檔的差異
root# show | compare
[edit interfaces ge-0/0/0 unit 0]
+ family inet {
+ address 10.0.0.1/24;
+ }
- family ethernet-switching {
- storm-control default;
- }
差異的部分會使用”+”號代表增加的設定,”-“則是減少的設定,如果仍然不確定設定修改是否正確還是用commit confirmed吧!
當然,如果真的不小心下錯了指令,還可以使用 rollback 指令來救急, 更多關於 rollback 指令的內容可以參考: Juniper Junos快速復原(rollback)