1. 环境介绍及效果展示

A. centos 6.6 x64
B. tftp-server 0.49
C. 脚本目录

Expect & Shell: 网络设备配置备份

D. 备份目录

Expect & Shell: 网络设备配置备份

E. 备份邮件

Expect & Shell: 网络设备配置备份

2. tftp服务配置

A. [root@steppingstone ~]# yum install tftp-server -y #安装服务
B. [root@steppingstone ~]# vim /etc/xinetd.d/tftp #修改配置文件

service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s -c /backup #指定tftp目录
disable = no #开启服务
per_source = 11
cps = 100 2
flags = IPv4
}

C. [root@steppingstone ~]# mkdir /backup #创建tftp目录
D. [root@steppingstone ~]# chmod a+w -R /backup/ #添加读权限
E. [root@steppingstone ~]# chkconfig tftp on #开机自启
F. [root@steppingstone ~]# service xinetd restart #启动tftp服务

3. 编写调用expect的shell脚本backup.sh

A. [root@steppingstone backup]# vim backup.sh

 1     #!/bin/bash
 2     #write by William_Guozi in 2017.9.4
 3     #循环读取device_tab.txt每一行内容, 格式: ip username passwd enpasswd
 4     year=`date +'%Y'`
 5     month=`date +'%m'`
 6     day=`date +'%d'`
 7     #创建备份目录
 8     mkdir /backup/$year/$month/$day -p
 9     #给备份目录添加写权限
10     chmod a+w -R /backup
11     for ip in `awk '{print $1}' device_tab.txt`
12             do
13             #读取该IP设备的 username passwd enpasswd
14             username=`awk -v IP="$ip" '{if(IP==$1)print $2}' device_tab.txt`
15             passwd=`awk -v IP="$ip" '{if(IP==$1)print $3}' device_tab.txt`
16             enpasswd=`awk -v IP=$ip '{if(IP==$1)print $4}' device_tab.txt`
17             #向expect脚本传送四个参数username ip passwd enpasswd
18             expect config_backup.expect $ip $username $passwd $enpasswd
19             #判断是否执行成功, 执行结果记入日志
20             #[ $? -eq 0 ] && echo "Device $ip backup Success!">> logname.txt || echo "Device $ip backup Failure!">> logname.txt
21             #判断备份文件是否存在, 存在, 则备份成功, 否则, 本分失败
22             [ -e /backup/$year/$month/$day/D-$ip ] && echo "Device $ip backup Success!">> logname.txt || echo "Device $ip backup Failure!">> logname.txt
23     done
24             #将日志信息发送邮件通知管理员
25             cat logname.txt  | mail  -s "Backup Result Reports" guojxb@wumart.com
26             #将日志送至垃圾箱
27             mv logname.txt /tmp/logname-`date +'%F'`.txt
backup.sh

相关文章:

  • 2021-12-09
  • 2021-12-07
  • 2017-12-11
  • 2022-12-23
  • 2021-07-05
  • 2021-09-24
  • 2022-12-23
  • 2021-09-17
猜你喜欢
  • 2021-11-15
  • 2022-12-23
  • 2021-09-29
  • 2021-11-22
  • 2022-12-23
  • 2021-11-04
  • 2022-12-23
相关资源
相似解决方案