lftp命令和ftp命令

一、简介

1、Lftp是一个基于命令行的文件传输软件(也被称为FTP客户端),由Alexander Lukyanov开发并以GNU GPL协议许可发行。除了FTP协议外,它还支持FTPS,HTTP,HTTPS,HFTP,FISH,以及SFTP等协议。这个程序还支持FXP,允许数据绕过客户端直接在两个FTP服务器之间传输。

2、它有很多很棒的高级功能,比如递归镜像整个目录树以及断点续传下载。传输任务可以安排在稍后的时间段计划执行,可以限制带宽,可以创建传输列表,还支持类似Unix shell的任务控制。客户端还可以在交互式或自动脚本里使用。

二、lftp命令使用

lftp ftp://[用户名:密码@]<FQDN>|<IP地址> [:端口]

lftp ftp://<FQDN>|<IP 地址> -p port -u 用户名,密码

help       查看全部可操作的命令

du         计算远端目录的大小 

ls         显示FTP服务器文件列表

!ls        显示本地文件列表

cd         切换远端目录

lcd        切换本地目录 

get        从FTP服务器下载单个文件到本地当前目录

mget       从FTP服务器下载多个文件到本地当前目录

pget       使用多个线程来下载远端文件

put        将单个文件上传到FTP服务器

mput       将多个文件上传到FTP服务器

mv         移动FTP服务器上的文件

rm         删除FTP服务器上的文件 (使用参数 -r 递归删除)

mrm        删除FTP服务器上的多个目录

mkdir      在FTP服务器上建立目录

rmdir      删除远端目录。 

pwd        显示日前FTP服务器所有目录

lpwd       显示本地目录

exit       退出ftp会话过程

alias      定义别名 

bookmark   设定书签
ftp使用方法
ftp [-vdng] [用户名:密码@<FQDN>]|<IP地址>|

< 主机名> <IP地址>:需要连接的FTP服务器的IP地址FQDN

-v :显示远程服务器的所有响应信息

-d :使用调试方式访问FTP服务器

-n :限制ftp的自动登录,即当登录到FTP服务器时,不自动执行  .netrc文件

进入FTP中可以可以使用的命令详解

![命令[参数]]  :在FTP客户端中执行命令

open <FQDN>|<IP地址>:打开指定的FTP服务器

bye         退出FTP会话过程

cd          目录:切换FTP服务器的当前目录。

dir         [目录][本地文件]:显示FTP服务器目录,并将结果存入本地文件

put         文件:将单个文件上传到FPT服务器

mput        将多个文件上传到FTP服务器

get         文件:从FTP服务器下载单个文件到本地当前目录

mget        文件:从FTP服务器下载多个文件到本地当前目录

delete      文件名:FTP服务器上的文件

case        在使用mget时,将远程主机文件名中的大写转为小写字母

pwd         显示 远程主机的当前工作目录。

rmdir       目录名:删除FTP服务器上的目录
三、环境准备
准备两台Centos6服务器,1台Centos7服务器
系统: Centos6.8,Centos7.3
内存:1G
cpu: 2核
IP地址: 10.0.0.22 10.0.0.23 10.0.0.41
# 安装ftp服务,在22上操作
yum -y install vsftpd
# 启动ftp服务
service vsftpd start
访问测试页面

在这里插入图片描述

在23上操作
yum -y install lftp
lftp 10.0.0.22
#  在22上操作
cd /var/ftp/
#  创建文件
touch 1.txt
# 编辑文件
vim 1.txt 
# 随便输入点内容
hello ftp!

在这里插入图片描述

# 在23上操作
[root@ localhost ~]# lftp 10.0.0.22
lftp 10.0.0.22:~> ls
-rw-r--r--    1 0        0              11 Nov 21 04:32 1.txt
drwxr-xr-x    2 0        0            4096 Mar 22  2017 pub
# 切换文件至opt目录
lftp 10.0.0.22:/> lcd /opt
lcd ok, local cwd=/opt
# 查看路径
lftp 10.0.0.22:/> lpwd 
/opt
lftp 10.0.0.22:/> 
# 下载文件
get 1.txt 

在这里插入图片描述

# 退出当前环境
lftp 10.0.0.22:/> exit
# 进入目录查看文件是否下载过来
[root@ localhost ~]# cd /opt/
[root@ localhost opt]# ls
1.txt  rh
[root@ localhost opt]# 
[root@ localhost opt]# lftp 10.0.0.22
lftp 10.0.0.22:~> lcd /usr/local/src/
lcd ok, local cwd=/usr/local/src
lftp 10.0.0.22:~> get 1.txt 
11 bytes transferred
lftp 10.0.0.22:/> 

在开一个23的窗口

# 安装expect服务
yum -y install expect
# 创建文件夹
mkdir ftp
# 进入目录
cd ftp/
# 编辑脚本文件
vim ftp.sh
#!/usr/bin/expect
set timeout 20
spawn lftp 10.0.0.22
expect "~>" {send "lcd /backup/\r"}
expect "~>" {send "get 1.txt\r"}
expect "transferred" {send "exit\r"}
expect eof
# 添加执行权限
chmod +x ftp.sh 
# 执行脚本
./ftp.sh 

在这里插入图片描述

这种是在shell环境下执行的脚本

在这里插入图片描述

# 删除文件夹
[root@ localhost ~]# rm -rf /backup
# 执行脚本
[root@ localhost ~]# sh ftp/ftp.sh 
spawn lftp 10.0.0.22
lftp 10.0.0.22:~> lcd /backup/
lcd ok, local cwd=/backup
lftp 10.0.0.22:~> get 1.txt
11 bytes transferred          
lftp 10.0.0.22:/> exit
[root@ localhost ~]# ls /backup/
1.txt
[root@ localhost ~]# 
# 编辑脚本
vim dl.sh
# 添加如下内容
#!/bin/bash
for i in `cat iplist`
do
/usr/bin/expect << EOF
spawn ssh root@$i  $1
expect {
       "yes/no" {send "yes\r";exp_continue}
       "password:" {send "123456\r"}
}
expect eof
EOF
done
# 给脚本加执行权限
chmod +x dl.sh 
# 执行脚本,查看各个服务器root目录下的文件
./dl.sh 'ls /root/'

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 执行脚本并进入目录创建文件
./dl.sh 'cd /opt/ && touch wj.conf'

查看是否在其它服务器上创建文件
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

发布了68 篇原创文章 · 获赞 24 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/aaronszm/article/details/103898193