命令行下 FTP 使用技巧

簡單介紹

網(wǎng)上有很多圖形化界面的 FTP 工具,但我的工作環(huán)境中使用了很多自動化工具必須在命令行下操作纯命,Windows 和 Linux 下都有基于命令行的 FTP 工具代态,而它們的使用方式也都大同小異绒尊,這里介紹的方法都是通用的。

使用 .netrc 配置文件進行自動化操作

.netrc 文件可以看做 FTP 工具的默認命令列表男图,當你不使用任何參數(shù)調(diào)用 FTP 命令時它會自動讀取這個文件中的內(nèi)容執(zhí)行命令,下面的就是一個簡單的例子:

在自己的home目錄下建立一個權(quán)限600(權(quán)限必須是600甜橱,少了不行逊笆,多了也不行),名為 .netrc 的文件岂傲,內(nèi)容如下:

machine 192.168.0.1 login <ftpuser> password <ftpuser_password>

這樣以后你每次 ftp 192.168.0.1 的時候系統(tǒng)都會幫你以用戶名ftpuser登錄到該服務器难裆,利用這個特征可以實現(xiàn)自動ftp。

如果想要每天5:00到192.168.0.1機器上面獲得 /test 目錄下的文件 test.txt 镊掖,可以建立一個文件 ftp_cmd乃戈,內(nèi)容為:

cd test
get test.txt
bye

然后在 Linux 系統(tǒng)中使用 crontab -e 設置定時任務:

0 5 * * * ftp 192.168.0.1 < ftp_cmd

附:.netrc 的用法

netrc 中應包含的基本命令:

FTP中有幾十個命令,在.netrc中應該設置的大致有如下幾條:

  1. default login password
    在互聯(lián)網(wǎng)中存在大量匿名ftp帳戶亩进,用戶在不同的主機間頻繁登錄anonymous帳戶偏化,輸入自己的電子郵件地址作為口令,這種輸入極其繁瑣镐侯,完全有必要利用.netrc文件在進入ftp時自動完成該過程侦讨。

  2. binary
    許多用戶在下載大量文件之后才意識到下載的文件是二進制文件驶冒,而自己卻是使用ascii方式傳輸使下載文件無法使用,做了許多無用功韵卤。在.netrc文件中提前將傳輸方式設置為binary 完全可避免出現(xiàn)上述情況骗污。

  3. runique
    在浩如煙海的文件中有大量同名文件,如readme、index等沈条,如果將同名文件下載到同一目錄則新傳的文件會覆蓋原同名文件需忿。為了使具有潛在重要性的文件不至于被意外覆蓋,也需要在.netrc文件中設置runique參數(shù)防止上述錯誤蜡歹。

  4. prompt off
    使用ftp時屋厘,經(jīng)常會用到mget或其它需要確認的ftp命令,將此確認過程取消可大大方便使用者月而。

  5. hash on
    ftp中的hash命令使得在進行文件傳輸時每傳輸1千字節(jié)就在屏幕上顯示一個"#"號,通過觀看屏幕上的"#"號可以很直觀地看到傳輸速度的快慢汗洒,以及文件的傳輸完成情況。

  6. idle 7200
    目前國內(nèi)的Internet專線速率普遍偏低父款,用戶數(shù)卻在急劇膨脹溢谤,所以用ftp傳輸銷大一些的文件時經(jīng)常會因為線路擁塞而斷線,為了減少因斷線而反復登錄的次數(shù)憨攒,需將idle命令的參數(shù)設置為最大(一般為7200秒)世杀。

  7. macdef
    macdef定義一個宏,macro_name為宏定義的名稱肝集。在macdef行下瞻坝,可輸入任何有效的ftp命令,并以空行結(jié)束宏定義杏瞻,執(zhí)行時只需在宏名前加"$"號即可湿镀。如果宏名定義為init,則該宏命令在啟動ftp后自動加以執(zhí)行伐憾,無需用戶輸入$macro_name勉痴。

在命令行下指定用戶名和密碼:

ftp://dev:abcd1234@10.208.66.10://pub/readme.txt

常用 FTP 命令列表

FTP的命令行格式為:ftp -v -d -i -n -g [主機名],各個參數(shù)含義如下:

  • -v 顯示遠程服務器的所有響應信息
  • -n 限制ftp的自動登錄树肃,不使用 .netrc 文件
  • -d 使用調(diào)試方式
  • -g 取消全局文件名

