Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux 伺服器實現網路設備每日自動備份配置:Expect 腳本搭配 Crontab 定時任務

編輯:Linux 系統常見問題解答

身為網管,管理大量交換器/路由器時,最頭痛的是:配置常改、忘存、斷電重啟後配置遺失、恢復耗時。若能讓設備每天自動存檔並上傳至備份伺服器,將大幅降低風險。本文提供兩種方案:原廠指令自動化(以華為為例)與通用 Linux Expect 腳本方案。

方案一:交換器原廠自動備份指令(華為範例)

新版華為交換器支援排程備份至 FTP 伺服器:

[switch] set save-configuration backup-to-server server 192.168.1.1 transport-type ftp user admin password admin123 path /configbck
[switch] set save-configuration delay 5           // 5 分鐘後執行
[switch] set save-configuration interval 43200    // 每 12 小時循環
[switch] dis saved-configuration time             // 查看備份紀錄

但舊版韌體或非華為設備可能不支援,升級韌體又需停機且有風險。

方案二:Linux Expect 通用自動化腳本(廠牌/版本無關)

原理:Linux 伺服器透過 Telnet 登入設備 → 執行 save → FTP 上傳配置檔。只要有權限下指令,即可自動化。

腳本內容(tel104.exp)

#!/usr/bin/expect
set date [exec date "+%Y%m%d"]
spawn telnet 192.168.1.104
expect "Username:"
send "admin\r"
expect "Password:"
send "Admin@huawei\r"
send "save\r"
send "Y\r"                     ;# 確認儲存
send "ftp 192.168.1.1\r"      ;# 連線 FTP 伺服器
send "admin\r"                ;# FTP 用戶
send "Admin@huawei\r"         ;# FTP 密碼
send "put flash:/vrpcfg.zip /configbck/$date.zip\r"
interact

前置需求

  1. Linux 安裝 expect 與 telnet(yum install expect telnet)
  2. 架設 FTP 伺服器(vsftpd 等),建立對應目錄與帳號
  3. 依設備廠牌調整 send 指令字串(如 Cisco 用 write memory)

部署定時任務

crontab -e
# 每天凌晨 1 點起,每 15 分鐘備份一台設備
00 01 * * * /home/expect/tel104.exp
15 01 * * * /home/expect/tel105.exp
30 01 * * * /home/expect/tel106.exp
45 01 * * * /home/expect/tel107.exp
55 01 * * * /home/expect/tel108.exp

此法不受設備韌體版本限制,只要能 Telnet 進去、有權限下指令,即可實現每日自動化備份,是網管工具箱必備利器。

Copyright © Windows教程網 All Rights Reserved