lftp是linux中一款ftp服务器相比windows中的ftp显得要复杂不少了,下面我来总结一下lftp文件上传,文件下载,及文件查找等等相关命令吧。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
lftp连接的几种方法,最常用的是lftp name@site,这样可以不用明文输入密码。
1、lftp name@site 回车 输入密码
2、lftp name:password@site 回车
3、lftp site 回车login 用户名 密码
4、lftp 回车 open site 回车 login 用户名 密码
lftp上传文件命令
上传单个文件
lftp webmaster@phpyuandi.com@115.47.192.146:/> put test.txt ./
put: /root/Desktop/new/test: Is a directory
多个文件上传
lftp webmaster@phpyuandi.com@115.47.192.146:/> mput *.txt ./
整站上传
lftp webmaster@phpyuandi.com@115.47.192.146:/> mirror -R test ./test
Total: 1 directory, 2 files, 0 symlinks
New: 2 files, 0 symlinks
lftp下载文件命令
get下载单个文件
lftp webmaster@phpyuandi.com@115.47.192.146:/> get html.php
8473 bytes transferred
选择某个目录下某种扩展名的下载

lftp webmaster@phpyuandi.com@115.47.192.146:/你的目录> mget *.php
[0] mget *.php &
`image_class.php' at 0 (0%) [Making data connection...]
mget
断点续传功能
lftp webmaster@phpyuandi.com@115.47.192.146:/> mget -c ./ 你的目录/*.*
mget: /root/Desktop/new: Is a directory
[0] mget -c ./ 你的目录/*.* &
`你的目录/business_edit.php' at 1126 (100%) [Making data connection...]
下载整个站点
lftp webmaster@phpyuandi.com@115.47.192.146:/> mirror /
[0] mirror / &
下载整个目录
lftp webmaster@phpyuandi.com@115.47.192.146:/> mirror 你的目录/
[1] mirror 你的目录/ &
断点续传整个目录
lftp webmaster@phpyuandi.com@115.47.192.146:/> mget -c 你的目录/*
[0] mget -c 你的目录/* &
`你的目录/info_class.php' at 0 (0%) [Waiting for response...]
lftp查找文件命令
ls *.php 查找当前目录的php文件
lftp webmaster@phpyuandi.com@115.47.192.146:/> ls *.php
total 16
-rw------- 1 www www 2037 Nov 24 07:50 cai.php
-rw-r--r-- 1 www www 8473 Oct 25 07:52 html.php
ls ./admin/ 查找admin目录下的文件
lftp webmaster@phpyuandi.com@115.47.192.146:/> ls ./admin/
total 444
-rw-r--r-- 1 www www 611 Aug 2 08:46 application.php
-rw-r--r-- 1 www www 391 Aug 2 08:47 application_info.php
-rw-r--r-- 1 www www 858 Aug 6 08:00 banner.php
-rw-r--r-- 1 www www 650 Aug 2 08:45 banner_add.php
-rw-r--r-- 1 www www 1026 Aug 2 08:45 banner_edit.php
-rw-r--r-- 1 www www 1434 Aug 6 08:03 business.php
-rw-r--r-- 1 www www 788 Aug 3 10:01 business_add.php
-rw-r--r-- 1 www www 277 Aug 3 10:01 business_bigclass_add.php
-rw-r--r-- 1 www www 473 Aug 3 10:00 business_bigclass_edit.php
-rw-r--r-- 1 www www 484 Aug 3 10:00 business_class.php
-rw-r--r-- 1 www www 234 Aug 3 09:59 business_class_del.php
-rw-r--r-- 1 www www 1126 Aug 3 09:59 business_edit.php
-rw-r--r-- 1 www www 759 Aug 3 09:58 business_smallclass_add.php
-rw-r--r-- 1 www www 871 Aug 3 10:10 business_smallclass_edit.php
-rw-r--r-- 1 www www 44402 Aug 10 2011 cai.php
-rw-r--r-- 1 www www 930 Nov 11 07:59 check_login.php
drwxr-xr-x 2 www www 4096 Aug 12 10:09 css
ls ./admin/year*.php 查找admin目录下包含year的php文件
lftp webmaster@phpyuandi.com@115.47.192.146:/> ls ./admin/year*.php
total 12
-rw-r--r-- 1 www www 651 Aug 6 07:57 year.php
-rw-r--r-- 1 www www 401 Jul 28 09:29 year_add.php
-rw-r--r-- 1 www www 531 Aug 4 2011 year_edit.php

常用命令
在终端运行
man lftp
或登录ftp后输入
help
就可以看到命令列表
下面我们看一下lftp常用的命令:
ls
显示远端文件列表(!ls 显示本地文件列表)。
cd
切换远端目录(lcd 切换本地目录)。
get
下载远端文件。
mget
下载远端文件(可以用通配符也就是 *)。
pget
使用多个线程来下载远端文件, 预设为五个。
mirror
下载/上传(mirror -R)/同步 整个目录。
put
上传文件。
mput
上传多个文件(支持通配符)。
mv
移动远端文件(远端文件改名)。
rm
删除远端文件。
mrm
删除多个远端文件(支持通配符)。
mkdir
建立远端目录。
rmdir
删除远端目录。
pwd
显示目前远端所在目录(lpwd 显示本地目录)。
du
计算远端目录的大小
!
执行本地 shell的命令(由于lftp 没有 lls, 故可用 !ls 来替代)
lcd
切换本地目录
lpwd
显示本地目录
alias
定义别名
bookmark
设定书签。
exit
退出ftp

同步ftp文件脚本示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
#SFTP配置信息
#IP
IP=192.168.1.1
#端口
PORT=10
#用户名
USER=nmk
#密码
PASSWORD=nmk0718

echo "开始执行定时任务+ `date +"%F %T"`" >> log.txt
lftp -u ${USER},${PASSWORD} ftp://${IP}:${PORT} <<EOF
mirror -R jiapeng/ ./
by
EOF
echo "执行定时任务完成+ `date +"%F %T"`" >> log.txt