1. 程式人生 > >linux下常用檔案傳輸命令

linux下常用檔案傳輸命令

 因為工作原因,需要經常在不同的伺服器見進行檔案傳輸,特別是大檔案的傳輸,因此對linux下不同伺服器間資料傳輸命令和工具進行了研究和總結。主要是rcp,scp,rsync,ftp,sftp,lftp,wget,curl。

rcp

rcp不是一種安全的的傳輸檔案的方式,rcp通過rsh(rsh見下面)來執行遠端命令,要使用rcp必須經過一些配置,現在rcp已經被scp取代了,常用scp來進行檔案傳輸。要使用rcp,需要具備以下條件:

(1)如果系統中有/etc/hosts 檔案,應確保該檔案包含要與之進行通訊的遠端主機資訊:internet_address  official_name   alias。例如:1.186.10.***  blade1.ibm.com.cnblade

(2).rhosts 檔案:.rhosts 檔案位於遠端系統的根目錄下,其中包含本地系統的名稱和本地登入名。例如,遠端系統的 .rhosts 檔案中的項可能是:blade1 root;其中,blade1 是本地系統的名稱,root 是本地登入名。這樣,blade1 上的 root 即可在包含 .rhosts 檔案的遠端系統中來回複製檔案。

配置過程:

(1)           在雙方root使用者根目錄下建立.rhosts檔案,並將雙方的hostname加進去.在此之前應在雙方的 /etc/hosts檔案中加入對方的IP和hostname

(2)           把rsh服務啟動起來,redhat預設是不啟動的。方法:用執行ntsysv命令,在rsh選項前用空格鍵選中,確定退出。然後執行:service xinetd restart即可。如果沒有rsh,請見下面rsh部分

(3)           到/etc/pam.d/目錄下,把rsh檔案中的auth required /lib/security/pam_securetty.so一行用“#”註釋掉即可。(只有註釋掉這一行,才能用root使用者登入)

命令使用:

         rcp [options] [[[email protected]]host1:]file1 ...[[[email protected]]host2:]file2

         options:   

-r 遞迴地把源目錄中的所有內容拷貝到目的目錄中。

-p 試圖保留原始檔的修改時間和模式,忽略umask。

rsh(remote shell,它不夠安全):rsh使用條件同rcp,rsh配置過程(以root為例)

(1)   在伺服器上執行/urs/bin/ntsysv選中rexec,rlogin,rsh三項服務。

(2)   執行#/sbin/service xinetd restart啟動該三項服務。

(3)   執行echo"rexec">>/etc/securetty; echo"rlogin">>/etc/securetty;  echo"rsh">>/etc/securetty

(4)   在伺服器上執行echo"你的ip地址root">>/root/.rhosts或者echo"你的主機名root">>/root/.rhosts且確保在伺服器上的/etc/hosts中有主機名和ip地址的對映關係

(5)   到/etc/pam.d/目錄下,把rexec, rlongin, rsh檔案中的auth required /lib/security/pam_securetty.so 一行用“#”註釋掉即可。(只有註釋掉這一行,才能用root使用者登入)

(6)   rsh命令用法:rshremote-sytem-neame Linux-command,例如:rsh blade1 ls /home/root

scp

scp 命令是 SSH中最方便有用的命令了,scp就是secure copy,是用來進行遠端檔案拷貝的。資料傳輸使用 ssh,並且和ssh 使用相同的認證方式,提供相同的安全保證。 與rcp 不同的是,scp 在需要進行驗證時會要求你輸入密碼或口令。

scp [options] [本地使用者名稱@IP地址:]file1 [遠端使用者名稱 @IP 地址 :] file2

        options: 

             -v 用來顯示進度,可以用來檢視連線,認證,或是配置錯誤。

-C 使能壓縮選項。

-c 選擇使用那個加密演算法(具體對應到ssh的-c cipher-spec,這個引數值會被傳給ssh,可選擇值3des,blowfish,des),使用blowfish會快很多,可以參看man ssh 中的-c cipher-spec

-P 選擇埠

-r 遞迴拷貝整個目錄

-l 限制使用頻寬,Kbit/s

-o 指定傳給ssh的一些引數值,比如Compression=yes

-p 保留檔案的修改時間等資訊。

rsync

rsync是rcp的替代品之一,rsync 是一款高效的遠端資料備份和鏡象工具,可快速地同步多臺主機間的檔案,其具有如下特性:

l  支援連結、所有者、組資訊以及許可權資訊的拷貝;

l  通過遠端 shell(ssh, rsh)進行傳輸;

l  無須特殊許可權即可安裝使用;

l  流水線式檔案傳輸模式,檔案傳輸效率高;

l  支援匿名操作;

需要提及的是 rsync 以其優越的效能優勢區別於其它幾種 Linux 檔案傳輸方法,其同步檔案的速度相當快,這主要歸功於 rsync 所使用的傳輸演算法。簡而言之 rsync 演算法能在相當短的時間內計算出需要備份的資料,只對原始檔與目標檔案的不同之處進行傳輸,從而降低網路中傳輸的資料量,以此達到快速備份映象的目的。下面通過一典型應用場景來描述 rsync 演算法的基本原理:主機 A 與主機 B 均有對同一檔案的拷貝,使用者對主機 A 上的拷貝進行更新,主機 B 通過 rsync 演算法對更新後的檔案進行同步。以下是該演算法的實現步驟:

(1)      主機 B 將原始拷貝劃分成大小為 N 的不重合的若干塊(檔案末尾部分分塊大小可能不足 N),並對這些資料塊進行兩種不同方式的校驗:32 位的滾動弱校驗、128 位的 MD4 強校驗。弱校驗較之強校驗計算速度快。

