环境
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点开始备份。