當咱們管理的網絡設備爲個位數的時候,手動的把配置經過tftp方式copy出來仍是能夠的。可是當咱們管理幾十臺甚至上百臺(有點誇張,都這個級別了確定用專業的運維軟件或者開發運維平臺進行管理)的時候手工備份配置就顯得捉襟見肘了,在設備就十幾二十臺這種尷尬的數字的時候,cisco設備自帶的任務命令就顯得很好了,下面將介紹這個命令的用法linux
①設備時間的同步(定時備份那麼設備的時間就必需要準確,通常內網都有NTP服務器,直接用ntp同步便可)ios
②tftp服務器(爲啥是tftp不是ftp?由於cisco的定時任務命令不支持交互操做)shell
③寫一個bat命令(若是tftp在linux就寫一個shell腳本)move備份的配置(爲啥?由於設備傳遞的是show run的結果真後redirect出來的,文件名是在設備上面寫死的,若是不天天定時轉移上傳的配置,那麼下次設備再上傳配置的時候就會覆蓋上一次的配置)vim
④低版本的ios可能不支持windows
①配置NTPbash
POE-2(config)#clock timezone CN 8 POE-2(config)#ntp server 172.28.28.1 POE-2(config)#ntp source vlan 255 POE-2#sh clock 10:25:38.348 CN Thu May 10 2018
②配置好tftp服務端服務器
這裏就用cisco的tftp了(反正都是自家的東西)網絡
③配置定時任務運維
POE-2(config)#kron policy-list BAK //定義一kron策略列表 POE-2(config-kron-policy)#cli show run | redirect tftp://172.28.27.227/POE-2.cfg //從cli後面開始都是命令,可是這個命令必須是無交互的,好比不用輸yes等確認信息
POE-2(config-kron-policy)#exit //必定要exit退出纔會提交 POE-2(config)#kron occurrence BAK at 10:40 recurring //添加調度,時間後面若是不加天數就表示天天這個時間都備份 recurring表示重複的意思 POE-2(config-kron-occurrence)#policy-list BAK //調度任務 POE-2(config-kron-occurrence)#exit POE-2#sh kron schedule //查看調度狀況 Kron Occurrence Schedule BAK inactive, will run again in 0 days 00:08:11 at 10:40 on POE-2#sh run | in kron kron occurrence BAK at 10:40 recurring kron policy-list BAK
這裏是測試 因此很快就能夠看到自動備份的效果socket
④創建bat或者shell
須要將配置文件轉移到其餘地方而且以時間命名才能達到咱們增量備份的效果,不作此步驟每次的新備份都會覆蓋原有的備份(除非把名字改掉)
這裏是windows系統就以bat爲例:
@set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%" //創建一個變量,並經過%date:~5,2%來組合得出當前日期,組合的效果爲yyyymmdd,date命令獲得的日期格式默認爲yyyy-mm-dd(若是不是此格式能夠經過pause命令來暫停命令行窗口看經過%date:~,20%獲得的當前計算機日期格式),因此經過%date:~5,2%便可獲得日期中的第五個字符開始的兩個字符,例現在天爲2009-02-05,經過%date:~5,2%則能夠獲得02。(日期的字符串的下標是從0開始的)
@md D:\網絡配置備份\%ymd% //第二句爲用MD命令 創建以變量Ymd爲名的文件夾
@move /y E:\tftpdir\*.* D:\網絡配置備份\%ymd%
//第三句爲複製指定的文件到指定的文件夾。注意源文件的路徑不能太長不然就沒法識別,最好也不要只中文路徑,否則出錯都不知道緣由
下面能夠複製到bat上面執行的(注意把路徑改下)
@set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%" @md D:\網絡配置備份\%ymd% @move /y E:\tftpdir\*.* D:\網絡配置備份\%ymd%
⑤創建windows任務計劃
這裏的創建須要注意要晚於cisco設備備份配置的時間,道理很簡單,配置沒生成就提早mv了是沒意義的
這裏就不演示了
注:上述的操做一樣也只是半自動,由於在交換機上面要配置的內容也很多,若是要更高級的玩法能夠看看 Kiwi CatTools工具(收費的)或者expect腳本(linux下的)
[root@grafana-sz ~]#yum install xinetd tftp-server tftp -y
[root@grafana-sz ~]# mkdir /tmp/network [root@grafana-sz ~]# vim /etc/xinetd.d/tftp 將 disable = yes 改成 disable = no 設置tftp根目錄: server_args = -s /tmp/network -c //參數-s指定chroot,-c指定了能夠建立文件。 [root@grafana-sz ~]# systemctl start xinetd.service [root@grafana-sz ~]# systemctl start tftp.service [root@grafana-sz ~]# systemctl start tftp.socket [root@grafana-sz ~]# systemctl enable tftp.socket [root@grafana-sz ~]# systemctl enable tftp.service [root@grafana-sz ~]# systemctl enable xinetd.service
[root@grafana-sz ~]# vim mkdir.sh #!/bin/bash #
# dirdate=`date +%Y%m%d`_`date +%H%M%S` mkdir -p /networkconfig/$dirdate mv /tmp/network/* /networkconfig/$dirdate
[root@grafana-sz ~]# crontab -e 30 23 * * * /root/mkdir.sh //每晚23:30執行腳本