用户操作
[即时聊天] [发私信] [加为好友]
白宇ID:bekars
327631次访问,排名170,好友0人,关注者4人。
bekars的文章
原创 185 篇
翻译 0 篇
转载 157 篇
评论 52 篇
bekars的公告
我的淘宝小店:http://shop33320596.taobao.com/ 主营各类Linux发行版和行业软件
Gold Price per Gram in China Yuan Renminbi Gold Price per ounce in United States Dollars
最近评论
bluehouse1985:Linux 环境下的多核调试
— Intel + Totalview 强强联合!
目前,在软件开发行业,各种性能优异的调试工具层出不穷。但是,它们中的绝大部分都只支持windows环境。即使能支持linux平台,操作起来也很不方便。因此,对于长期在linux上编写程序的开发人员来说,如何调试就成了一个令人头痛的问题!Intel软件 和 Total……
metababy:很好,受用
qutanzi:
thw01:建议上面的这位要是公司有熟悉嵌入式系统的人,可以买便宜的。如果一个人研究,没人指点,最好买贵点的。毕竟贵点的,资料齐全,软件齐全。
szq2k08:太好了!
文章分类
收藏
    相册
    My Photo
    Linux Power Link
    Debian Apt-get Search
    Debian WiKi
    Debian学习小组|Debian.linuxsir.org
    DENX ELDK
    Gentoo Portage File Search
    Gentoo WiKi
    Gentoo中文用户|Gentoo.linuxsir.org
    Gentoo官方中文论坛
    IPCOP
    Linux netfilter Hacking HOWTO
    Linuxsir.Org
    MIZI Linux
    SnapGear Embedded Linux
    中国Linux公社
    中国Linux论坛
    元器件手册
    My Links
    ppstream
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 FTP使用技巧收藏

    新一篇: Linux下的内存泄露检测工具 | 旧一篇: 01.26.2005 中科院林大打球日记

            FTP(文件传输)和E-mail(电子邮件)、Telnet(远程登录)一样,是Internet的三大主要功能之一。因为使用频繁,用户往往会遇到各种各样的问题,合理利用FTP命令的初始化文件.netrc,使运行FTP后自动执行某些FTP的内部命令,可有效地克服各种使用中的不便,极大地方便FTP的使用者。

    ·netrc中应包含的基本命令

     FTP中有几十个命令,在.netrc中应该设置的大致有如下几条:
     1.default loginpassword
      在Internet中,存在大量的匿名ftp帐户,用户在不同的主机间频繁登录anonymous帐户,输入自
      己的电子邮件地址作为口令,这种输入极其繁琐,完全有必要利用.netrc文件,在进入ftp时自动
      完成该过程。
     2.binary
      许多用户在下载大量文件之后才意识到下载的文件是二进制文件,而自己却是使用ascii方式传
      输,使下载文件无法使用,做了许多无用功。在.netrc文件中提前将传输方式设置为binary,完全
      可避免出现上述情况。
     3.runique
      使用Internet的用户都知道,在浩如烟海的文件中,有大量同名文件,如readme、index等,如果
      将同名文件下载到同一目录,则新传的文件会覆盖原同名文件。为了使具有潜在重要性的文件不
      至于被意外覆盖,也需要在.netrc文件中,设置runique参数防止上述错误。
     4.prompt off
      使用ftp时,经常会用到mget或其它需要确认的ftp命令,将此确认过程取消,可大大方便使用者。
     5.hash on
      ftp中的hash命令,使得在进行文件传输时,每传输1千字节,在屏幕上显示一个"#"号,用户通过观
      看屏幕上的"#"号,可以很直观地看到传输速度的快慢,以及文件的传输完成情况,以决定进一步的
      操作。
     6.idle 7200
      目前国内的Internet专线速率普遍偏低,用户数却在急剧膨胀,所以用ftp传输销大一些的文件
      时,经常会因为线路拥塞而断线,致使ftp进程中断,为了减少因断线而反复登录的次数,需将idle
      命令的参数设置为最大(一般为7200秒)。
     7.macdef
      macdef定义一个宏,macro_name为宏定义的名称。在macdef行下,可输入任何有效的ftp命令,并
      以空行结束宏定义,执行时只需在宏名前加"$"号即可。如果宏名定义为init,则该宏命令在启动
      ftp后自动加以执行,无需用户输入$ macro_name。

    ·netrc的使用举例

     1.用vi编辑器先编辑一个如下的文件:
      default login anonymous password user@my.site
      macdef init
      binary  .
      runique .
      hash on .
      prompt off
      idle 7200
      (空行)
      第1行意为缺省情况下,进入anonymous帐户,并以自己的电子邮件地址为口令;第2行至第8行定义
      了宏init,该宏中的所有5条命令将在进入ftp环境后立刻执行,第8行(空行)不可省略,否则为无
      效宏定义。
     2.利用.netrc可将用户所需操作大大简化,极大地提高工作效率。如,利用archie命令查找到文件
      xplaygizmo-1.0.gz在匿名ftp主机上unsite.unc.e-du的目
      /pub/packages/solaris/freeware下,用户欲将该文件用ftp下载,只需用vi编辑器将archie的
      查找结果插入到.netrc文件空行之上,即增加下列三行:
      cd/pub/packages/solaris/freeware
      get xplaygizmo-1.0.gz
      bye
      (空行)
      运行ftp sunsite.unc.edu,即自动完成上述.netrc中的所有操作,无需任何人工干预。屏幕将
      显示类似于下面的结果:
      Connected to sunsite.unc.edu.
      220 calzone FTP server(Version wu-2.4(38)Wed 0ct 2 09:30:40 EDT 1996)ready
      331 Guest login ok,send your complete e-mail address as password.
      230.............
      230 Guest login ok,access resrictions apply.
      200 Type set to I.
      Receive unique on.
      Hash mark printing on (1024 bytes/hash mark).
      Interactive mode off.
      200 Maximum IDLE time set to 7200 seconds
      cd/pub/packages/solaris/freeware
      250 CWD command successful.
      get xplaygizmo-1.0.gz
      200 PORT command successful.
      150 Opening BINARY mode data connection for xplaygizmo-1.0.gz(8753 bytes).
      ########
      226 Transfer complete.
      8753 bytes received in 50.8 secs(0.17 Kbytes/sec)
      221 Goodbye.

      缺省时,运行ftp命令将检测用户的HOME目录中的.netrc文件,并自动加以执行,如果不想使
      用.netrc,可在ftp命令行中使用-n参数加以取消。

    在这里面有几个要点没有提到:
    1. .netrc的权限必须是600
    2.如果要制定某个ip,需要命令
     machine ip_addr
    3.宏init可以自动执行,如果要是定义其他的宏,在执行时,使用$macro_name

    machine 192.168.1.15  
    #host2为作备份用的主机名
    login local
    #local为备份主机上的一个用户
    password local  
    #local用户的口令为local
    macdef init    
    #定义一个名为init的宏,它将在自动注册进程的最后被执行
    binary
    #文件的传输方式设为二进制
    lcd /app/dump
    #进入本地工作目录/dump
    cd /dump
    #进入备份主机目录/dump
    mput     
    #将/dump目录下的所有文件传输至备份主机
    bye      
    #退出FTP会话进程
    空行


    注意
    (1) chmod 600 .netrc
    (2) 放到用户目录下
    (3) 最后bye后面有一个空行


    你的问题可以用一段code解决: 
     
    #! /usr/bin/expect 
     
    # you can pass your host name from command line 
    spawn ftp ftp.name 
    expect "Name" 
    send "anonymous\r" 
    expect "Password:" 
    send "yourname@domain\r" 
    expect "ftp>" 
    interact 
     
    如果你要error checking的化, define要个function 
    把你的function放在while loop里面就可以. 
     
    BTW: expect is tcl-based language. 


    ftp -vin<<END
    open 10.1.1.1
    user username password
    binary
    get file
    bye
    END 

     
    建了一个文件ftpget,内容为
    open 10.1.1.1
    user username password
    binary
    get file
    bye

    然后执行ftp -vin<ftpget

    发表于 @ 2005年01月27日 19:30:00|评论(loading...)|编辑

    新一篇: Linux下的内存泄露检测工具 | 旧一篇: 01.26.2005 中科院林大打球日记

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © bekars