(2)      主機 B 將每個資料塊的弱校驗、強校驗結果傳送給主機 A 。

(3)      主機 A 對更新後的檔案拷貝中的每個長度為 N 的資料塊進行弱校驗並與從 B 接收到的弱校驗值進行匹配,若相同再進行強校驗匹配。由於弱校驗的滾動特性可以快速地篩選出需要進行同步的資料塊。該演算法的運算量主要集中在主機 A 上。

  通過上述計算,主機 A 將檔案的不同部分發送給 B,B 接收到兩個拷貝之間的不同之處,從而同步得到更新後的檔案。通過如上方式,rsync 避免了對相同資料的傳輸,減少了網路頻寬的浪費。在時間上整個過程中需一個往返,從某種程度上也保證了 rsync 的優越效能。

Rsync可以通過兩種方式來連線遠端伺服器,一種是通過類shell命令的方式,一種是通過rsync daemon的方式,rsync daemon需要進行安裝和配置,具體如下:

可從官方網站http://rsync.samba.org/ 上下載安裝 rsync 的最新版本。使用時需將 rsync 分別安裝於服務端和客戶端,服務端和客戶端使用同一個 rsync 軟體包來實現遠端映象和定期同步更新。需要說明的是一個 rsync 服務端可同時備份多個客戶端的資料;多個服務端備份一個客戶端的資料。 rsync 預設埠為 873,伺服器在該埠接收客戶的匿名或者認證方式的備份請求。

rsync 服務端在使用之前需要進行必要的配置,其配置檔案為 /etc/rsyncd.conf,進行認證、訪問、日誌記錄等控制。配置檔案包括全域性引數、模組引數的設定。 rsyncd.conf 檔案中 [module] 之前的所有引數為全域性引數,也可以在全域性引數部分定義模組引數,在這種情況下該引數的值就是所有模組的預設值。全域性引數設定程式使用的埠號,指定訊息檔案、日誌檔案 pid 檔案以及傳送日誌訊息的級別。模組引數主要定義服務端哪個目錄需要被同步。使用者可根據不同的需要指定多個模組,每個模組對應需要備份的一個目錄樹,即若有 N 個需要備份的目錄樹,則需要 N 個模組與之對應。模組中可以定義許多引數,常見引數如下。

l  Comment        模組資訊描述,該描述連同模組名在客戶連線得到模組列表時顯示給客戶。預設沒有描述定義。

l  Path         指定供備份的目錄路徑,必須指定該引數。

l  max connections    指定最大併發連線數以保護伺服器,超過限制的連線請求將被告知隨後再試。預設值為 0,即沒有限制。

l  log file     指定日誌檔案

l  read only         設定是否允許客戶上載檔案。若為 true 任何上載請求均會失敗,若為 false 且客戶端擁有伺服器目錄讀寫許可權則可以上載。預設值為 true 。

l  write only        設定是否允許客戶下載檔案。若為 true 任何下載請求均會失敗,預設值為 false 。

l  List        設定當客戶請求可以使用的模組列表時,是否列出該模組。若為 false,則建立隱藏的模組。預設值為 true 。

l  fake super       允許檔案享有所有許可權,而無需後臺服務以 root 許可權進行操作。

l  Filter        設定過濾列表以決定哪些檔案可由客戶端訪問。

l  hosts allow     指定允許客戶連線的 IP 地址。可以為單個 IP 地址或整個網段。多個 IP或網段需要以空格隔開。預設是允許所有主機連線。

l  dont compress        指定不進行壓縮處理即可傳輸的檔案,預設值是 *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz

l  pre-xfer exec, post-xfer exec          設定可在檔案傳輸前/後執行的命令。若在檔案傳輸前執行的命令失敗,則取消本次傳輸操作。

需要注意的是伺服器端啟動:/usr/bin/rsync--daemon --config=/etc/rsyncd/rsyncd.conf

連線遠端伺服器的兩種方式的基本語法

(1)      通過遠端 shell 方式:

l  rsync [OPTION] [[email protected]]HOST:SRC DEST:用遠端 shell(如 ssh, rsh)實現將遠端機器的內容拷貝到本地機器。 SRC 地址路徑中以單個冒號 ":" 進行分隔。

l  rsync [OPTION] SRC [[email protected]]HOST:DEST:使用遠端 shell(如 rsh、ssh)實現本地機器的內容拷貝到遠端機器。 DEST 地址路徑中以單個冒號 ":" 進行分隔。

(2)       通過 rsync daemon 方式:

l  rsync [OPTION] [[email protected]]HOST::SRC DEST 或rsync [OPTION]rsync://[[email protected]]HOST[:PORT]/SRC [DEST]:從遠端 rsync 伺服器中拷貝檔案到本地機。SRC 地址路徑中以雙冒號 "::" 進行分隔。

l  rsync [OPTION] SRC [[email protected]]HOST::DEST 或rsync [OPTION] SRCrsync://[[email protected]]HOST[:PORT]/DEST:從本地機器拷貝檔案到遠端 rsync 伺服器中。 DEST 地址路徑中以雙冒號 "::" 進行分隔。

如果 rsync 命令中只指定 SRC 引數而不指定 DEST 引數,則意為顯示原始檔列表而非進行同步拷貝。

