lftp的 mirror功能 详细介绍

  1. 语法和常用参数

lftp(选项)(参数)

参数为要访问的站点的ip地址或者域名。

-f:指定lftp指令要执行的脚本文件;
-c:执行指定的命令后退出;
--help:显示帮助信息;
--version:显示命令的版本号。

lftp登录

lftp 用户名:密码@ftp地址:传送端口(默认21)
#在服务端未进行一些限制设置的时候可以直接通过ip进行登录访问

mget -c *.pdf 
#把所有的pdf文件以允许断点续传的方式下载。
mirror aaa/ 
#将aaa目录整个的下载下来,子目录也会自动复制。
pget -c -n 10 file.dat 
#以最多10个线程以允许断点续传的方式下载file.dat,可以通过设置pget:default-n的值而使用默认值

文件上传 
同样的put、mput都是对文件的操作,和下载类似;也可以使用mirror

mirror -R 本地目录名
#将本地目录以迭代(包括子目录)的方式反向上传到ftp site。

配置文件

vim /etc/lftp.conf 
一般,添加以下几行:

 set ftp:charset gbk
 set file:charset utf8
 set pget:default-n 5 


mirror参数:
mirror [OPTS] [remote [local]]
把指定的远程目录镜像到本地
-c, --continue 如果可能, 继续一个镜像任务。
-e, --delete 如果远程目录下已经没有某个文件,而本地有,则删除这个文件。
    --delete-first 在传输新文件之前先删除旧的文件
-s, --allow-suid 根据远程站点设置相应的 suid/sgid 位
    --allow-chown 改变文件的属主和属组
    --ignore-time 通过实践判断是否下载该文件 
-n, --only-newer 只下载新的文件 (-c 没有作用)
-r, --no-recursion 不下载子目录
-p, --no-perms 不设置文件权限
    --no-umask 不在文件上使用umask
-R, --reverse 反向镜像 (上传文件),作用类似:mirror [OPTS] [local [remote]]
-L, --dereference 下载符号链接指向的文件
-N, --newer-than FILE 只下载比文件 FILE 更新的文件
-i RX, --include RX 包括匹配的文件 (只能使用一次) RX是括展的正则表达式
-x RX, --exclude RX 不包括匹配的文件 (只能使用一次)
--exculde: 不包含某个目录。
--parallel=3  设置多线程传输
-t Nx, --time-prec Nx 设置时间精度为 N 秒 (x=s) 分钟 (x=m)
小时 (x=h) 或者天 (x=d)
默认值 - 12 小时
-v, --verbose 显示详细的信息
    --log=FILE 将执行过的命令写入日志文件<FILE>
    --script=FILE 把命令写入脚本文件但不执行
    --just-print, --dry-run 同 --script=<>FILE

排除 参数说明:

-x RX, --exclude=RX exclude matching files
-X GP, --exclude-glob=GP exclude matching files
-n, --only-newer Only new matching files

略过指定目录:
mirror --exclude logs/ --exclude reports/

略过符合模式的档案:
mirror --exclude-glob *.cvs

注意:
   当使用 -R 参数时,第一个目录为本地目录,第二个为远程目录
   如果第二项没有填写,则采用第一个个目录的名称
   如果两项都没填写,则采用当前的本地和远程目录


lftp的-e选项,把命令直接接在lftp之后:
lftp -u username,password -e "mirror -e -n -v remote local" ftpIP
也可以用at选项指定备份的时间:这样每天1点就会执行备份任务。
lftp at 01:00 -u username,password -e "mirror -e -n remote local" ftpIP

标签: none

评论已关闭