linux 傳輸文件

ftp

ftp 命令的通常格式以下: html

$ ftp 主機名 /IP shell

    其中「主機名 /IP 」是所要鏈接的遠程機的主機名或 IP 地址。在命令行中,主機名屬於可選項,若是指定主機名,ftp 將試圖與遠程機的 ftp 服務程序進行鏈接;若是沒有指定主機名,ftp 將給出提示符,等待用戶輸入命令。 安全

   此時在 ftp> 提示符後面輸入 open 子命令加主機名或 IP 地址,將試圖鏈接指定的主機。無論使用哪種方法,若是鏈接成功,須要在遠程機上登陸。用戶若是在遠程機上有賬號,就能夠經過 ftp 使用這一賬號並須要提供口令。在遠程機上的用戶賬號的讀寫權限決定該用戶在遠程機上能下載什麼文件和能將上載文件放到哪一個目錄中。在遠程站點上登陸成功後,在「ftp> 」提示符下能夠自由使用 ftp 提供的各類子命令,最經常使用的子命令以下表所示。 服務器

表 1. ftp 子命令 網絡

 

命令 ssh

描述 ide

ls 工具

列出遠程機的當前目錄 網站

cd ui

在遠程機上改變工做目錄

lcd

在本地機上改變工做目錄

ascii

設置文件傳輸方式爲 ASCII 模式

binary

設置文件傳輸方式爲二進制模式

close

終止當前的 ftp 會話

get (mget)

從遠程機傳送指定文件到本地機

put (mput)

從本地機傳送指定文件到遠程機

open

鏈接遠程 ftp 站點

quit

斷開與遠程機的鏈接並退出 ftp

?

顯示本地幫助信息

!

轉到 Shell 中

prompt 1

關閉交互模式

 使用實例:

利用編寫 ftp 腳本能夠自動完成文件傳輸任務。具體方法是使用 ftp 命令的 -in 選項,並重定向 ftp 命令的輸入。如今咱們來編寫一個利用 ftp 登陸到遠程服務器,並以 bin 的文件格式,在 /home 目錄下,下載 file1.log以及 file2.sh 至本機 /opt/ibm/,並從本地 /opt 目錄上傳文件 file3.jave 至遠程服務器 /home 的自動化腳本。

 

ftp -ni <<+

          open $IP

          user $USERNAME $PASSWD

          bin

          cd /home

          lcd /opt/ibm

          mget file1.log file2.sh

          lcd /opt

          mput file3.jave

          ls

          bye

 rcp

rcp 意爲「 remote file copy 」(遠程文件拷貝)。該命令用於計算機之間進行文件拷貝。其有兩種格式。第一種格式用於文件到文件的拷貝;第二種格式用於把文件或目錄拷貝到另外一個目錄中。

基本語法:

rcp [-px] [-k realm] file1 file2

 rcp [-px] [-r] [-k realm] file directory

 每一個文件或目錄參數既能夠是遠程文件名也能夠是本地文件名。遠程文件名具備以下形式:rname@rhost:path,其中 rname 爲遠程用戶名,rhost 爲遠程計算機名,path 爲該文件的路徑。下表說明了 rcp 命令各個參數的含義。

 

選項

描述

-r

遞歸地將源目錄中的全部內容拷貝到目的目錄中。若使用該選項,目的須爲一個目錄。

-p

試圖保留源文件的修改時間和模式,忽略 umask 。

-k

請求 rcp 得到在指定區域內的遠程主機的 Kerberos 許可,而不是得到由krb_relmofhost(3)肯定的遠程主機區域內的遠程主機的 Kerberos 許可。

-x

爲傳送的全部數據進行 DES 加密。這會影響響應時間和 CPU 利用率,可是能夠提升安全性。

若是在文件名中指定的路徑不是完整的路徑名,則該路徑將被解釋爲相對遠程機上同名用戶的主目錄。若沒有給出遠程用戶名,則使用當前用戶名。若是遠程機上的路徑包含特殊 shell 字符,須要使用反斜線(\)、雙引號(」)或單引號(’)將其括起來,使全部的 shell 元字符都能被遠程地解釋。須要說明的是,rcp 不提示輸入口令,它經過 rsh(remote shell)命令來執行拷貝。

使用實例

將本地文件複製到遠程登陸目錄中

rcp <source> <remoteDir>

將多個本地文件複製到遠程登陸目錄的子目錄中

rcp <source1> <source2> <source3> <subdirectory in remote system>

將多個文件從多個遠程源複製到使用不一樣用戶名的遠程目標中

rcp <host1.user1:source1> <host2.user2:source2> <dest.destuser:directory>

scp

scp 命令在網絡上的主機之間拷貝文件,它是安全拷貝(secure copy)的縮寫。 scp 命令使用 ssh 來傳輸數據,並使用與 ssh 相同的認證模式,提供一樣的安全保障。 scp 命令的用法和 rcp 命令很是相似,這裏就不作過多介紹了。通常推薦使用 scp 命令,由於它比 rcp 更安全。

