手写shell脚本自动备份交换机配置
在运维工作中,你如果没有自动化辅助工具的情况下,要做好设备的备份工作,该如何简单、高效完成呢?\n本文主要以脚本内容展示方式抛砖引玉:\n#! /bin/bash\nif test $# == 0;then\necho \”usage like: ./脚本名称.sh 20250601\”\nexit 1\nfi\n###以上if语句判断执行脚本的方法,为了便于标识,建议提示输入年月日用于配合脚本里的ftp创建新目录。\nftp -n -v ftp服务器ip << EOF\nuser ftp用户名 ftp密码\nmkdir $1 (注意这是你执行脚本的时候输入的创建目录名称,比如20250601)\nEOF\n###以上ftp语句表示登录对应你的ftp服务器,并创建目录。\n#####以下是for循环语句依次登录交换机设备\nfor ip in `cat 交换机IP文件.txt`\ndo\ndate=`date +%F`\nexpect << EOF\n# 设置超时时间为 30 秒\nset timeout 30\nspawn ssh 交换机登录用户名@${ip}\n####以下是expect语句,用于shell脚本执行过程中的登录交换机交互功能实现,比如输入用户名和密码登。######expect中的内容需要依据你需要备份的交换机登录提示进行修改。\nexpect {\n\”(yes/no)?\” {\nsend \”yes\\n\”\nexpect \”Password:\”\nsend \”交换机登录密码\\n\”\n}\n\”Password:\” {\nsend \”交换机登录密码\\n\”\n}\n}\nexpect \”>\” { send \”ftp ftp服务器ip\\n\” }\nexpect \”):\” { send \”ftp用户名\\n\” }\nexpect \”password:\” { send \”ftp用户密码\\n\” }\nexpect \”]\” { send \”cd $1\\n\” }\nexpect \”]\” { send \”put 交换机配置文件名称 ${ip}_${date}交换机配置文件名称\\n\” }\nexpect \”]\” { send \”quit\\n\” }\nexpect \”>\” { send \”quit\\n\” }\nEOF\ndone\n备注:脚本内容中的标黄的字体内容需要读者根据实际情况填写。