2017年3月22日 星期三

CISCO kron 排程自動備份+TFTP Server

CISCO 設備新增備份排程:

mis_c2960#configure config
mis_c2960(config)#kron policy-list Backup_config      #設定排程任務名稱
mis_c2960(config-kron-policy)#cli write      #以免備份不完全,先將 running-config 的設定寫入一次
mis_c2960(config-kron-policy)#cli show run | redirect tftp://192.168.1.1/c2960.cfg     #設定要執行的指令及TFTP Server 位址、檔名
mis_c2960(config-kron-policy)#exit

設定排程執行時間:
mis_c2960(config)#kron occurrence Backup_config at 23:00 Sun recurring      #每個星期日執行
mis_c2960(config-kron-occurrence)#policy-list Backup_config      #啟動排程
mis_c2960(config-kron-occurrence)#end

寫入剛才設定:
mis_c2960#write

查詢排程工作:
mis_c2960(config-kron-occurrence)#show kron schedule

如果要移除備份排程:
mis_c2960#configure config
mis_c2960(config)#no kron policy-list Backup_config
mis_c2960(config)#no kron occurrence Backup_config at 23:00 Sun recurring




TFTP Server:


Windows TFTP 軟體:


Windows 排程工作,在 CISCO 備份前搬移之前的 config 檔案,並刪除過期的 config 檔案:
moveConfig.bat
內容:
SET src_folder=C:\TFTP_Data
SET dst_folder=C:\TFTP_Data\backup
SET time=%date:~0,4%%date:~5,2%%date:~8,2%
SET delday=30

for /f %%a IN ('dir "%src_folder%\*.cfg" /b') do move %src_folder%\%%a %dst_folder%\%time%-%%a

forfiles -p %dst_folder% -s -m *.cfg /D -%delday% /C "cmd /c del @PATH" > nul 2>&1






Linux TFTP server 套件:

yum install -y tftp tftp-server xinetd


修改 /etc/xinetd/tftp 設定及TFTP 資料目錄:
service tftp
{
        socket_type             = dgram
        protocol                  = udp
        wait                         = yes
        user                         = root
        server                      = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot -c #-c 允許上傳檔案
        disable                    = no  #enable Service
        per_source              = 11
        cps                          = 100 2
        flags                       = IPv4
}

建立 TFTP 檔案目錄:
mkdir -p /tftpboot/backup
chmod o+w /tftpboot

systemctl enable xinetd
systemctl start xinetd

因為CISCO的 kron 建立備份時,無法自動命名,所以在 Linux 上建立一個搬移備份檔的script:
vi moveConfig.sh
內容:
#!/bin/bash

Date=$(date +"%Y%m%d")
#config檔備份目錄
FileDir=/tftpboot
#舊config檔搬移目錄
BackupDir=/tftpboot/backup
#過期的檔案
DelFile=30

for file in `ls $FileDir`;
do
    if [ -f ${FileDir}/${file} ]; then
       mv ${FileDir}/${file} ${BackupDir}/${Date}-${file} && echo "${Date} Backup success." >> ${BackupDir}/backup.log
    fi
done

#刪除超過設定天數的檔案
find $BackupDir -type f -daystart -mtime +$DelFile -exec rm -rf {} \; > /dev/null 2>&1

設定 moveConfig.sh 檔案執行權限:
chmod +x moveConfig.sh

在 CISCO 設備備份 config 前,執行搬移舊 config 檔案排程:
50 22 * * * /bin/sh /root/moveConfig.sh > /dev/null 2>&1




沒有留言:

張貼留言

OCS Inventory 匯出資料到 Google 試算表(依電腦設備類型)

OCS Inventory 匯出到 Google 試算表的程式是從網路上其他高手分享出來( 參考資料出處 ),並依個人需求調整。 如要取用請注意,因程式是用 python 寫的,程式段落可能會移位導致無法正常運作。 下列程式調整SELECT電腦 設備類型 為Noteboo...