coverl 发表于 2018-8-18 12:32:32

网络设备自动备份shell脚本

  这边以华为交换机为例写的脚本,其它产商设备根据设备命令修改脚本即可。
  需求
  批量备份网络设备配置文件到FTP服务器,并将配置文件所在目录自动压缩在以附件的形式发送到个人邮箱
  环境
  linux系统:Centos 6.6
  网络设备:Huawei CE58/68交换机
  iplist文件格式:192.168.1.1:CE6851
  192.168.1.2:CE5855
  脚本内容如下:
  #!/bin/bash
  for IP in `cat /app/backup/iplist`   //通过for循环读取iplist文件
  do
  address=`echo $IP |awk -F ":" '{print $1}'`                     //定义变量IP地址,使用awk命令以":"为分割符号取IP地址
  name=`echo $IP |awk -F ":" '{print $2}'`                     //定义变量交换机系统名称
  /usr/bin/expect "
  send "ftp ftp_server address\r"
  expect "none)):"
  send "ftpuser\r"
  expect "*password:*"
  send "Admin@123\r"
  expect "*ftp]"
  sleep 1
  send "binary\r"
  sleep 1
  expect "*ftp]"
  sleep 1
  send "put vrpcfg.zip ${name}.zip\r"    //修改上传到FTP服务器的文件名称
  sleep 1
  expect "*ftp]"
  sleep 1
  send "quit\r"
  sleep 1
  expect "*>"
  sleep 1
  send "quit\r"
  expect eof
  EOF
  done
  time=$(date "+%y-%m-%d")                  //定义时间变量
  /usr/bin/zip -r /app/${time}_config.zip /app/ftp/*.zip      //压缩ftp服务器上保存配置文件的目录
  echo "this is test" | mail -s "NetworkConfig" -a /app/${time}_config.zip ******@qq.com   //通过mail命令发送邮件,echo输入邮件内容,-s选项配置邮件名称,-a选项制定附件目录
  以上为脚本所有内容,也可以在脚本最后加上rm命令来将已经发送邮件的本地配置文件给删除,然后在配置计划任务周期执行脚本。
  此脚本可以备份所有网络设备配置文件或者下发命令,只需要根据设备来修改expect里的内容即可。

页: [1]
查看完整版本: 网络设备自动备份shell脚本