FTP使用的內(nèi)部命令如下(中括號表示可選項):

  • ![cmd[args]]
    在本地執(zhí)行交互shell蒸矛,exit回到ftp環(huán)境,如:!ls*.zip

  • $macro-name [args]
    執(zhí)行宏定義的命令列表

  • account [password]
    提供登錄遠程系統(tǒng)成功后訪問系統(tǒng)資源所需的補充口令

  • append local-file [remote-file]
    將本地文件追加到遠程系統(tǒng)主機胸嘴,若未指定遠程系統(tǒng)文件名雏掠,則使用本地文件名

  • ascii
    使用 ascii 模式傳輸

  • bell
    每個命令執(zhí)行完畢后計算機響鈴一次

  • bin
    使用二進制文件傳輸方式

  • bye
    退出ftp會話過程

  • case
    使用 mget 時將遠程主機文件名中的大寫轉(zhuǎn)為小寫字母

  • cd remote-dir
    進入遠程主機目錄

  • cdup
    進入遠程主機目錄的父目錄

  • chmod mode file-name
    將遠程主機文件file-name的存取方式設置為mode,如:chmod 777 a.out

  • close
    中斷與遠程服務器的ftp會話(與open對應)

  • cr
    使用asscii方式傳輸文件時劣像,將 \r\n 轉(zhuǎn)換為 \n

  • delete remote-file
    刪除遠程主機文件

  • debug[debug-value]
    設置調(diào)試方式乡话,顯示發(fā)送至遠程主機的每條命令,如:debug 3耳奕,若設為 0 表示取消debug

  • dir remote-dir local-file
    顯示遠程主機目錄绑青,并將結(jié)果存入本地文件

  • disconnection
    同close

  • form format
    將文件傳輸方式設置為format诬像,缺省為file方式

  • get remote-file [local-file]
    將遠程主機的文件 remote-file 傳至本地硬盤的 local-file

  • hash
    每傳輸1024字節(jié)顯示一個hash符號(#)

  • help [cmd]
    顯示ftp內(nèi)部命令cmd的幫助信息,如:help get

  • idle [seconds]
    將遠程服務器的休眠計時器設為[seconds]秒

  • image
    設置二進制傳輸方式(同binary)

  • lcd[dir]
    將本地工作目錄切換至dir

  • ls [remote-dir] [local-file]
    顯示遠程目錄remote-dir闸婴, 并存入本地文件local-file

  • macdef macro-name
    定義一個宏坏挠,遇到macdef下的空行時,宏定義結(jié)束

  • mdelete [remote-file]
    批量刪除遠程主機文件

  • mdir remote-files local-file
    與dir類似但可指定多個遠程文件邪乍,如 :mdir .o..zipoutfile

  • mget remote-files
    批量傳輸多個遠程文件

  • mkdir dir-name
    在遠程主機中建一目錄

  • mls remote-file local-file
    同nlist降狠,但可指定多個文件名

  • mode [modename]
    將文件傳輸方式設置為modename,缺省為stream方式

  • modtime file-name
    顯示遠程主機文件的最后修改時間

  • mput local-file
    將多個文件傳輸至遠程主機

  • newer file-name
    如果遠程機中 file-name 的修改時間比本地硬盤同名文件的時間更近庇楞,則重傳該文件

  • nmap [inpattern outpattern]
    設置文件名映射機制榜配, 使得文件傳輸時某些字符相互轉(zhuǎn)換, 如:nmap $1.$2.$3[$1吕晌,$2].[$2蛋褥,$3],則傳輸文件a1.a2.a3時聂使,文件名變?yōu)閍1,a2谬俄。該命令特別適用于遠程主機為非UNIX機的情況

  • ntrans [inchars] [outchars]]
    設置文件名字符的翻譯機制柏靶,如ntrans1R,則文件名LLL將變?yōu)镽RR溃论。

  • open host[port]
    建立指定ftp服務器連接屎蜓,可指定連接端口

  • passive
    進入被動傳輸模式

  • prompt
    設置多個文件傳輸時的交互提示

  • put local-file [remote-file]
    將本地文件local-file傳送至遠程主機

  • pwd
    顯示遠程主機的當前工作目錄

  • quit
    同bye,退出ftp會話

  • quote arg1钥勋,arg2...
    將參數(shù)逐字發(fā)至遠程ftp服務器炬转,如:quote syst ...

  • recv remote-file [local-file]
    同get

  • reget remote-file[local-file]
    類似于get,但若local-file存在算灸,則從上次傳輸中斷處續(xù)傳

  • rhelp [cmd-name]
    請求獲得遠程主機的幫助

  • rstatus[file-name]
    若未指定文件名扼劈,則顯示遠程主機的狀態(tài),否則顯示文件狀態(tài)

  • rename[from][to]
    更改遠程主機文件名

  • reset
    清除回答隊列

  • restart marker
    從指定的標志marker處重新開始get或put菲驴,如:restart 130

  • rmdir dir-name
    刪除遠程主機目錄

  • runique
    設置文件名唯一性規(guī)則荐吵,若文件存在,則在原文件后加后綴.1赊瞬, .2等

  • send local-file [remote-file]
    同put

  • sendport
    設置PORT命令的使用

  • site arg1先煎,arg2 ...
    將參數(shù)作為SITE命令逐字發(fā)送至遠程ftp主機

  • size file-name
    顯示遠程主機文件大小,如:site idle 7200

  • status
    顯示當前ftp狀態(tài)

  • struct [struct-name]
    將文件傳輸結(jié)構(gòu)設置為struct-name巧涧,缺省時使用stream結(jié)構(gòu)

  • system
    顯示遠程主機的操作系統(tǒng)類型薯蝎,一般會被遠程主機忽略掉這個命令

  • tenex
    將文件傳輸類型設置為TENEX機的所需的類型

  • tick
    設置傳輸時的字節(jié)計數(shù)器

  • trace
    設置包跟蹤

  • type [type-name]
    設置文件傳輸類型為type-name,缺省為ascii谤绳,type binary 設置二進制傳輸方式占锯。

  • umas k[newmask]
    將遠程服務器的缺省umask設置為newmask袒哥,如:umask 3

  • user user-name [password] [account]
    向遠程主機表明自己的身份,需要口令時烟央,必須輸入口令统诺,如:user anonymous my@email。

  • verbose
    同命令行的-v參數(shù)疑俭,即設置詳盡報告方式粮呢,ftp 服務器的所有響 應都將顯示給用戶,缺省為on.

  • ?[cmd]
    同help.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末钞艇,一起剝皮案震驚了整個濱河市啄寡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌哩照,老刑警劉巖挺物,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異飘弧,居然都是意外死亡识藤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門次伶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來痴昧,“玉大人,你說我怎么就攤上這事冠王「献” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵柱彻,是天一觀的道長豪娜。 經(jīng)常有香客問我,道長哟楷,這世上最難降的妖魔是什么瘤载? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮卖擅,結(jié)果婚禮上惕虑,老公的妹妹穿的比我還像新娘。我一直安慰自己磨镶,他們只是感情好溃蔫,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著琳猫,像睡著了一般伟叛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上脐嫂,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天统刮,我揣著相機與錄音紊遵,去河邊找鬼。 笑死侥蒙,一個胖子當著我的面吹牛暗膜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鞭衩,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼学搜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了论衍?” 一聲冷哼從身側(cè)響起瑞佩,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎坯台,沒想到半個月后炬丸,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡蜒蕾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年稠炬,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咪啡。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡首启,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瑟匆,到底是詐尸還是另有隱情闽坡,我是刑警寧澤栽惶,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布愁溜,位于F島的核電站,受9級特大地震影響外厂,放射性物質(zhì)發(fā)生泄漏冕象。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一汁蝶、第九天 我趴在偏房一處隱蔽的房頂上張望渐扮。 院中可真熱鬧,春花似錦掖棉、人聲如沸墓律。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耻讽。三九已至,卻和暖如春帕棉,著一層夾襖步出監(jiān)牢的瞬間针肥,已是汗流浹背饼记。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留慰枕,地道東北人具则。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像具帮,于是被迫代替她去往敵國和親博肋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容

  • win7 cmd管理員權(quán)限設置 net localgroup administrators 用戶名 /add 把“...
    f675b1a02698閱讀 5,134評論 0 11
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理匕坯,服務發(fā)現(xiàn)束昵,斷路器,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • 部分內(nèi)容轉(zhuǎn)載自搜狗百科 cmd是command的縮寫.即命令提示符(CMD)葛峻,是在OS / 2 锹雏, Windows...
    青冥之上閱讀 2,387評論 0 24
  • FTP服務概述 簡單FTP構(gòu)建及訪問 VSFTP服務基礎 用戶禁錮、黑白名單 FTP并發(fā)及帶寬限制 一术奖、FTP服務...
    紫_軒閱讀 7,569評論 3 25
  • Linux 后臺運行 命令后加 & 注意 如果希望關閉ssh后依然可以在后臺運行需要
    樂楽樂閱讀 257評論 0 0