Options:

         options:

         -v,--verbose 詳細模式輸出

         -q,--quiet 精簡輸出模式

         -c,--checksum 開啟校驗開關,強制對檔案傳輸進行校驗

         -a,--archive 歸檔模式,表示以遞迴方式傳輸檔案,並保持所有檔案屬性,等於-rlptgoD

         -r,--recursive 對子目錄以遞迴模式處理

         -R,--relative 使用相對路徑資訊

         -b,--backup 建立備份,也就是對於目的已經存在有同樣的檔名時,將老的檔案重新命名為~filename。可以使用--suffix選項來指定不同的備份檔案字首。

         --backup-dir將備份檔案(如~filename)存放在在目錄下。

         -suffix=SUFFIX定義備份檔案字首

         -u,--update 僅僅進行更新,也就是跳過所有已經存在於DST,並且檔案時間晚於要備份的檔案。(不覆蓋更新的檔案)

         -l,--links 保留軟鏈結

         -L,--copy-links 想對待常規檔案一樣處理軟鏈結

         --copy-unsafe-links僅僅拷貝指向SRC路徑目錄樹以外的鏈結

         --safe-links忽略指向SRC路徑目錄樹以外的鏈結

         -H,--hard-links 保留硬鏈結    

    -p,--perms 保持檔案許可權

         -o,--owner 保持檔案屬主資訊

    -g, --group 保持檔案屬組資訊

         -D,--devices 保持裝置檔案資訊

    -t,--times 保持檔案時間資訊

         -S,--sparse 對稀疏檔案進行特殊處理以節省DST的空間

         -n,--dry-run現實哪些檔案將被傳輸

         -W,--whole-file 拷貝檔案,不進行增量檢測

         -x,--one-file-system 不要跨越檔案系統邊界

         -B,--block-size=SIZE 檢驗演算法使用的塊尺寸,預設是700位元組

         -e,--rsh=COMMAND 指定使用rsh、ssh方式進行資料同步

         --rsync-path=PATH指定遠端伺服器上的rsync命令所在路徑資訊

         -C,--cvs-exclude 使用和CVS一樣的方法自動忽略檔案,用來排除那些不希望傳輸的檔案

         --existing僅僅更新那些已經存在於DST的檔案,而不備份那些新建立的檔案

         --delete刪除那些DST中SRC沒有的檔案

         --delete-excluded同樣刪除接收端那些被該選項指定排除的檔案

         --delete-after傳輸結束以後再刪除

         --ignore-errors及時出現IO錯誤也進行刪除

         --max-delete=NUM最多刪除NUM個檔案

         --partial保留那些因故沒有完全傳輸的檔案,以是加快隨後的再次傳輸

         --force強制刪除目錄,即使不為空

         --numeric-ids不將數字的使用者和組ID匹配為使用者名稱和組名

         --timeout=TIMEIP超時時間,單位為秒

         -I,--ignore-times 不跳過那些有同樣的時間和長度的檔案

         --size-only當決定是否要備份檔案時,僅僅察看檔案大小而不考慮檔案時間

         --modify-window=NUM決定檔案是否時間相同時使用的時間戳視窗,預設為0

         -T--temp-dir=DIR 在DIR中建立臨時檔案

         --compare-dest=DIR同樣比較DIR中的檔案來決定是否需要備份

         -P等同於 --partial

         --progress顯示備份過程

         -z,--compress 對備份的檔案在傳輸時進行壓縮處理

         --exclude=PATTERN指定排除不需要傳輸的檔案模式

         --include=PATTERN指定不排除而需要傳輸的檔案模式

         --exclude-from=FILE排除FILE中指定模式的檔案

         --include-from=FILE不排除FILE指定模式匹配的檔案

         --version列印版本資訊

         --address繫結到特定的地址

         --config=FILE指定其他的配置檔案,不使用預設的rsyncd.conf檔案

         --port=PORT指定其他的rsync服務埠

         --blocking-io對遠端shell使用阻塞IO

         -stats給出某些檔案的傳輸狀態

         --progress在傳輸時現實傳輸過程

         --log-format=formAT指定日誌檔案格式

         --password-file=FILE從FILE中得到密碼

         --bwlimit=KBPS限制I/O頻寬,KBytes per second     

    -h,--help 顯示幫助資訊

例項:

(1)      檢視服務端檔案及列表:

l  rsync 9.186.110.53::檢視服務端可用的模組列表以及註釋資訊;rsync [email protected]::www/檢視服務端 www 模組中的目錄及檔案列表(使用 rsyncd 使用者認證方式)

l  rsync [email protected]:/var/www/html/檢視服務端/var/www/html 目錄中的內容(使用服務端的系統使用者進行驗證,如 ibmuser)

(2)      保持客戶端與服務端的資料同步:

l  rsync -avz [email protected]::www/ /backup1/使用後臺服務方式將服務端www 模組下的內容備份到本地 /backup1 目錄中,備份時保留原有許可權、屬性、屬主及符號連線等,並使用壓縮方式加快資料傳輸。

l   rsync – [email protected]:/var/www/html /backup2/使用 ssh 方式將遠端的/var/www/html 目錄備份到本地 /backup2/ 目錄下

l   rsync -avz [email protected]::www/ /backup3/將遠端 www 模組備份到本地/backup3/ 目錄中,同時進行同步目錄,刪除本地目錄中多餘的檔案。

(3)      當服務端的資料出現問題時,需要通過客戶端的資料對服務端進行恢復,只要客戶端有服務端的寫入許可權,即可通過調換 rsync 命令的 SRC、DEST 引數進行恢復。

ftp

         ftp命令使用檔案傳輸協議(FileTransfer Protocol ,FTP)在本地主機和遠端主機之間或者兩個遠端主機之間進行檔案傳輸。FTP 協議允許資料在不同檔案系統的主機之間傳輸。儘管這個協議在傳輸資料上提供了高適應性,但是它並沒有嘗試去保留一個特定檔案系統上的檔案屬性(例如一個檔案的保護模式或者修改次數)。而且 FTP 協議很少對一個檔案系統的整體結構作假定,也不提供這樣的功能,比如遞迴的拷貝子目錄。在使用 ftp 命令時,需要注意 FTP 協議的這些特性。當需要保留檔案屬性或者需要遞迴的拷貝子目錄時,可以使用 rcp/scp 等命令。

         如果需要將檔案以ftp傳輸到目的伺服器上,必須在目的伺服器上安裝ftp server,基本的安裝和啟動過程如下:

