使用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
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
相关文章推荐
- 使用Shell脚本实现ftp的自动上传下载
- 一个使用shell脚本实现的修改文件中的字符串
- 使用Shell脚本来实现FTP的自动上传下载
- 采用Shell及AWK脚本实现磁盘使用空间监控
- shell脚本实现每秒执行一次任务 rsync命令使用
- linux脚本发送邮件 shell发送邮件(使用 msmtp+mutt+shell来实现)
- Linux使用Shell脚本实现ftp的自动上传下载
- 使用linux的shell脚本实现在当前行重复动态显示时间等字符串信息(不另起新行)
- 使用交互式shell脚本实现对DNS服务的管理以及启动
- shell脚本实现每秒执行一次任务 rsync命令使用
- 使用FUNCNAME 和BASH_LINENO实现shell脚本中定位函数错误在代码中的位置
- 使用Shell脚本实现ftp的自动上传下载
- 在Shell脚本中编写AWK脚本实现数据提取—注意格式、awk中使用shell变量、awk中数字字符串转换成数字、awk中字符串相等比较
- 使用shell脚本实现USB设备的加载与文件复制
- 使用shell脚本实现USB设备的加载与文件复制
- Linux使用Shell脚本实现ftp的自动上传下载
- 使用c和shell实现远程tomcat的重启备份脚本
- Linux下使用Shell脚本实现ftp的自动上传下载的代码小结
- Linux下使用Shell脚本实现ftp的自动上传下载的代码小结
- 使用inotify实现实时文件同步shell脚本