利用expect实现对H3C交换机的定时备份

环境

Centos 7.6

步骤

1. 安装tftpserver

yum install tftp-server -y    #安装tftpserver
yum install  -y xinetd        #安装xinetd
vim /etc/xinetd.d/tftp        #编辑tftp配置文件
    server_args             = -s /tftpboot -c     # 在 server_args 增加-c参数
vim /etc/sysconfig/selinux    # 编辑selinux    
    SELINUX=permissive
service xinetd restart        #重启tftpd

 2.备份脚本

#!/bin/bash

DATE=`date +%Y%m%d`
#获取系统时间
mkdir -p -m 777 /tftpboot/backup/$DATE 
#用系统时间创建目录
IPADDR=(`cat  /var/swbk/hosts.txt  |  awk '{print $1 }'`)
#从hosts.txt文件中读取设备ip地址,存入数组
for  ipaddr in  ${IPADDR[@]}
do 
echo "`date +%H:%M:%S`  开始备份$ipaddr"
PASSWORD=(`cat  /var/swbk/hosts.txt  | grep "$ipaddr" |   awk '{print $3}'`)
#从hosts.txt文件中读取密码
/usr/bin/expect << EOF  
#加载expect路径,后面作为输入,直到EOF
set timeout 5 
#等待5秒钟
spawn ssh admin@$ipaddr
#启动ssh,使用用户名登录
expect "*password:"
send "$PASSWORD\r"
#等待输入密码,输入密码
expect "*>"
send "tftp 192.168.0.140 put startup.cfg backup/$DATE/$ipaddr.cfg \r"
#上传配置文件
expect "*>"
send "quit\r"
#退出
EOF
echo "`date +%H:%M:%S`  备份完成"
done

 3.hosts.txt文件

使用空格分隔,编辑hosts.txt文件,格式:ip地址 用户名 密码,每行一个设备。

4.设置定时任务

crontab -e 
0 1 * * 2 /var/swbk/bk.sh

设置每周二凌晨1点开始备份。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值