根據服務物件的不同,FTP服務可以分為兩類:一類是系統FTP伺服器,它只允許系統上的合法使用者使用;另一類是匿名FTP伺服器,它允許任何人登入到FTP伺服器,和伺服器連線後,在登入提示中輸入Anonymous,即可訪問伺服器。

Yum list *ftp*  (找到可用的Ftp包)

sudo yum install ftp包

手工啟動和關閉:啟動:/usr/sbin/ftprestart  關閉:/usr/sbin/ftpshut

FTP伺服器的配置:為了確保FTP伺服器安全,必須設定一些重要的配置檔案,以更好地控制使用者的訪問許可權。這些配置檔案是:/etc/ftpusers;/etc/ftpconversions;/etc/ftp-groups;/etc/ftpphosts;/etc/ftpaccess。利用這些檔案,能夠非常精確地控制哪些人、在什麼時間、從什麼地點可以連線伺服器,並且可以對他們連線後所做的工作進行檢查跟蹤。

(1)       /etc/ftpusers:該資料夾中包含的使用者不能通過FTP登入伺服器,有時將需要禁止的使用者賬號寫入檔案/etc/ftpuser中,這樣就可以禁止一些使用者使用FTP服務。

(2)      /etc/ftpconversions:用來配置壓縮/解壓縮程式。

(3)      /etc/ftpgroups:建立使用者組,這個組中的成員預先定義可以訪問FTP伺服器。

(4)      /etc/ftpphosts:用來根據禁止或允許遠端主機對特定賬戶的訪問,例如:allow czc 192.168.0.0/24   deny cdd 10.0.0.0/8(表示允許czc使用者從192.168.0這個網段連線訪問,拒絕cdd從10.這個網段連線訪問)。

(5)      /etc/ftpaccess:是非常重要的一個配置檔案,用來控制存取許可權,檔案中的每一行定義一個屬性,並對屬性的值進行設定。下面對它的一些常用配置做一點介紹:

l  定義使用者類別:格式:class[類名] [real/guest/anonymous][IP地址]  功能:這個指令的功能設定FTP伺服器上使用者的類別。並可對客戶端的IP地址進行限制,允許特定或者全部的IP地址訪問FTP伺服器。

l  登入重試次數:在命令列中輸入:loginfails 10,這表明如果10次還沒有登入成功就切斷連線。

l  密碼檢查:格式:passwd-check〈strictness〉 warn。是對匿名使用者的密碼使用方式的檢查,其中〈strictness〉是三個可能的字串之一:None、Trivial、RFC822。若選None,表示將不對口令做任何檢查;若選Trivial,表示對口令有一定的要求,它需要在口令中至少要有一個@符號;若選RFC822,則表示最嚴格,要求E-mail地址必須遵守RFC822報文標題標準(如:[email protected] )。例如:passwd-check rfc822 warn,表明密碼的要求很嚴格,當密碼不符合規定時出現警告資訊。

l  登入人數的限制:格式:limit[類別] [人數] [時間] [檔名]。設定指定類別在約定時間內可以登入FTP的人數。例如:limit remote Any/etc/many.msg,說明類別Remote類別在任何時間內登入人數不超過20個人,否則會顯示Many.msg警告資訊。

安裝、配置好FTP伺服器後,只需要在命令提示符後輸入:FTP Servername,用主機名或希望連線的FTP伺服器的IP地址代替Servername,按照提示輸入使用者名稱和口令,然後用標準的Linux上移或下移FTP伺服器目錄結構。另外,也可以採用圖形化FTP程式,包括視窗式gFTP,可以藉助Web瀏覽器去訪問FTP伺服器。

         在登入上ftp後,可以使用如下ftp命令進行操作:

l  FTP> ! 從 ftp 子系統退出到外殼

l  FTP> ? 顯示 ftp 命令說明,和 help 相同,格式:? [command]說明:[command]指定需要幫助的命令名稱。假如沒有指定 command,linux ftp命令引數將顯示全部命令的列表。

l  FTP> append 使用當前文件型別配置將本地文件附加到遠端電腦上的文件。格式:append local-file [remote-file],說明:local-file 指定要新增的本地文件,remote-file指定要新增 local-file 的遠端電腦上的文件。假如省略了 remote-file,本地文件名將被用作遠端文件名。

l  FTP> ascii 將文件傳送型別配置為預設的 ASCII。說明:linux ftp命令引數支援兩種文件傳送型別,ASCII 碼和二進位制影象,在傳送文字文件時應該使用ASCII。

l  FTP> bell 轉換響鈴以在每個文件傳送命令完成後響鈴??預設情況下,鈴聲是關閉的。

l  FTP> binary(或bi) 將文件傳送型別配置為二進位制

l  FTP> bye(或by) 結束和遠端電腦的linux ftp命令引數會話並退出linux ftp命令引數。

l  FTP> cd 更改遠端電腦上的工作目錄。格式:cd remote-directory,說明:remote-directory 指定要更改的遠端電腦上的目錄。

l  FTP> close 結束和遠端伺服器的linux ftp命令引數會話並返回命令解釋程式。

l  FTP> debug 轉換除錯。當除錯開啟時,傳送到遠端電腦的每個命令都列印,前面是字串">"。預設情況下,除錯是關閉的。

l  FTP> delete 刪除遠端電腦上的文件。格式:delete remote-file,說明:remote-file 指定要刪除的文件。

