您的位置:首页 > 运维架构 > Shell

使用Shell脚本实现SFTP下载文件

2015-04-15 20:11 204 查看
一.生成密钥对

ssh-keygen –d

Generating public/private dsa key pair.

Enter file in which to save the key (/home/local_user/.ssh/id_dsa): (直接按回车不要输入任何东西。注意这个路径/home/local_user/.ssh/id_dsa)

# 按回车保存为: /home/local_user/.ssh/id_dsa,即当前用户local_user的私钥

Enter passphrase (empty for no passphrase): (直接按回车不要输入任何东西)

# 按回车,表示读取密钥时不需要密钥的密码

Enter same passphrase again: (直接按回车不要输入任何东西)

# 确认密钥的密码,必须和上面的输入相同

Your identification has been saved in /home/local_user/.ssh/id_dsa.

# 私钥保存信息

Your public key has been saved in /home/local_user/.ssh/id_dsa.pub.

# 公钥保存信息

The key fingerprint is:

ec:41:e8:08:38:0b:f8:1e:bc:92:98:32:fc:d7:69:7d ...

# 密钥指纹

二.分发公钥

为了使用密钥,必须将公钥分发到欲登录的远程服务器上,这里远程服务器记为remote_hos

t,欲登录的远程用户记为remote_user

1.copy公钥到欲登录的远程服务器的远程用户的家目录下,例如:

copy id_dsa.pub到remote_host:/home/remote_user/.ssh/(注意这个路径)

若目录/home/remote_user/.ssh/不存在,请先创建之.

2.将copy来的公钥文件改名为authorized_keys

3.修改公钥文件的访问权限

chmod 644 authorized_keys

示例

date=` date +%Y-%m-%d `

##########################################

# 下载文件 #

##########################################

#sftp -oPort=ssh端口号 用户名@IP地址 << EOF

sftp -oPort=29 root@****** << EOF

#cd 服务器文件的存放路径

cd /var/MeMediaBackup/

# lcd 本地文件存放路径

lcd /backup/memediadbbackup/

#-get 服务器文件的存放路径下的文件名

-get memediadb$date.tar.gz

##########################################

# 减压并导入数据库 #

##########################################

tar -zxvf memediadb$date.tar.gz

/usr/bin/mysql -u root -pmemediahegg.0 -h ****** memediadb < /backup/memediadbbackup/memediadb$date.sql

##########################################

# 删除减压后的sql文件 #

##########################################

rm -rf memediadb$date.sql

quit

EOF
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: