ftp服务器

    xiaoxiao2023-11-14  158

     

    //---------------------------------------第一部分----------------  prompt ----------------------------------------//

    linux系统ftp命令 :  (重点部分, 在最下面)

    先来一段简单的ftp 下载脚本

    ftp -i -n<<EOF

    open 14.2.33.211

    user etl etl

    cd /etlfile/ftpfile

    lcd /etlfile/getfile

    binary

    prompt

    mget *

    prompt

    close

    bye

    EOF

    ftp安装部分,操作步骤如下:

    ..........................................................

    ............................................................

    ..............................................................

     

    //---------------------------------------第二部分----------------  prompt ----------------------------------------//

    https://blog.csdn.net/kevinhg/article/details/7575691

    ftp命令详解 :

    一、ftp的get命令和mget命令有何不同?

    get一次只下载一个文件;mget一次可以下载多个文件,而且支持通配符,需要注意的是在mget的时侯,需要对每一个文件都选择y/n,如果想不交互的下载全部的文件,可以先用prompt命令关掉交互方式(关闭:prompt off;打开:prompt on)。

    二、FTP使用什么命令来定位服务器与本地硬盘的路径?

    ftp中用lcd切换本地路径,用cd切换远程服务器的路径。常用到的命令如下:

    cd目录名(进入服务器目录)    lcd目录名(进入本机目录)

    cd \(退到服务器根目录)      lcd \(退到本机根目录)

    cd ..(退回到上一级目录)     lcd ..(退回到上一级目录)

    三、!命令有何作用?

    执行本地shell命令,如:!dir(显示本机当亲目录内容),如果不加!如:dir(显示服务器当前目录内容)

    四、ftp命令支持“含有空格”的文件夹/文件名吗?

    支持,只要在引用时加上双引号“”即可!

    五、下面是命令行方式使用FTP的实战练习

    假设有一ftp服务器:ftp.test.com,用户名:username,密码:user1234。在本地电脑D:盘创建一个文件夹“qint”。将要上传的文件复制到D:\qint里。通过FTP命令将文件从本地上传,从服务器下载的步骤如下:

    1、“开始”→“运行”→输入“FTP”

    2、open ftp.test.com

    注意:这一步可以与第一步合并,在“运行”里直接输入:ftp ftp.test.com。如果你的FTP服务器不是用的21默认端口,假如端口是2121,那么此步的命令应在后面空格加2121,即“open ftp.test.com

    3、username 注意:提示你输入用户名

    4、user1234 注意:提示你输入密码,密码不回显,打完密码后回车即可。如果你的密码输入错误,将不会提示你重新输入,这时你要键入“user”命令,将会出现第三步,你可以重新输入用户名和密码。

    5、dir 注意:你成功登陆后就可以用dir查看命令查看FTP服务器中的文件及目录,用ls命令只可以查看文件。

    6、mkdir qint 注意:在FTP服务器上根目录下建立qint目录

    7、cd qint 注意:进入目录qint,用“cd 你的目录名”可以进入当前目录的下一级目录,这跟DOS一样。

    8、bin

    注意:采用二进制传输。如果你要上传下载,这一步很重要,不先执行这个命令,上传下载会很慢。大多数系统(包括UNIX系统)只有两种模式:文本模式和二进制模式。文本传输器使用ASCII字符,并由回车键和换行符分开,而二进制不用转换或格式化就可传字符,二进制模式比文本模式更快,并且可以传输所有ASCII值,所以系统管理员一般将FTP设置成二进制模式。一般来说,我们最好都用binary方式,这样可以保证不出错。

    9、lcd d:\qint

    注意:定位本地默认文件夹,在前面已事先在D:盘创建

    10、!dir

    注意:查看本地文件夹中的文件及目录

    11、put i001.jpg 注意:将当前目录(d:\qint)中的文件i001.jpg上传到FTP服务器默认目录。可以用“mput *.*”将所有文件上传到FTP服务器上。

    12、get d123.jpg 注意:将FTP服务器默认目录中的文件d123.jpg下载到当前目录下(d:\qint)。可以用“mget *.*”将所有文件下载到d:\qint

    13、delete *.*

    注意:删除服务器对应目录qint中的所有文件。

    14、cd ..

    注意:返回至上一级目录,即根目录。返回上一级目录用“cd ..”要注意,中间有空格。返回根目录用“cd \”。

    15、mrdir qint

    注意:删除目录qint。删除目录,在此目录下不能有文件及目录,不然将无法删除。

    16、bye

    注意:退出FTP服务器。

    上传下载时特别要注意服务器及本地电脑的当前目录,文件是从哪里到哪里的问题。查看FTP服务器的当前目录命令为pwd,可以用cd命令定位服务器的目录。可以用lcd命令定位本地电脑的目录。

    以上实例应用到了采用FTP命令行方式上传下载的最常用命令,你还可以用命令“?”查看更多的命令。

     

    //---------------------------------------第三部分----------------  prompt ----------------------------------------//

    关闭ftp中mput的上传确认提示 : prompt

    https://blog.csdn.net/zjjyliuweijie/article/details/7100680

    今天因工作需要使用ftp上传一大批文件,是将一整个目录下的文件都上传到服务器,就用mput命令,默认的情况下,每上传一个文件都输入一下y来确认,没有时间进行这样搞,需要在命令模式,并登录系统后用prompt来关闭它:

    ftp>prompt  切换交谈式指令(使用mput/mget 时不用每个文件皆询问yes/no)

    这样就可以使用 mput *让它慢慢上传…喝茶去…    

    注:

    ftp> help prompt prompt          force interactive prompting on multiple commands

    ftp> prompt Interactive mode off. ftp> prompt Interactive mode on. ftp> prompt Interactive mode off. ftp>

    从上例也可以看出不任何参数就可以进行开发或关闭的设备,每执行一次,状态就会改变。

     

    //---------------------------------------第一部分----------------  prompt ----------------------------------------//

    linux系统ftp命令 :

    https://www.cnblogs.com/xiaojianblogs/p/6216445.html

    先来一段简单的ftp 下载脚本

    ftp -i -n<<EOF

    open 14.2.33.211

    user etl etl

    cd /etlfile/ftpfile

    lcd /etlfile/getfile

    binary

    prompt

    mget *

    prompt

    close

    bye

    EOF

    ftp安装部分,操作步骤如下:

    可以使用yum命令直接安装ftp

    # yum install vsftpd

    ftp服务的开启与关闭命令:

    开启:# service vsftpd start

    关闭:# service vsftpd stop

    安装成功后,可以在本地使用ftp软件连接,默认账号是虚拟机的账号和密码。

    第一次安装,开启后请重启下ftp服务service vsftpd restart(若防火墙没关闭,请关闭防火墙)

     

    有关FTP(客户端,服务器搭建这里不讲)有很多,大体分为命令行和GUI图形界面的软件。

    1,图形界面的有

    gftp

    gnome下ftp客户端

    crossftp

    基于Java的稳定ftp客户端和同步工具。优良的中文/Unicode支持。

    Kftpgrabber

    KDE下ftp客户端,支持编码选择。对中文支持较好

    filezilla

    对中文支持好

    krusader

    也可以通过浏览器输入ftp://ip使用

    如果有喜欢的可以通过apt-get 或者 aptitude 安装。

    2,CLI(命令行)主要有ftp 和 lftp 

    (1)ftp

    1. 连接ftp服务器

      格式:ftp [hostname| ip-address]

      a)在linux命令行下输入:ftp 10.18.34.115 

      b)服务器询问你用户名和口令,分别输入yint和相应密码,待认证通过即可。

     

        或者用下面的格式  

       ftp - -i  -n  IP_ADDRESS

      user USERNAME PASSWORD

     

        比如:

        ftp -i -n 172.17.17.17

        user  PUB    123456

     

    也可以自己写个脚本自动登录。

     

     

    cyq@cyq-desktop:~/桌面/shell$ cat ftp.sh

    #!/bin/sh

    ftp -i -n  172.17.17.17

    << !

    user  PUB    123456

    !

     

     

    这样就可以自动登录了。

     

      2. 下载文件

      下载文件通常用get和mget这两条命令。

      a) get 

      格式:get [remote-file] [local-file]

      将文件从远端主机中传送至本地主机中.

      如要获取服务器上E:/rose/1.bmp,则

      ftp> get /rose/1.bmp 1.bmp (回车)

      b) mget      

      格式:mget [remote-files]

      从远端主机接收一批文件至本地主机.

      如要获取服务器上E:/rose/下的所有文件,则

      ftp> cd /rose

      ftp> mget *.* (回车)

      注意:文件都下载到了linux主机的当前目录下。比如,在 /root/yint下运行的ftp命令,则文件都下载到了/root/yint下。

      3.上传文件

      a) put

      格式:put local-file [remote-file]

      将本地一个文件传送至远端主机中.

      如要把本地的1.bmp传送到远端主机E:/rose,并改名为333.bmp

      ftp> put 1.bmp /rose/333.bmp (回车)

      b) mput

      格式:mput local-files

      将本地主机中一批文件传送至远端主机.

      如要把本地当前目录下所有bmp文件上传到服务器E:/rose 下

      ftp> cd /rose (回车)

      ftp> mput *.bmp (回车)

      注意:上传文件都来自于主机的当前目录下。比如,在 /root/yint下运行的ftp命令,则只有在/root/yint下的文件linux才会上传到服务器E:/rose 下。

      4. 断开连接

      bye:中断与服务器的连接。

      ftp> bye (回车)

    (2)lftp

    在用lftp访问国内一些ftp服务器时,往往看到的中文是乱码,这是由于服务器和本地编码不一致造成的。

    解决办法:

    在主目录下新建一个文件~/.lftprc或者~/.lftp/rc

    比如我在终端中输入:

    gedit ~/.lftprc  #在当前目录下建立.lftprc文件

    然后在弹出的对话框中输入以下内容:

    debug 3

    set ftp:charset GBK

    set file:charset UTF-8

    #set ftp:passtive-mode no

    #alias utf8 " set ftp:charset UTF-8"

    #alias gbk " set ftp:charset GBK"

     

    上面的这几行的意思是

    设置本地和ftp服务器的编码方式

    alias 是使用别名命令

    如果对于经常使用不同编码的 ftp server 的朋友,或经常使用不同的选项的,可以设置一些别名,这样会方便很多。  比如:

    我经常访问 gbk 编码的 ftp, 还有 utf8 编码的,那么我在 ~/.lftp 中这样写 

    代码:

    alias   gbk  set ftp:charset gbk; set file:charset UTF-8 alias   utf8 set ftp:charset UTF-8; set file:charset UTF-8

     

    那么当我访问一个 utf8 站点的时候,如果发现乱码,只要在 lftp 的命令提示符号下面输入 utf8 就可以将编码调整正常。同理,如果访问 gbk 的发现乱码就输入 gbk, 马上正常。

     

    下面讲解使用lftp

    1、登录ftp

    代码:

    lftp 用户名:密码@ftp地址:传送端口(默认21)

    例如: $ lftp test:123456@172.17.17.17

        

    也可以先不带用户名登录,然后在接口界面下用login命令来用指定账号登录,密码不显示。

    lftp user@site:port

    例如:$ lftp test@172.17.17.17

     

          口令: 

    然后就进入了。(这里输入的口令是密码,linux下密码不显示)

    2、查看文件与改变目录

    代码:

    ls cd 对应ftp目录

     

    在lftp终端中,前面带一个l的命令例如lcd,指的是local,就是在本机的操作,而对应的没有这个l的,都是对ftp site的操作。还有就是要执行本地终端命令,也可以用前面带一个!的方式。这样,配合起来,终端,本地的操作都很放遍。 例如,查看ftp上所有的以mp3为扩展名的文件:

    代码:

    find . -name "*.mp3"

     

    代码:

    lftp test@172.17.17.17:/> lcd

     

    lcd 成功, 本地目录=/home/cyq

     

    lftp test@172.17.17.17:/> 

     

     

    3、下载 get当然是可以的,还可以

    代码:

    mget -c *.pdf

     

    把所有的pdf文件以允许断点续传的方式下载。m代表multi

    代码:

    mirror aaa/

     

    将aaa目录整个的下载下来,子目录也会自动复制

    代码:

    pget -c -n 10 file.dat

     

    以最多10个线程以允许断点续传的方式下载file.dat 可以通过设置pget:default-n的值而使用默认值。

     

    4、上传 同样的put,mput,都是对文件的操作,和下载类似。

    代码:

    mirror -R 本地目录名

     

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

     

    5、模式设置。

    代码:

    set ftp:charset gbk

     

    远程ftp site用gbk编码,对应的要设置为utf8,只要替换gbk为utf8即可。

    代码:

    set file:charset utf8

     

    本地的charset设定为utf8,如果你是gbk,相应改掉。

     

    代码:

    set ftp:passive-mode 1

     

    使用被动模式登录,有些site要求必须用被动模式或者主动模式才可以登录,这个开关就是设置这个的。0代表不用被动模式。

     

    6、书签 其实命令行也可以有书签,在lftp终端提示符下:

    代码:

    bookmark add ustc

     

    就可以把当前正在浏览的ftp site用ustc作为标签储存起来。以后在shell终端下,直接

    代码:

    lftp ustc

     

    就可以自动填好用户名,密码,进入对应的目录了。

     

    代码:

    bookmark edit 

     

    会调用编辑器手动修改书签。当然,也可以看到,这个书签其实就是个简单的文本文件。密码,用户名都可以看到。 

     

    7、配置文件  /etc/lftp.conf  一般,我会添加这几行: 

    引用:

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

     

    这样,就不用每次进入都要打命令了。其他的set 可以自己tab然后help 来看。 

     

    下面是常用命令

    ls 

    显示远端文件列表(ils 显示本地文件列表)。# l 的意思就是local ils比较特殊

    cd 

    切换远端目录(lcd 切换本地目录)。 

    get

    下载远端文件。 

    mget

    下载远端文件(可以用通配符也就是 *)。 

    pget

    使用多个线程来下载远端文件, 预设为五个。 

    mirror

    下载/上传(mirror -R)/同步 整个目录。 

    put

    上传文件。 

    mput

    上传多个文件(支持通配符)。 

    mv

    移动远端文件(远端文件改名)。 

    rm

    删除远端文件。 

    参数-r,递归删除文件夹 

    mrm

    删除多个远端文件(支持通配符)。 

    mkdir

    建立远端目录。 

    rmdir

    删除远端目录。 

    pwd

    显示目前远端所在目录(lpwd 显示本地目录)。 

    du

    计算远端目录的大小 

    set net:limit-rate 10000,10000 

    限制上传下载各为10KB/s 

    set ftp:charset gbk

    设置远程ftp site用gbk编码 

    !

    执行本地 shell的命令(由于lftp 没有 lls, 故可用 !ls 来替代) 

    lcd

    切换本地目录 

    lpwd

    显示本地目录 

    alias

    定义别名 

    bookmark

    设定书签。 

    exit

    退出ftp 

     

    最新回复(0)