需要为ftp登录创建一个简单的脚本

时间:2015-06-08 06:52:22

标签: bash shell ftp backup switching

我打算制作一个简单的脚本来登录交换机&进行配置备份!

我以前手动登录&想要在单个命令中或通过脚本执行此操作!

任何人都可以帮助我吗?

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!

2 个答案:

答案 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

说明:

  • 输入您的真实用户名
  • 输入您的真实密码
  • 加密您的私钥
  • 验证密码私钥
  • 使用相同私钥的上次登录

示例:

  • Sazzad(用户名)
  • Sazzad(真实密码)
  • 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

<强>替代: 只需将UsernamePassword以及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/

中下载