l  FTP> dir 顯示遠端目錄文件和子目錄列表。格式:dir [remote-directory] [local-file],說明:remote-directory 指定要檢視其列表的目錄。假如沒有指定目錄,將使用遠端電腦中的當前工作目錄。Local-file 指定要儲存列表的本地文件。假如沒有指定,輸出將顯示在螢幕上。

l  FTP> disconnect 從遠端電腦斷開,保留linux ftp命令引數提示。

l  FTP> get 使用當前文件轉換型別將遠端文件複製到本地,格式:get remote-file [local-file],說明:remote-file 指定要複製的遠端文件,Local-file指定要在本地電腦上使用的名稱,假如沒有指定,文件將命名為 remote-file。

l  FTP>glob 轉換文件名組合,組合允許在內部文件或路徑名中使用萬用字元(*和?),預設情況下,組合是開啟的。

l  FTP>hash 轉換已傳輸的每個資料塊的數字簽名 (#) 列印,資料塊的大小是2048 位元組,預設情況下,雜湊符號列印是關閉的。

l  FTP>help 顯示linux ftp命令引數命令說明。格式:help [command],  說明:command 指定需要有關說明的命令的名稱,假如沒有指定 command,linux ftp命令引數將顯示全部命令的列表。

l  FTP>lcd 更改本地電腦上的工作目錄,預設情況下,工作目錄是啟動linux ftp命令引數的目錄。格式:lcd [directory],說明:directory 指定要更改的本地電腦上的目錄,假如沒有指定directory,將顯示本地電腦中當前的工作目錄。

l  FTP>literal 將引數逐字傳送到遠端linux ftp命令引數伺服器,將返回單個的linux ftp命令引數回覆程式碼,格式:literal argument [ ...],說明:argument 指定要傳送到linuxftp命令引數伺服器的引數。

l  FTP>ls 顯示遠端目錄文件和子目錄的縮寫列表,格式:ls [remote-directory] [local-file],說明:remote-directory 指定要檢視其列表的目錄,假如沒有指定目錄,將使用遠端電腦中的當前工作目錄,local-file 指定要儲存列表的本地文件??假如沒有指定,輸出將顯示在螢幕上。

l  FTP>mdelete 刪除遠端電腦上的文件,格式:mdelete remote-files [ ...],說明:remote-files 指定要刪除的遠端文件。

l  FTP>mdir 顯示遠端目錄文件和子目錄列表,能夠使用 mdir 指定多個文件,格式:mdir remote-files [ ...] local-file,說明:remote-files 指定要檢視列表的目錄,必須指定 remote-files,請鍵入 - 使用遠端電腦上的當前工作目錄。local-file 指定要還原列表的本地文件,請鍵入- 在螢幕上顯示列表。

l  FTP>mget 使用當前文件傳送型別將遠端文件複製到本地電腦,格式:mget remote-files [ ...],說明:remote-files 指定要複製到本地電腦的遠端文件。

l  FTP>mkdir 建立遠端目錄,格式:mkdir directory,說明:directory 指定新的遠端目錄的名稱。

l  FTP>mls 顯示遠端目錄文件和子目錄的縮寫列表,格式:mls remote-files [ ...] local-file,說明:remote-files 指定要檢視列表的文件??必須指定remote-files;,請鍵入- 使用遠端電腦上的當前工作目錄。local-file 指定要儲存列表的本地文件,請鍵入 - 以在螢幕上顯示列表。

l  FTP>mput 使用當前文件傳送型別將本地文件複製到遠端電腦上。格式:mput local-files [ ...],說明:local-files 指定要複製到遠端電腦的本地文件。

l  FTP>open 和指定的linux ftp命令引數伺服器連線,格式:open computer [port],說明:computer 指定要連線的遠端電腦??能夠通過 IP 地址或電腦名稱指定電腦(DNS 或主機文件必須可用),假如自動登入開啟(預設),ftp 還將嘗試自動將使用者登入到linux ftp命令引數伺服器port 指定用來聯絡linux ftp命令引數伺服器的埠號。

l  FTP>prompt 轉換提示,假如關閉提示時 mget 及 mput 傳送任何文件,linux ftp命令引數在多文件傳送過程中將提示允許您有選擇地檢索或儲存文件,預設情況下,提示是開啟的。

l  FTP>put 使用當前文件傳送型別將本地文件複製到遠端電腦上,格式:put local-file [remote-file],說明:local-file 指定要複製的本地文件,remote-file指定要在遠端電腦上使用的名稱??假如沒有指定,文件將命名為 local-file。  

l  FTP>pwd 顯示遠端電腦上的當前目錄。

l  FTP>quit 結束和遠端電腦的linux ftp命令引數會話並退出linux ftp命令引數。

l  FTP>quote 將引數逐字傳送到遠端linux ftp命令引數伺服器,將返回單個的linux ftp命令引數回覆程式碼。

l  FTP>recv 使用當前文件傳送型別將遠端文件複製到本地電腦,Recv 和 get相同。格式:recv remote-file [local-file],說明:remote-file 指定要複製的遠端文件,local-file指定要在本地電腦上使用的名稱,假如沒有指定,文件將命名為 remote-file。

l  FTP>remotehelp 顯示遠端命令幫助,格式:remotehelp [command],說明:command 指定需要幫助的命令的名稱,假如沒有指定 command,linux ftp命令引數將顯示全部遠端命令的列表。

l  FTP>rename 重新命名遠端文件,格式:rename filename newfilename,說明:filename 指定要重新命名的文件,newfilename指定新的文件名。

l  FTP>rmdir 刪除遠端目錄,格式:rmdir directory,說明:directory 指定要刪除的遠端目錄的名稱。

l  FTP>send 使用當前文件傳送型別將本地文件複製到遠端電腦上,Send 和put 相同,格式:send local-file [remote-file],說明:local-file 指定要複製的本地文件,remote-file指定要在遠端電腦上使用的名稱,假如沒有指定,文件將命名為 local-file。

l  FTP>status 顯示linux ftp命令引數連線和轉換的當前狀態。

l  FTP>trace 轉換資料包跟蹤,Trace 在執行linux ftp命令引數命令時顯示每個資料包的路由。

l  FTP>type 配置或顯示文件傳送型別,格式:type [type-name],說明:type-name 指定文件傳送型別,預設配置為 ascii,假如沒有指定type-name,將顯示當前的型別。

l  FTP>user 指定遠端電腦的使用者,格式:user username [password] [account],說明:user-name 指定登入到遠端電腦所使用的使用者名稱,password 指定 user-name 的密碼,假如沒有指定,但必須指定,linux ftp命令引數會提示輸入密碼。account 指定登入到遠端電腦所使用的帳戶,假如沒有指定account,但是需要指定,linux ftp命令引數會提示您輸入帳戶。

l  FTP>verbose 轉換 verbose 模式,假如開啟,將顯示任何 linux ftp命令引數響應,在文件傳送完成後,將同時顯示和傳送效率有關的統計資訊,預設情況下,verbose 是開啟的。

sftp

         sftp(安全檔案傳輸協議)與ftp 有著幾乎一樣的語法和功能。FTP 為 SSH的一部份,是一種傳輸檔案至 Blogger 伺服器的安全方式。它並不使用ftp守護程序(ftpd或wu-ftpd)來進行連線,而是有意義地增強系統的安全性。實際上,通過監視一些系統中的log檔案,可以注意到很多攻擊是針對於ftpd守護程序的。sftp避免了這些攻擊從而可以停止在wu-ftpd上潛在的危險。SFTP本身沒有單獨的守護程序,它必須使用sshd守護程序(埠號預設是22)來完成相應的連線操作。使用SFTP是非常安全的。但是,由於這種傳輸方式使用了加密/解密技術,所以傳輸效率比普通的FTP要低得多,如果您對網路安全性要求更高時,可以使用SFTP代替FTP。

用法舉例:

(1)      [email protected]:/root/test.sh(直接將192上的檔案複製到本地)

(2)      [email protected]:/root  (直接連線到192的root目錄下,這樣就可以使用getput等命令了)

         sftp使用在資料連線上使用ssh2,所以檔案的傳輸是儘可能地安全。使用sftp代替ftp兩個主要的的原因是:

(1)      password從不用明文傳輸,防止sniffer(嗅探器)的攻擊。

(2)      資料在傳輸時被加密,使用刺探和修改連線非常困難。

         使用sftp2是非常簡單的。讓我們假設你使用了你的帳戶:myname通過sftp連按上了主機host1。可以使用命令:sftp [email protected]。當sftp2準備好了來接受連線時,它將顯示一個狀態提示符 sftp>。在sftp手冊中有完整的使用者可以使用的命令列表;其中有:

l  quit:從這個應用程式中退出。

l  cd directory:改變當前的遠端工作目錄。

l  lcd directory:改變當前的本地工作目錄。

l  ls [ -r ] [ -l ] [ file ... ]:列出在遠地伺服器上的檔名。如果是目錄,則列出目錄的內容。當命令列中指定了-r,則遞迴地顯示目錄樹。(預設情況下,子目錄並不被訪問)。當命令列中指定了-l,檔案與目錄的許可權,屬主,大小和修改時間被列出。當沒有引數被指定,則.(當前目錄)的內容被列出。普通情況下選項-r和-l是互相不相容的。

l  lls [ -r ] [ -l ] [ file ... ]:與ls一樣,但是是對於本地檔案操作。

l  get [file ...]:從遠端端傳送指定的檔案到本地端。目錄內容被遞迴地複製。

l  put [ file ... ]:從本地端傳送指定的檔案到遠地端。目錄內容被遞迴地複製。

l  mkdir dir (rmdir dir):嘗試建立或刪除引數中指定的目錄。

l  萬用字元對於ls,lls,get和put是支援的。格式在sshregex手冊中有描述。

從sftp使用加密技術以來,一直有一個障礙:連線速度慢(有2-3倍),但是這一點對於非常好的安全性來講只能放在一邊了。在一個測試中,區域網上的sniffer可以在一個小時中捉住ftp連線上的4個password.。sftp的使用可以從網路上傳送檔案並且除去這些安全問題。

lftp

lftp 是一個功能強大的下載工具,它支援訪問檔案的協議: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在編譯的時候包含openssl庫)。llftp非常像一個shell: 有命令補全,歷史記錄,允許多個後臺任務執行等功能,使用起來非常方便。它還有書籤、排隊、映象、斷點續傳、多程序下載等功能。

