功能:shell脚本实现sftp自动登录并下载文件
系统环境:centos7
使用到的工具:lftp (安装方式 yum -y install lftp)
lftp:lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在编译的时候包含openssl库)。llftp的界面非常想一个shell: 有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。它还有书签、排队、镜像、断点续传、多进程下载等功能。
实现代码:
#!/bin/bash
#sftp服务器地址
host="192.168.149.128"
#端口
port=22
sftp_user="sftp"
#密码
password="123456"
#下载到本地的目录
localDir="/tmp"
[ ! -d $localDir ] && mkdir -p $localDir
#sftp中待下载文件目录
remoteDir="/"
#要下载的文件为fileName
fileName="jdk.zip"
lftp -u ${sftp_user},${password} sftp://${host}:${port}<<EOF
cd ${remoteDir}
lcd ${localDir}
get $fileName
by
EOF
注意:以上代码只是实现了针对指定路径中的指定文件的下载,如果是想实现对sftp中指定目录下所有文件及子目录中的文件进行遍历下载,暂时没找到 shell 的实现方法(通过python可以,具体可参见我的另一篇文章:利用python实现自动下载sftp文件)
本文暂时没有评论,来添加一个吧(●'◡'●)