lftp常用命令
ls 查看目录内容
cd 切换远端目录
lcd 切换本地目录
put 上传
mput 批量上传
get 下载
get -c 断点续传下载
mget -c *.txt 批量断点下载
open site:port 登录ftp
1、登录ftp
lftp (ftp://)username:password@site:port
lftp (ftp://)username@site:port ---然后系统会提示输入password
lftp site -p port -u username,password ---默认端口21
lftp site:port -u username,password
也可分步进行
lftp
open site:port
user username:password
举例:
[root@mysqltest ~]# lftp bkdata:tinapwd@backup.work
lftp bkdata@backup.work:~>
[root@mysqltest ~]# lftp ftp://bkdata:tinapwd@backup.work
lftp bkdata@backup.work:~>
[root@mysqltest ~]#lftp backup.work -u bkdata,tinapwd
lftp bkdata@backup.work:~>
[root@mysqltest ~]#lftp backup.work -p 21 -u bkdata,tinapwd
lftp bkdata@backup.work:~>
[root@mysqltest ~]# lftp
lftp :~> open backup.work
lftp backup.work:~> user bkdata tinapwd
2、查看内容(ls)
lftp bkdata@backup.work:~> !ls -l /home/bk_pg ---查看本地目录内容
total 1524
-rw-r--r--. 1 root root 4744 Dec 24 11:19 bk.log
-rw-r--r--. 1 root root 75 Dec 24 11:19 pg.md5
-rw-r--r--. 1 root root 1546722 Dec 24 11:19 rename_check.20151224.backup
lftp bkdata@backup.work:~> cd 12.108_pg ---进入远端目录
cd ok, cwd=/12.108_pg
lftp bkdata@backup.work:/12.108_pg> ls ---查看远端目录内容
-rw-r--r-- 1 500 500 1546722 Dec 24 03:18 bk.log
lftp bkdata@backup.work:/12.108_pg> recls -l ---也可以用这个命令recls有许多参数可用
-rw-r--r-- 1 500 500 75 Dec 24 11:18 pg.md5
-rw-r--r-- 1 500 500 1546722 Dec 24 11:18 rename_check.20151224.backup
3、上传下载
[root@mysqltest ~]# cd /home/bk_pg/ --本地目录
[root@mysqltest bk_pg]# ll
total 1524
-rw-r--r--. 1 root root 4744 Dec 24 11:19 bk.log
-rw-r--r--. 1 root root 75 Dec 24 11:19 pg.md5
-rw-r--r--. 1 root root 1546722 Dec 24 11:19 rename_check.20151224.backup
1)将本地文件上传到远端目录
lftp bkdata@backup.work:~> lcd /home/bk_pg ---切换本地目录(存放了备份文件)
lcd ok, local cwd=/home/bk_pg
lftp bkdata@backup.work:/> cd 12.108_pg ---切换远端目录(我将要存放上传到的位置)
cd ok, cwd=/12.108_pg
lftp bkdata@backup.work:/12.108_pg> put pg.md5 ---上传
lftp bkdata@backup.work:/12.108_pg> put rename_check.20151224.backup
lftp bkdata@backup.work:/12.108_pg> ls
-rw-r--r-- 1 500 500 75 Dec 24 03:18 pg.md5
-rw-r--r-- 1 500 500 1546722 Dec 24 03:18 rename_check.20151224.backup ---成功上传
2)将远端目录文件下载到本地
get rfile -o lfile
抓 rfile 到本地改名为 lfile
-c 为续传
-E 抓档完成后, 将远端的档案砍了
-a 为 ascii mode, 预设为 binary mode
-O 设定 base directory 为本地端放档案的目录
lftp bkdata@backup.work:/12.108_pg> lcd /tmp
lcd ok, local cwd=/tmp
lftp bkdata@backup.work:/12.108_pg> get pg.md5
75 bytes transferred
查看:
[root@mysqltest tmp]# ll
-rw-r--r--. 1 root root 75 Dec 24 11:18 pg.md5
lftp bkdata@backup.work:/12.108_pg> get pg.md5 -o pos.md5 --改名了
75 bytes transferred
3)批量上传
lftp bkdata@backup.work:/12.108_pg> mput *
4)批量下载
lftp bkdata@backup.work:/12.108_pg> mget *
1546797 bytes transferred
Total 2 files transferred
5)下载整个目录
mirror OPTS remote [local]
下载整个目录(楼上的 get 只能用来抓档案)
-c 续传
-e 这个要小心一些, 比较远端和本地端的档案, 假如远端没有的, 就将本地端的档案删除, 也就是将本地端和远端资料同步。
-R 上传整个目录
-n 只下载较新的档案
-r 不用递回到目录中
--parallel=n 同时下载 n 个档案(预设一次只下载一个)
4、多任务处理
ctrl+z 将当前进行的任务移交后台处理
wait 将后台处理任务调至前台查看
jobs 查看后台进行的任务列表
kill all 或者 job_no 删除所有任务 或 指定的任务
将任务加入任务列表
queue get 123.txt
queue put 234.txt
queue mirror aaa/
queue 查看任务列表
jobs 查看后台任务列表 -v 显示详细信息
queue start 开始任务列表
queue stop 停止任务列表
lftp bkdata@backup.work:/12.108_pg> queue get pg.md5 --加入任务
lftp bkdata@backup.work:/12.108_pg> queue start --启动任务
[0] Done (queue (ftp://bkdata:tinapwd@backup.work:21))
[1] Done (queue (ftp://bkdata:tinapwd@backup.work:21))
5、计算大小
lftp bkdata@backup.work:/12.108_pg> du -sh
1.5M .
lftp bkdata@backup.work:/12.108_pg>
6、其他相关
find ./bk "*.txt" 查看bk目录下所有txt文件
mv 将远端的文件改名
rm 删除远端文件
mkdir -p 建立远端目录
rmdir -f 删除远端目录
source 读取文件,并执行文件内的命令
debug -o file 将输出导向到file
exit 退出
history
pwd 显示远端所在目录
set 设置变量
如:
set ftp:charset utf8 --远端
set file:charset utf8 --本地
7、设置被动/非被动模式
set ftp:passive-mode 1 ## 1 被动 0非主动
8、上传脚本举例
[root@mysqltest tina_shell]# cat sc.sh
#!/bin/sh
bkdir=/home/bk_pg
day=`date +"%Y%m%d"`
lftp backup.work <<END
user bkdata tinapwd
lcd $bkdir
cd 12.108_pg
mput *.$day.backup
put pg.md5
exit
END
lftp命令
2021-10-21 10:30:23