命令列語法

(1)    lftp [-d] [-e cmd] [-p port][-u user[,pass]] [site]

-e在選擇後執行命令

-u [,] 使用指定的使用者名稱/口令進行驗證

-p 連線指定的埠

Site:主機名,URL 或書籤的名字

(2)    lftp -f script_file

執行檔案中的命令後退出

(3)    lftp -c commands

執行命令後退出

(4)    lftp –version

顯示 lftp 版本後退出

(5)    lftp --help

顯示幫助資訊後退出     

         例子:

(1)      如果在命令列中輸入的站點名稱,lftp將直接登入站點,比如

lftp ftp://.............

(2)      如果在命令列不輸入站點名稱,則必須在進入到lftp介面後用open命令開啟

Lftp

lftp :~> open ftp://...................

常用命令

l  下載單個檔案和一組檔案,斷點續傳用-c引數

lftp ................:/> get -c ls-lR.txt

lftp ...............:/> mget *.txt

l  映象(反映象即上傳)一個目錄,可以用多個執行緒並行映象一個目錄(--parallel=N)

lftp ................:/> mirror incoming local_name

lftp ................:/> mirror -R local_name

lftp ................:/> mirror --parallel=3 incominglocal_name

l  多執行緒下載,類似網路螞蟻的功能;預設是5個執行緒