咱們能夠經過配置 ssh,使得在兩臺機器間拷貝文件時不須要每次都輸入用戶名和密碼。

基本語法

scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]

         [-l limit] [-o ssh_option] [-P port] [-S program]

         [[user@]host1:]file1 [...] [[user@]host2:]file2

使用 scp 命令,須要輸入密碼,若是不想每次都輸入,可參考下面的方法。

首先生成密鑰對

$ ssh-keygen -t rsa

 Generating public/private rsa key pair.

 Enter file in which to save the key (/home/user/.ssh/id_rsa):

 Created directory '/home/user/.ssh'.

 Enter passphrase (empty for no passphrase):

 Enter same passphrase again:

 Your identification has been saved in /home/user/.ssh/id_rsa.

 Your public key has been saved in /home/user/.ssh/id_rsa.pub.

 The key fingerprint is:

 10:66:da:38:85:8a:8c:bd:db:9c:6e:eb:ee:bd:7d:15 user@somehost

 在這裏,咱們指定了生成 rsa 類型的密鑰。在提示密鑰的保存路徑和密碼時,能夠直接回車使用默認路徑和空密碼。這樣,生成的公共密鑰保存在 $HOME/.ssh/id_rsa.pub,私有密鑰保存在 $HOME/.ssh/id_rsa 。而後把這個密鑰對中的公共密鑰的內容複製到要訪問的機器上的 $HOME/.ssh/authorized_keys 文件中。這樣,下次再訪問那臺機器時,就不用輸入密碼了。

使用實例:

Copy 本地文件 /etc/eva.log, 到遠程機器 sysB, 用戶 user 的家目錄下

scp /etc/eva.log user@sysB:/home/user

copy 遠程機器 sysB 上的文件 /home/uesr/eva.log, 到本地的 /etc 目錄下 , 並保持文件屬性不變

scp -p user@sysB:/home/uesr/eva.log /etc

copy sysB 上的目錄 /home/user,到本地 /home/user/tmp, <new dir,/home/user/tmp/user>

scp -r user@sysB:/home/user /home/user/tmp

 wget

wget 是一個經由 GPL 許可的可從網絡上自動獲取文件的自由軟件包。它是一個非交互式的命令行工具。支持HTTP,HTTPS 和 FTP 協議,支持代理服務器以及斷點續傳功能。 wget 可實現遞歸下載,便可跟蹤 HTML 頁面上的連接依次下載來建立遠程服務器的本地版本,徹底重建原始站點的目錄結構,實現遠程網站的鏡像。在遞歸下載時,wget 將頁面中的超級連接轉換成指向本地文件,方便離線瀏覽。因爲非交互特性,wget 支持後臺運行,用戶在退出系統後,仍可繼續運行。功能強大,設置方便簡單。

基本語法

wget [options] [URL-list]

wget 有不少不一樣的參數以用於遠程站點信息的獲取,經常使用參數以下,更多參數請參照 wget 幫助手冊http://www.gnu.org/software/wget/manual/wget.html

 表 3. wget 工具經常使用參數

 

選項

描述

-r

遞歸下載服務器上全部的目錄和文件。由 -l 選項來指定遞歸深度。

-b

後臺下載

-m

製做站點鏡像

-c

指定斷點續傳功能。該功能要求服務器支持斷點續傳。

-I

指定下載目錄列表,可實現批量下載

-A/-R

指定接受/拒絕下載列表,實現選擇性地下載

--proxy=on/off

指定是否利用代理服務器進行下載

-t, --tries=NUMBER

最大嘗試連接次數 (0 表示無限制,默認爲 20 次 )

-nc, --no-clobber

不覆蓋已存在的文件

-N, --timestamping

只下載比本地新的文件

-nd --no-directories

不進行目錄結構建立

-x, --force-directories

強制建立目錄結構

-nH, --no-host-directories

不繼承主機目錄結構

-P, --directory-prefix=PREFIX

設置目錄前綴

使用實例:

遞歸下載 http://www.ibm.com.cn 站點的信息。下載全部顯示完整網頁因此須要的文件,如圖片等。在下載不進行上層目錄搜索並將絕對連接轉換爲相對連接。

wget -r -p -np -k http://www.ibm.com.cn

將在本地硬盤創建 http://www.ibm.com.cn 的鏡像,鏡像文件存入當前目錄下一個名爲 www.ibm.com.cn 的子目錄中(也可使用 -nH 參數指定不創建該子目錄,而直接在當前目錄下創建鏡像的目錄結構),遞歸深度爲 4,重試次數爲無窮(若鏈接出現問題,wget 將永遠重試下去,直至任務完成)

wget -m -l4 -t0 http://www.ibm.com.c

使用代理進行下載,並實現斷點續傳。代理能夠在環境變量 PROXY 或 wgetrc 文件中設定。 -c 選項要求服務支持斷點續傳。

wget -Y on -c http://www.ibm.com.cn

 做者「devilkin

相關文章
相關標籤/搜索