热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Shell脚本实现SFTP传输文件,通过密码形式

文章目录读取SFTP连接信息读取SFTP连接信息cat 读取文件内容 grep server : 查找文件内容中包含server字符的,行内容 awk -F ‘=’ :实现字符串分割,分割字符’‘=’

文章目录

  • 读取SFTP连接信息


读取SFTP连接信息

cat 读取文件内容
grep server : 查找文件内容中包含server字符的,行内容
awk -F ‘=’ :实现字符串分割,分割字符’‘=’
${print $2}: 其中$2 表示切割后数组中第几值
base -d :解码base64字符串,转为可识别字符串

#sftp配置文件
sftp_conf_path=/etc/sftp.conf
#获取sftp的IP地址
sftp_ip=`cat ${sftp_conf_path} | grep server | awk -F '=' '${print $2}'`
#获取sftp的端口
sftp_port=`cat ${sftp_conf_path} | grep port | awk -F '=' '${print $2}'`
#获取sftp的用户名
sftp_user=`cat ${sftp_conf_path} | grep server | awk -F '=' '${print $2}'`
#获取sftp的密码
sftp_password=`cat ${sftp_conf_path} | grep server | awk -F '=' '${print $2}' | base64 -d`
#实现SFTP传输
/usr/bin/expect << EOP
#执行连接SFTP
spawn sftp -oPort=${sftp_port} ${sftp_user}@${sftp_ip}
#反馈字符串包含 passowrd,则发送密码
expect {
"*password:" { send "${sftp_password}\r" }
}
#SFTP cd到本地文件目录
expect "sftp>"
send "lcd ${out_path}\r"
#SFTP cd到sftp服务器下
expect "sftp>"
send "cd ${sftp_path}\r"
#SFTP 将lcd目录下文件,传输到cd目录下
expect "sftp>"
send "put ${gz_file}\r"
#关闭SFTP连接
expect "sftp>"
send "bye \r"
EOF
if [ $? -eq 0 ]; then
echo "文件传输成功”
else
echo "
文件传输失败!"
fi
#退出sh脚本
exit 0

推荐阅读
author-avatar
手机用户2502927203
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有