lftp ................:/> pget -n 4 ls-lR.txt

l  後臺任務管理

預設情況下,按 Ctrl+z,正在執行的任務將轉為後臺執行,也可以在命令列末尾加&符號使任務在後臺執行。用jobs命令可以檢視所有的後臺程序。用queue命令可以排隊新的任務。如果退出lftp是還有任務在後臺執行,lftp將轉為後臺執行。

l  其它用法

lftp支援類似bash的管道操作,例如用下面的命令可以將ftp伺服器上的特定目錄下(也可以是整個站點)所有檔案的大小存到本地的檔案ls.txt中

lftp ................:/> du incoming > ls.txt

相關檔案

(1)      /etc/lftp.conf

全域性配置檔案,實際位置依賴系統配置檔案目錄,可能在/etc,也可能在/usr/local/etc

(2)      ~/.lftp/rc, ~/.lftprc

使用者配置檔案,將在/etc/lftp.conf之後執行,所以這裡面的設定會覆蓋/etc/lftp.conf中的設定。

(3)      lftp 預設不會顯示 ftp 伺服器的歡迎資訊和錯誤資訊,這在很多時候不方便,因為你有可能想知道這個伺服器到底是因為沒開機連不上,還是連線數已滿。如果是這樣,你可以在 ~/.lftprc 裡寫入一行,debug 3,就可以看到出錯資訊了。更多的配置選項請查man手冊或在lftp介面內用命令 set -a 獲得。

(4)      ~/.lftp/log

當lftp轉為後臺非掛起模式執行時,輸出將重定向到這裡

(5)      ~/.lftp/bookmarks

這是lftp儲存書籤的地方,可以lftp檢視bookmark命令

(6)      ~/.lftp/cwd_history

這個檔案用來儲存訪問過的站點的工作目錄

(7)      ~/.lftprc

在用lftp訪問國內一些ftp伺服器時,往往看到的中文是亂碼。不用慌,這是由於伺服器和本地編碼不一致造成的。我們只要在主目錄下新建一個檔案~/.lftprc或者~/.lftp/rc。並在其中加入以下內容:debug 3set ftp:charset GBKset file:charset UTF-8#setftp:passtive-mode no#alias utf8 " set ftp:charset UTF-8"#alias gbk" set ftp:charset GBK"

登入ftp伺服器:

         lftpftp://user:[email protected]:port

         lftpuser:[email protected]:port

         lftpsite -p port -u user,password

         lftpsite:port -u user,password

上面的幾種方式都能正常工作,不過密碼都是明文,這樣好像不太安全哦。沒關係,使用lftp [email protected]:port,系統會提示輸入password,密碼就回顯為******了,不過每次都輸入這麼多,好麻煩哦。如果有類似leapftp的站點管理器就好了,其實lftp早就給我們想好了:這就是bookmark。後面我們將會看到。

         在終端執行如manlftp或登入ftp後輸入help就可以看到命令列表,下面我們看一下lftp常用的命令:

(1)      ls:顯示遠端檔案列表(!ls顯示本地檔案列表)。

(2)      cd:切換遠端目錄(lcd 切換本地目錄)。

(3)      get:下載遠端檔案。

(4)      mget:下載遠端檔案(可以用萬用字元也就是 *)。

(5)      pget:使用多個執行緒來下載遠端檔案, 預設為五個。

(6)      mirror:下載/上傳(mirror-R)/同步整個目錄。

(7)      put:上傳檔案。

(8)      mput:上傳多個檔案(支援萬用字元)。

(9)      mv:移動遠端檔案(遠端檔案改名)。

(10)  rm:刪除遠端檔案。

(11)  mrm:刪除多個遠端檔案(支援萬用字元)。

(12)  mkdir:建立遠端目錄。

(13)  rmdir:刪除遠端目錄。

相關推薦

linux常用檔案傳輸命令

 因為工作原因,需要經常在不同的伺服器見進行檔案傳輸,特別是大檔案的傳輸,因此對linux下不同伺服器間資料傳輸命令和工具進行了研究和總結。主要是rcp,scp,rsync,ftp,sftp,lftp,wget,curl。 rcp rcp不是一種安全的的傳輸檔案的方式

Linux常用檔案操作命令總結

拾取一些常用的檔案命令。 改變目錄 cd //進入使用者預設工作目錄 cd .. //進入上一級目錄 cd ap

Linux 常用的Shell 命令

input int AR sel https 如果 del grep option 英文原文鏈接:https://www.lopezferrando.com/30-interesting-shell-commands/ 1. 監控命令(每2秒運行一次) watch

Linux常用的vim命令總結

vim的基本使用 生存 [i]和[esc]進行模式的切換。 上[k]下[j]左[h]右[l]。 寫儲存[:wq!]、不寫儲存[:q!]。 取消操作[u]。 基本功 前[a]後[i]插、行首[I或0]、行尾[A或$]。 向上新建一行[O]向下新建一行[o]。 連線下面一行來

Linux常用的dd命令

今天在微博看到了關於伺服器硬碟負載的測試(原文見:使用 dd 命令進行硬碟 I/O 效能檢測),前一段時間在搭建Minecraft伺服器,我就經常懷疑IO爆表,但是記憶體可以用free,CPU和記憶體可以用top,可IO怎麼查,我怎麼知道這臺伺服器到底是哪裡爆表了。 文章裡提出用dd進行硬碟寫入

