1、命令:scp
不同的Linux之間copy文件常用有3種方法:
第一種就是ftp,也就是其中一台Linux安裝ftp Server,這樣可以另外一台使用ftp的client程序來進行文件的copy。
第二種方法就是采用samba服務,類似Windows文件copy 的方式來操作,比較簡潔方便。
第三種就是利用scp命令來進行文件復制。
2、命令格式:scp [參數] [原路徑] [目標路徑]
3、命令參數:
-1 強制scp命令使用協議ssh1 -2 強制scp命令使用協議ssh2 -4 強制scp命令只使用IPv4尋址 -6 強制scp命令只使用IPv6尋址 -B 使用批處理模式(傳輸過程中不詢問傳輸口令或短語) -C 允許壓縮。(將-C標志傳遞給ssh,從而打開壓縮功能) -p 保留原文件的修改時間,訪問時間和訪問權限。 -q 不顯示傳輸進度條。 -r 遞歸復制整個目錄。 -v 詳細方式顯示輸出。scp和ssh(1)會顯示出整個過程的調試信息。這些信息用於調試連接,驗證和配置問題。 -c cipher 以cipher將數據傳輸進行加密,這個選項將直接傳遞給ssh。 -F ssh_config 指定一個替代的ssh配置文件,此參數直接傳遞給ssh。 -i identity_file 從指定文件中讀取傳輸時使用的密鑰文件,此參數直接傳遞給ssh。 -l limit 限定用戶所能使用的帶寬,以Kbit/s為單位。 -o ssh_option 如果習慣於使用ssh_config(5)中的參數傳遞方式, -P port 注意是大寫的P, port是指定數據傳輸用到的端口號 -S program 指定加密傳輸時所使用的程序。此程序必須能夠理解ssh(1)的選項。
4、實例
將當前Linux中的hadoop文件夾拷貝到Hadoop-NN-02下:
scp -P 6000 -r /home/hadoopuser/hadoop hadoopuser@Hadoop-NN-02:/home/hadoopuser
-P 6000 表示SSH登錄端口為6000,默認22端口可省略。
-r 表示遞歸復制
注:從遠程復制到本地,只需調換scp后面兩個參數即可。
5、scp免密碼拷貝expect腳本
#!/usr/bin/expect -f set password 123456 spawn scp root@192.168.0.10:/root/a.wmv /home/hadoop/ set timeout 300 expect "root@192.168.0.10's password:" set timeout 300 send "$password\r" set timeout 300 send "exit\r" expect eof