從一個服務器復制文件到另一個服務器,或者從本地到遠程復制是?Linux?管理員的日常任務之一。

成都網(wǎng)站設計、做網(wǎng)站的關注點不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒有做好網(wǎng)站,給創(chuàng)新互聯(lián)一個展示的機會來證明自己,這并不會花費您太多時間,或許會給您帶來新的靈感和驚喜。面向用戶友好,注重用戶體驗,一切以用戶為中心。
我覺得不會有人不同意,因為無論在哪里這都是你的日常操作之一。有很多辦法都能處理這個任務,我們試著加以概括。你可以挑一個喜歡的方法。當然,看看其他命令也能在別的地方幫到你。
我已經(jīng)在自己的環(huán)境下測試過所有的 命令 和 腳本 了,因此你可以直接用到日常工作當中。
通常大家都傾向 scp,因為它是文件復制的原生命令native command之一。但本文所列出的其它命令也很好用,建議你嘗試一下。
文件復制可以輕易地用以下四種方法。
scp:在網(wǎng)絡上的兩個主機之間復制文件,它使用 ssh 做文件傳輸,并使用相同的認證方式,具有相同的安全性。
rsync:是一個既快速又出眾的多功能文件復制工具。它能本地復制、通過遠程? shell ?在其它主機之間復制,或者與遠程的 rsync 守護進程daemon 之間復制。
pscp:是一個并行復制文件到多個主機上的程序。它提供了諸多特性,例如為 scp 配置免密傳輸,保存輸出到文件,以及超時控制。
prsync:也是一個并行復制文件到多個主機上的程序。它也提供了諸多特性,例如為 ssh 配置免密傳輸,保存輸出到 文件,以及超時控制。
方式 1:如何在 Linux 上使用 scp 命令從本地系統(tǒng)向遠程系統(tǒng)復制文件/文件夾?
scp?命令可以讓我們從本地系統(tǒng)復制文件/文件夾到遠程系統(tǒng)上。
我會把 output.txt 文件從本地系統(tǒng)復制到 2g. CentOS .com 遠程系統(tǒng)的 /opt/backup 文件夾下。
# scp output.txt root@2g.CentOS.com:/opt/backup
output.txt? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100% 2468? ? 2.4KB/s? 00:00
從本地系統(tǒng)復制兩個文件 output.txt 和 passwd-up.sh 到遠程系統(tǒng) 2g.CentOs.com 的 /opt/backup 文件夾下。
# scp output.txt passwd-up.sh root@2g.CentOS.com:/opt/backup
output.txt 100% 2468 2.4KB/s 00:00
passwd-up.sh 100% 877 0.9KB/s 00:00
從本地系統(tǒng)復制? shell -script 文件夾到遠程系統(tǒng) 2g.CentOs.com 的 /opt/back 文件夾下。
這會連同shell-script 文件夾下所有的文件一同復制到/opt/back 下。
# scp -r /home/daygeek/2g/shell-script/ root@:/opt/backup/
output.txt 100% 2468 2.4KB/s 00:00
ovh.sh? ? ? 100% 76 0.1KB/s 00:00
passwd-up.sh 100% 877 0.9KB/s 00:00
passwd-up1.sh 100% 7 0.0KB/s 00:00
server-list.txt 100% 23 0.0KB/s 00:00
方式 2:如何在 Linux 上使用 scp 命令和 Shell? 腳本 復制文件/文件夾到多個遠程系統(tǒng)上?
如果你想復制同一個文件到多個遠程服務器上,那就需要創(chuàng)建一個如下面那樣的小 shell 腳本。
并且,需要將服務器添加進 server-list.txt 文件。確保添加成功后,每個服務器應當單獨一行。
最終,你想要的腳本就像下面這樣:
# file-copy.sh
#!/bin/sh
for server in `more server-list.txt`
do
scp /home/daygeek/2g/shell-script/output.txt root@$server:/opt/backup
done
完成之后,給 file-copy.sh 文件設置可執(zhí)行權限。
# chmod +x file-copy.sh
最后運行腳本完成復制。
# ./file-copy.sh
output.txt 100% 2468 2.4KB/s 00:00
output.txt 100% 2468 2.4KB/s 00:00
使用下面的腳本可以復制多個文件到多個遠程服務器上。
# file-copy.sh
#!/bin/sh
for server in `more server-list.txt`
do
scp /home/daygeek/2g/shell-script/output.txt passwd-up.sh root@$server:/opt/backup
done
下面結果顯示所有的兩個文件都復制到兩個服務器上。
# ./file-cp.sh
output.txt 100% 2468 2.4KB/s 00:00
passwd-up.sh 100% 877 0.9KB/s 00:00
output.txt 100% 2468 2.4KB/s 00:00
passwd-up.sh 100% 877 0.9KB/s 00:00
使用下面的腳本遞歸地復制文件夾到多個遠程服務器上。
# file-copy.sh
#!/bin/sh
for server in `more server-list.txt`
do
scp -r /home/daygeek/2g/shell-script/ root@$server:/opt/backup
done
上述腳本的輸出。
# ./file-cp.sh
output.txt 100% 2468 2.4KB/s 00:00
ovh.sh? ? ? 100% 76 0.1KB/s 00:00
passwd-up.sh 100% 877 0.9KB/s 00:00
passwd-up1.sh 100% 7 0.0KB/s 00:00
server-list.txt 100% 23 0.0KB/s 00:00
output.txt 100% 2468 2.4KB/s 00:00
ovh.sh? ? ? 100% 76 0.1KB/s 00:00
passwd-up.sh 100% 877 0.9KB/s 00:00
passwd-up1.sh 100% 7 0.0KB/s 00:00
server-list.txt 100% 23 0.0KB/s 00:00
方式 3:如何在 Linux 上使用 pscp 命令復制文件/文件夾到多個遠程系統(tǒng)上?
pscp命令可以直接讓我們復制文件到多個遠程服務器上。
使用下面的 pscp 命令復制單個文件到遠程服務器。
# pscp.pssh -H 2g.CentOS.com /home/daygeek/2g/shell-script/output.txt /opt/backup
[1] 18:46:11 [SUCCESS] 2g.CentOS.com
使用下面的 pscp 命令復制多個文件到遠程服務器。
# pscp.pssh -H 2g.CentOS.com /home/daygeek/2g/shell-script/output.txt ovh.sh /opt/backup
[1] 18:47:48 [SUCCESS] 2g.CentOS.com
使用下面的 pscp 命令遞歸地復制整個文件夾到遠程服務器。
# pscp.pssh -H 2g.CentOS.com -r /home/daygeek/2g/shell-script/ /opt/backup
[1] 18:48:46 [SUCCESS] 2g.CentOS.com
使用下面的 pscp 命令使用下面的命令復制單個文件到多個遠程服務器。
# pscp.pssh -h server-list.txt /home/daygeek/2g/shell-script/output.txt /opt/backup
[1] 18:49:48 [SUCCESS] 2g.CentOS.com
[2] 18:49:48 [SUCCESS] 2g.Debian.com
使用下面的 pscp 命令復制多個文件到多個遠程服務器。
# pscp.pssh -h server-list.txt /home/daygeek/2g/shell-script/output.txt passwd-up.sh /opt/backup
[1] 18:50:30 [SUCCESS] 2g.Debian.com
[2] 18:50:30 [SUCCESS] 2g.CentOS.com
使用下面的命令遞歸地復制文件夾到多個遠程服務器。
# pscp.pssh -h server-list.txt -r /home/daygeek/2g/shell-script/ /opt/backup
[1] 18:51:31 [SUCCESS] 2g.Debian.com
[2] 18:51:31 [SUCCESS] 2g.CentOS.com
scp是 secure copy的縮寫, scp是 linux 系統(tǒng)下基于ssh登陸進行安全的遠程文件拷貝命令。 linux 的scp命令可以在linux 服務器 之間復制文件和目錄.
scp命令基本格式:
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命令的參數(shù)說明:
-1
強制scp命令使用協(xié)議ssh1
-2
強制scp命令使用協(xié)議ssh2
-4
強制scp命令只使用IPv4尋址
-6
強制scp命令只使用IPv6尋址
-B
使用批處理模式(傳輸過程中不詢問傳輸口令或短語)
-C
允許壓縮。(將-C標志傳遞給ssh,從而打開壓縮功能)
-p 保留原文件的修改時間,訪問時間和訪問權限。
-q
不顯示傳輸進度條。
-r
遞歸復制整個目錄。
-v 詳細方式顯示輸出。scp和ssh(1)會顯示出整個過程的調試信息。這些信息用于調試連接,驗證和配置問題。
-c cipher
以cipher將數(shù)據(jù)傳輸進行加密,這個選項將直接傳遞給ssh。
-F ssh_config
指定一個替代的ssh配置文件,此參數(shù)直接傳遞給ssh。
-i identity_file
從指定文件中讀取傳輸時使用的密鑰文件,此參數(shù)直接傳遞給ssh。
-l limit
限定用戶所能使用的帶寬,以Kbit/s為單位。
-o ssh_option
如果習慣于使用ssh_config(5)中的參數(shù)傳遞方式,
-P port 注意是大寫的P, port是指定數(shù)據(jù)傳輸用到的端口號
-S program
指定加密傳輸時所使用的程序。此程序必須能夠理解ssh(1)的選項
scp命令的實際應用
本地復制遠程文件:(把遠程的文件復制到本地)
scp root@192.168.30.100:/val/test/test.tar.gz /val/test/test.tar.gz
遠程復制本地文件:(把本地的文件復制到遠程主機上)
scp /val/test.tar.gz root@192.168.30.100:/val/test.tar.gz
本地復制遠程目錄:(把遠程的目錄復制到本地)
scp -r root@192.168.30.100:/val/test/ /val/test/
遠程復制本地目錄:(把本地的目錄復制到遠程主機上)
scp -r /val/ root@192.168.30.100:/val/
注:復制的是目錄的話就要加-r參數(shù)
當同時有多個服務器的文件要復制到本地目錄:
scp root@192.168.0.1:/var/cp1.tar.gz root@192.168.0.2:/var/cp2.tar.gz /var/tmp/
注意:最后面的一個必需是目錄,前面的必須是文件,才能成功批量復制,復制中會提示多次輸入密碼。
使用scp將一個Linux系統(tǒng)中的文件或文件夾復制到另一臺Linux服務器上
復制文件或文件夾(目錄)命令:
一、復制文件:
(1)將本地文件拷貝到遠程
scp 文件名 用戶名@計算機IP或者計算機名稱:遠程路徑
本地192.168.1.8客戶端
scp /root/install.* root@192.168.1.12:/usr/local/src
(2)從遠程將文件拷回本地
scp 用戶名@計算機IP或者計算機名稱:文件名 本地路徑
本地192.168.1.8客戶端取遠程服務器12、11上的文件
scp root@192.168.1.12:/usr/local/src/*.log /root/
二、復制文件夾(目錄):
(1)將本地文件夾拷貝到遠程
scp -r 目錄名 用戶名@計算機IP或者計算機名稱:遠程路徑
scp -r /home/test1 zhidao@192.168.0.1:/home/test2
#test1為源目錄,test2為目標目錄,zhidao@192.168.0.1為遠程服務器的用戶名和ip地址。
(2)從遠程將文件夾拷回本地
scp -r 用戶名@計算機IP或者計算機名稱:目錄名 本地路徑
scp -r zhidao@192.168.0.1:/home/test2 /home/test1
#zhidao@192.168.0.1為遠程服務器的用戶名和ip地址,test1為源目錄,test2為目標目錄。
scp就是security copy,用于將文件或者目錄從一個Linux系統(tǒng)拷貝到另一個Linux系統(tǒng)下
scp傳輸數(shù)據(jù)用的是SSH協(xié)議,保證了數(shù)據(jù)傳輸?shù)陌踩?/p>
其格式如下:scp 遠程用戶名@IP地址:文件的絕對路徑 本地Linux系統(tǒng)路徑 scp 本地Linux系統(tǒng)文件路徑
遠程用戶名@IP地址:遠程系統(tǒng)文件絕對路徑名scp使用第一種格式是將遠程Linux系統(tǒng)上的某個文件或者目錄拷貝到本地Linux系統(tǒng)上來
使用第二種是將本地的某個文件或者目錄拷貝到遠程Linux系統(tǒng)的某個路徑下
舉例(1)目前我們處在IP為“192.168.60.133”的Linux系統(tǒng)下
計劃將系統(tǒng)下的/home/ixdba/etc.tar.gz文件拷貝到IP為“192.168.60168”的遠程Linux系統(tǒng)中root用戶下的/tmp目錄下:scp /home/ixdba/etc.tar.gz root@192.168.60.168:/tmp命令輸入完畢
會要求輸入“192.168.60.168”服務器root的密碼,然后開始遠程拷貝數(shù)據(jù)
如果我們處在“192.168.60.168”服務器上,也可以使用下面的命令傳輸數(shù)據(jù):scp root@192.168.60.133:/home/ixdba/etc.tar.gz /tmp命令輸入完畢,此時會要求輸入“192.168.60.133”服務器root的密碼,然后開始遠程拷貝數(shù)據(jù)
(2)將本地/etc目錄中所有的文件和子目錄拷貝到IP為“192.168.60.135”的遠程Linux系統(tǒng)的root用戶下的/opt目錄中:scp -r /etc root@192.168.60.135:/opt這里的選項“r”與cp命令的“r”選項含義相同
可以用scp命令
scp user@remote.machine:/remote/path /local/path
將遠程linux主機上/remote/path的文件copy到本主機的/local/path目錄
scp /local/path user@remote.machine:/remote/path
將本主機的/local/path目錄copy到遠程linux主機上/remote/path的文件
祝你成功!
當前名稱:linux拷貝服務器命令,linux文件拷貝命令
分享鏈接:http://chinadenli.net/article17/dseiedj.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信小程序、虛擬主機、面包屑導航、建站公司、搜索引擎優(yōu)化、網(wǎng)站內鏈
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)