linux常用vi操作命令

   上一篇文章我們闡述了linux常用的命令,這篇文章主要闡述linux系統的vi操作指令。編輯器: vivi 的工作模式 編輯模式 插入模式 命令模式 shell 切換 選項設定 vim 和 gvim 的高階特色 1.6.1  vi 的工作模式Vi 在初始啟動後首先進入編

linux檔案操作命令

首先,大家明白一個概念,非常重要的一個概念“在linux上,一切皆檔案”,“在linux上,一切皆檔案”,“在linux上,一切皆檔案”,重要的事情說三遍。。。 明白了檔案的重要性,那麼,檔案都有哪些型別的呢?好比人有白人,黃人,黑人之分,檔案有普通檔案,目錄檔案,管道檔案

tftpd32伺服器軟體在Windows與linux 檔案傳輸

tftpd32是一個很方便的傳輸檔案的伺服器端軟體,下面介紹這款軟體的使用: 以上是我的tftpd32中文版軟體介面;設定到伺服器介面; 使用一:可以通過tftpd32,進行Windows與虛擬機器中的Linux進行檔案傳輸: 1.開啟windows7(作者用的win7

Linux檔案操作命令(一、檔案顯示命令

1.cat命令 cat用來顯示檔案的內容。 1)一般格式 cat 【選項】 檔案 2)說明 一是顯示檔案內容;二是連線兩個或者多個檔案。 3)常用選項 -b 從1開始對所有非空輸出編號

Linux常用的“聊天”命令

在區域網絡內很多時候是許多人共用一些機器,但如果多個人同時在使用同一臺機器必定會發生一些衝突,比如系統的某些配置被修改,這樣引起一些麻煩。那麼如果在使用該機器之前,先給登入到該機器的所有其他使用者傳送一個訊息,告訴其他使用者(如果已經登入)你將使用該機器。這樣如果有其他使用者登入到該機器,他們就會收到該

linuxsocket檔案傳輸示例

本文所述示例程式是基於Linux平臺的socket網路程式設計,實現檔案傳輸功能。該示例是基於TCP流協議實現的socket網路檔案傳輸程式。採用C語言編寫。最終能夠實現傳輸任何格式檔案的檔案傳輸程式。 具體實現程式碼如下: Server端程式碼如下: [cpp] view

Linux幾種檔案傳輸命令

  Linux下幾種檔案傳輸命令 sz rz sftp scp     最近在部署系統時接觸了一些檔案傳輸命令,分別做一下簡單記錄: 1.sftp Secure Ftp 是一個基於SSH安全協議的檔案傳輸管理工具。由於它是基於SSH的,會在

Linux檢視檔案內容的幾種常用命令

【常用】 1,cat     由第一行開始顯示內容,並將所有內容輸出 cat的功能是將檔案從第一行開始連續的將內容輸出在螢幕上。但是cat並不常用,原因是當檔案大,行數比較多時,螢幕無法全部容下時,只能看到一部分內容。 cat語法:cat [-n]  檔

【copy】Linux查詢檔案及查詢包含指定內容的檔案常用命令

轉載自   http://blog.csdn.net/yi412/article/details/19212335 在微軟的Windows作業系統中要查詢一份檔案是相當簡單的事情,只要在桌面上點選“開始”-“搜尋”中就能按照各種方式在本地硬碟上,區域網絡,甚至在INTERNET上查詢各種

詳解LinuxSSH遠端檔案傳輸命令scp

一:Linux ssh scp的簡介及作用: 在日常linux伺服器操作中,傳輸檔案是必不可少的操作。以前章郎蟲一直用他來翻牆,可以算是偏門,今天介紹SSH的正途啦。。。 scp就是secure copy的簡寫,用於在linux下進行遠端拷貝檔案的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨

linux查詢檔案及查詢包含指定內容的檔案常用命令

 每一種作業系統都是由成千上萬個不同種類的檔案所組成的。其中有系統本身自帶的檔案,使用者自己的檔案,還有共享檔案等等。我們有時候經常忘記某份檔案放在硬碟中的哪個地方。 在微軟的Windows作業系統中要查詢一份檔案是相當簡單的事情,只要在桌面上點選“開始”-“搜尋”中就

Linux檢視檔案常用命令—cat,more,less,head,tail

【cat】  功能:1)顯示整個檔案。如:$ cat filename        2)把檔案串聯接後傳到基本輸出,如將幾個檔案合併為一個檔案或輸出到螢幕。如:$ cat file1 file2 > file  引數詳解:  -n或-number:由1開始

windows 命令列+winscp 實現與linux的遠端檔案傳輸

安裝WinSCP WinSCP 是一個 Windows 環境下使用的 SSH 的開源圖形化 SFTP 客戶端。同時支援 SCP 協議。它的主要功能是在本地與遠端計算機間安全地複製檔案,並且可以直接編輯檔案。 - 下載:https://winscp.net/e

Linux查詢檔案及查詢包含指定內容的檔案常用命令

每一種作業系統都是由成千上萬個不同種類的檔案所組成的。其中有系統本身自帶的檔案,使用者自己的檔案,還有共享檔案等等。我們有時候經常忘記某份檔案放在硬碟中的哪個地方。 在微軟的Windows作業系統中要查詢一份檔案是相當簡單的事情,只要在桌面上點選“開始”-“搜尋”中就能按照各種方式在本地硬碟上,區域網絡,甚

Linux常用命令之sed學習總結

linux sed sed命令 正則表達式 sed總結 Sed功能說明:Sed是linux下一個強大的文本文件處理工具,通過對文件增加、刪除、查找、查詢操作,配合正則表達式以實現工作中的各種需求。同時也是一名運維人員必須掌握的核心技能。---------------------------