lftp命令

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:[email protected]
lftp [email protected]:~>

[root@mysqltest ~]# lftp ftp://bkdata:[email protected]
lftp [email protected]:~>

[root@mysqltest ~]#lftp backup.work -u bkdata,tinapwd
lftp [email protected]:~>

[root@mysqltest ~]#lftp backup.work -p 21 -u bkdata,tinapwd
lftp [email protected]:~>

[root@mysqltest ~]# lftp
lftp :~> open backup.work
lftp backup.work:~> user bkdata tinapwd 


2、查看内容(ls)
lftp [email protected]:~> !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 [email protected]:~> cd 12.108_pg      ---进入远端目录
cd ok, cwd=/12.108_pg                
lftp [email protected]:/12.108_pg> ls       ---查看远端目录内容
-rw-r--r--    1 500      500       1546722 Dec 24 03:18 bk.log

lftp [email protected]:/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 [email protected]:~> lcd /home/bk_pg   ---切换本地目录(存放了备份文件)
lcd ok, local cwd=/home/bk_pg
lftp [email protected]:/> cd 12.108_pg      ---切换远端目录(我将要存放上传到的位置)
cd ok, cwd=/12.108_pg
lftp [email protected]:/12.108_pg> put pg.md5    ---上传
lftp [email protected]:/12.108_pg> put rename_check.20151224.backup
lftp [email protected]:/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 [email protected]:/12.108_pg> lcd /tmp
lcd ok, local cwd=/tmp
lftp [email protected]:/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 [email protected]:/12.108_pg> get pg.md5 -o pos.md5  --改名了
75 bytes transferred 


3)批量上传
lftp [email protected]:/12.108_pg> mput *


4)批量下载
lftp [email protected]:/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 [email protected]:/12.108_pg> queue get pg.md5   --加入任务
lftp [email protected]:/12.108_pg> queue start        --启动任务
[0] Done (queue (ftp://bkdata:[email protected]:21))
[1] Done (queue (ftp://bkdata:[email protected]:21))

5、计算大小
lftp [email protected]:/12.108_pg> du -sh
1.5M .
lftp [email protected]:/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

猜你喜欢

转载自906179271.iteye.com/blog/2266238