我打算制作一个简单的脚本来登录交换机&进行配置备份!
我以前手动登录&想要在单个命令中或通过脚本执行此操作!
任何人都可以帮助我吗?
root@xxx:/home# ftp xxx.19.254.61
Connected to xxx.19.254.61.
220 xx-xx-xx-xxx-SW-2 FTP version 1.0 ready at Sat Feb 14 23:28:25 1970
Name (xxx.19.254.61:root): admin
331 Enter PASS command
Password:
230 Logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> get config config.cfg
local: config.cfg remote: config
200 Port command okay
150 Opening data connection for RETR config
226 File sent OK
2824 bytes received in 1.05 secs (2.6227 kB/s)
ftp> bye
221 Goodbye!
答案 0 :(得分:0)
heredoc
对你不好吗?
$ ftp xxx.19.254.61 <<< EOF
get config config.cfg
bye
EOF
答案 1 :(得分:0)
我写了类似的here
ftp_server='localhost'
ftp_username='********'
ftp_password='***********'
mkdir /home/user/linux/source_folder
source_folder="/home/user/linux/source_folder/"
cp -avr config* $source_folder
dest_folder="/home/user/linux/linux2/"
ftp -i -n $ftp_server <<END_SCRIPT
quote USER $ftp_username
quote PASS $ftp_password
cd $source_folder
!cd $dest_folder
mget -R *
quit
END_SCRIPT
(注意:你应该mkdir
因为ftp不支持从源文件夹到目标文件夹的多个文件副本所以你应该使用带有-R选项的mget来复制位于新创建目录中的多个文件,然后将配置文件复制到此使用cp -avr config* $source_folder
创建新目录。
这是另一个更强化的脚本,没有人可以看到你的存储 密码,允许openssl加密,使用配对密钥解密。
#!/bin/bash
read -p "Enter Username: " Username
read -sp "Enter Username Password: " Password
echo
ftp_server="localhost"
ftp_username="$Username"
ftp_password="$Password"
passwrd=`echo $ftp_password | openssl aes-256-cbc -a -salt`
decrypt=`echo $passwrd | openssl aes-256-cbc -a -d -salt`
mkdir /home/username/linux/source_folder
source_folder="/home/username/source_folder/"
cp -avr config* $source_folder
dest_folder="/home/username/linux/dest_folder/"
ftp -in $ftp_server <<END_SCRIPT
quote USER $ftp_username
quote PASS $decrypt
cd $source_folder
!cd $dest_folder
mget -R *
quit
END_SCRIPT
说明:
示例:
P @ $$ w0rd(password_to_encrypt(私钥))
P @ $$ w0rd same password_to_encrypt(私钥)
P @ $$ w0rd same password_to_decrypt(私钥)
注意:
如果您不想使用openssl连接
进行配对密钥加密,则可以删除这些行passwrd =
echo $ftp_password | openssl aes-256-cbc -a -salt
解密=
echo $passwrd | openssl aes-256-cbc -a -d -salt
并将quote PASS $decrypt
更改为quote PASS $ftp_password
<强>替代:强>
只需将Username
和Password
以及Server Ip
赞成172.19.254.61
#!/bin/bash
read -p "Enter Username: " Username
read -sp "Enter Username Password: " Password
echo
read -p "FTP Server IP: " ftp_server
ftp_username=$Username
ftp_password=$Password
source_folder="/home/rr-de-nms-1/Sazzad/source_folder/"
cp -avr /home/rr-de-nms-1/Sazzad/config* $source_folder
dest_folder="/home/rr-de-nms-1/Sazzad/dest_folder/"
ftp -in $ftp_server <<END_SCRIPT
quote USER $ftp_username
quote PASS $decrypt
cd $source_folder
!cd $dest_folder
mget -R *
quit
END_SCRIPT
现在您的配置文件已在/home/rr-de-nms-1/Sazzad/dest_folder/