今天需要从WIN服务器拷贝文件到CENTOS服务器,只能用FTP,默认想用ftp命令,结果发现不能全部下载:
1 2 3 |
yum install ftp #登录ftp后 ftp>mget * |
只把远程目录当前的文件下载了,文件夹都没有下载,然后找到了lftp命令的mirror可以达到要求,相当于镜像,还可以同步删除远程不存在本地存在的文件或者是增量更新(具体的看mirror参数)
1 2 3 4 |
yum install lftp #lftp登录后 #-c是断点续传,--parallel=10是10并发多线程,后面不写目录就是当前远程目录拉取到当前本地目录 lftp username@X.X.X.X>mirror -c --parallel=10 |
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 |
lftp的mirror功能介绍: 官方介绍如下:Mirror specified remote directory to local directory 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 不包括匹配的文件 (只能使用一次) --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 注意: 当使用 -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 |