使用 LFTP 进行 SFTP 文件上传与下载
工具介绍
LFTP 是一款非常著名的字符界面的文件传输工具。支持 FTP、HTTP、FISH、SFTP、HTTPS 和 FTPS 协议。
软件安装
apt-cache search lftp
apt-get install lftp -y
lftp 的使用
使用语法
lftp -[fceup] user:passwd@host
:passwd 可选,此方式密码明文保存,history 可查看-f <file>
:执行文件中的命令后退出-c <cmd>
:执行命令后退出-e <cmd>
:登录后后执行命令-u <user>[,<pass>]
:使用指定的用户名 / 口令进行验证-p <port>
:连接指定的端口,默认 21
常用命令
cd
:切换 FTP 目录lcd
:切换本地目录ls
:列出 FTP 目录文件!ls
:列出本地目录文件find ./ -name file
:查找文件mv
:移动rm
:删除mkdir
:新建目录rmdir
:删除目录
上传下载文件
get [cEaO] file -o newfilename
:下载文件put [cEaO] file -o newfilename
:上传文件pget -n
:多线程下载可选参数:
-c
:支持断点续传-E
:下载后删除远端文件-a
:指定传输为 ascii 模式,默认为二进制模式-O
:指定存放目录
上传下载目录
mirror [cRnr] remote [local]
可选参数:
-c
:支持断点续传-R
:上传整个目录-n
:只下载较新的档案,可用于增量备份-r
:只下载当前目录,不递归目录
书签管理
bookmark add name
:保存当前连接为书签名字 name,下次打开可直接使用 lftp namebookmark del name
:删除书签bookmark list
:显示书签列表bookmark edit
:编辑书签
编码设置
set ftp:charset "gbk"
set file:charset "UTF-8"
- 或加入配置文件
.lftp/rc
主动 / 被动模式
默认为被动模式 。
set ftp:passive-mode no
:关闭被动模式转为主动模式
主动客户端开启数据传输端口,被动服务端开启数据传输端口。
Shell 脚本
批量上传
#!/bin/bash
#SFTP配置信息
#用户名
USER=root
#密码
PASSWORD=5EYS40T04BMF
#待上传文件根目录
SRCDIR=/u02/dab/sftpFiles
#FTP目录
DESDIR=/u01/sftpFiles
#IP
IP=192.168.10.11
#端口
PORT=22022
#获取文件
cd ${SRCDIR} ;
#目录下的所有文件
#FILES=`ls`
#修改时间在执行时间五分钟之前的xml文件
FILES=`find ${SRCDIR} -mmin -50 -name '*.xml'`
for FILE in ${FILES}
do
echo ${FILE}
#发送文件 (关键部分) 复制出来,如有结尾有空格,请自行去掉
lftp -u ${USER},${PASSWORD} sftp://${IP}:${PORT} <<EOF
cd ${DESDIR}/
lcd ${SRCDIR}
put ${FILE}
by
EOF
done
单文件下载
#!/bin/bash
USER=root
#密码
PASSWORD=5EYS40T04BMF
#下载文件目录
SRCDIR=/u02/dab
#FTP目录(待下载文件目录)
DESDIR=/u01/sftpFiles
#银联IP
IP=192.168.1.10
#端口
PORT=22022
lftp -u ${USER},${PASSWORD} sftp://${IP}:${PORT}<<EOF
cd ${DESDIR}
lcd ${SRCDIR}
#需要下载的文件为text.xml
get text.xml
by
EOF
相关文章