Scp傳輸命令(資源)

 

 

首先,創建信任關係 1 VS 10. 但拿兩臺機器(192.168.1.6,192.168.1.4)作試驗

#ssh-keggen -b 1024 -t rsa  //(以root用戶)

#cd .ssh/

#ls

id_rsa

id_rsa.pub

knows_host

#scp id_rsa.pub 192.168.1.4:/root/.ssh/192.168.1.6

這裏把公鑰取名爲可信任主機的IP地址

如今登陸到192.168.1.4機器

#cd .ssh/

#cat 192.168.1.6 >> authorized_keys

而後回到192.168.1.6機器。

#ssh 192.168.1.4

 

上傳:html

scp /path/file  User@host:/LocalPathorFile

下載:linux

scp User@host:/path/file  /LocalPathorFile

用scp的時候遇到的問題:
Permission denied
lost connection
緣由就是在搭建服務器的時候爲了安全性起見,默認已經關閉了scp
解決辦法:
登錄服務器後 /etc/ssh/ssh_config 中的一個參數改一下:
PasswordAuthentication 將no改成yes
or
PasswordAuthentication前面的#刪掉 step
sudo vi /etc/ssh/sshssh_configshell

兩臺服務器傳文件
scp -P 端口號 root@對方服務器IP:對方服務器文件路徑+文件名 自身服務器保存路徑

scp 自身服務器文件路徑+文件名 root@對方服務器IP:對方服務器保存路徑

映射遠程端口到本地

ssh -C -f -N -g -L 26379:192.168.0.32:6379 remote_user@remote_ip:remote_port

掛載遠程目錄到本地

mount -t cifs //192.168.50.34/temp /root/aa -o username=allenli,password=lcc201314,rw,dir_mode=0777,file_mode=0777

 

1. [代碼]從服務器下載文件    安全

scp root@192.168.1.$1:$2 $3服務器

2. [代碼]上傳本地文件到服務器    ssh

scp $1 root@192.168.1.$2:$3ide

linux系統之間互傳文件

#文件複製:本機→遠程服務器 test@xxx.xxx.xxx.xx test爲用戶名,xxx.xxx.xxx.xx爲IP地址
scp /home/test/test.txt test@xxx.xxx.xxx.xx:/home/test.txt  
#文件複製:遠程服務器→本機
scp test@xxx.xxx.xxx.xx:/home/test.txt  /home/test/test.txt 
#文件夾複製在scp後面加上「-r」參數便可

遠程執行腳本 
ssh -l root 10.10.10.10 "/opt/test/stop.sh"; 
ssh -l root 10.10.10.10  "scp /opt/data/database.tcb 10.10.10.10:/opt/ttserver/test/test.tcb" 測試

 

開始傳輸文件:ui

輸入:scp  /home/helpteach/project/mallupload/1509681299449.png wasadmin@10.127.40.25:/home/testspa

而後拍回車鍵就能夠看到文件正在傳輸了,等再出現鼠標一閃一閃說明已經傳輸完畢了,給你們拆解一下語句

 對拷文件夾 (包括文件夾自己)

scp -r   /home/helpteach/project/mallupload/ wasadmin@10.127.40.25:/home/test

 對拷文件夾下全部文件 (不包括文件夾自己)

scp   /home/helpteach/project/mallupload/* wasadmin@10.127.40.25:/home/test

 對拷文件並重命名

scp  /home/helpteach/project/mallupload/1509681299449.png wasadmin@10.127.40.25:/home/test/test.png

/home/helpteach/project/mallupload/1509681299449.png:要傳輸的文件

注意  : 端口大寫P 爲參數,2222 表示更改SSH端口後的端口,若是沒有更改SSH端口能夠不用添加該參數。 root@www.vpser.net 表示使用root用戶登陸遠程服務器www.vpser.net,:/root/lnmp0.4.tar.gz 表示遠程服務器上的文件,最後面的/home/lnmp0.4.tar.gz表示保存在本地上的路徑和文件名。

獲取遠程服務器上的文件  : 
scp -P 2222 root@www.vpser.net:/root/lnmp0.4.tar.gz /home/lnmp0.4.tar.gz

 

獲取遠程服務器上的目錄 : 
scp -P 2222 -r root@www.vpser.net:/root/lnmp0.4/ /home/lnmp0.4/

 

將本地文件上傳到服務器上
scp -P 2222 /home/lnmp0.4.tar.gz root@www.vpser.net:/root/lnmp0.4.tar.gz

 

將本地目錄上傳到服務器上
scp -P 2222 -r /home/lnmp0.4/ root@www.vpser.net:/root/lnmp0.4/

 

 複製目錄: 

           scp -r local_folder remote_username@remote_ip:remote_folder 

                或者 

                scp -r local_folder remote_ip:remote_folder

                第1個指定了用戶名,命令執行後須要再輸入密碼; 

                第2個沒有指定用戶名,命令執行後須要輸入用戶名和密碼; 

 * 例子: 

                scp -r /home/space/music/ root@www.cumt.edu.cn:/home/root/others/ 

                scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/

                上面 命令 將 本地 music 目錄 複製 到 遠程 others 目錄下,即複製後有 遠程 有 ../others/music/ 目錄。

 

從 遠程 複製到 本地 

從 遠程 複製到 本地,只要將 從 本地 複製到 遠程 的命令 的 後2個參數 調換順序 便可;

例如: 

        scp root@www.cumt.edu.cn:/home/root/others/music /home/space/music/1.mp3 

        scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/

注意兩點 :

1.若是遠程服務器防火牆有特殊限制,scp便要走特殊端口,具體用什麼端口視狀況而定,命令格式以下:

#scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator

2.使用scp要注意所使用的用戶是否具備可讀取遠程服務器相應文件的權限。

 

cp使用方法

一、獲取遠程服務器上的文件

# cp -P 2424 username@(ip或遠程服務別名):/home/username/a.tar.gz /home/username/ 
-P 2424表示更改SSH端口後的端口,若是沒有更改SSH端口能夠不用添加該參數;

username@ip 表示使用指定用戶登陸遠程服務器;

二、獲取遠程服務器上的目錄

# scp -P 2424 -r name@ip:/home/name/aaa/ /home/name/ 
-r 參數表示遞歸複製(即複製該目錄下面的文件和目錄);

name@ip:/home/name/aaa/ 表示將遠程服務器上用戶家目錄下的aaa文件夾的內容複製到本地加目錄下;

/home/name/ 表示保存在本地上的路徑;

三、將本地文件上傳到服務器上

# scp -P 2424 ~/aaa.tar.gz name@ip:/home/user/ 
表示將本地用戶家目錄的文件上傳至遠程服務器上用戶的家目錄下;

四、將本地目錄上傳到服務器上

# scp -P 2424 -r ~/aaa/ name@ip:/home/user/bbb/ 
表示將本地家目錄aaa的文件夾的文件所有傳至遠程服務用戶家目錄下的bbb文件夾裏;

 

一、本地文件傳輸到遠程服務器

命令格式:

1

scp test.txt root@192.168.1.1:/home/

將test.txt文件複製到目標服務器(192.168.1.1)下的home文件夾下。

2.本地文件夾傳輸到遠程服務器

命令格式:

1

scp -r test root@192.168.1.1:/home/

將test整個文件夾複製到目標服務器下的home文件夾下。

3.遠程服務器文件傳輸到本地

命令格式:

1

scp root@192.168.1.1:/home/test.txt test

將遠程服務中home目錄下的test.txt文件,複製到本地的test目錄下

4.遠程服務器文件夾複製到本地

1

scp -r root@192.168.1.1:/home/test /Users/jjz

將遠程服務器中home目錄下的test整個目錄複製到本地的jjz目錄下

五、scp命令指定密鑰文件

1

scp test.txt root@192.168.1.1:/home/ -i ~/.ssh/id_rsa.1

 

要把當前一個文件copy到遠程另一臺主機上,能夠以下命令。

scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root

反過來操做,把文件從遠程主機copy到當前系統,也很簡單。

scp root@/full.tar.gz 172.19.2.75:/home/root/full.tar.gz home/daisy/full.tar.gz

將本機文件複製到遠程服務器上

#scp /home/administrator/news.txt root@192.168.6.129:/etc/squid

/home/administrator/ 本地文件的絕對路徑

news.txt 要複製到服務器上的本地文件

root 經過root用戶登陸到遠程服務器(也可使用其餘擁有同等權限的用戶)

192.168.6.129 遠程服務器的ip地址(也可使用域名或機器名)

/etc/squid 將本地文件複製到位於遠程服務器上的路徑

如圖經過root用戶登陸遠程服務器,輸入yes表示贊成創建ssh鏈接

按提示輸入root用戶的密碼

如圖所示創建鏈接後開始傳輸文件,顯示百分比、實際時間和傳送速度等信息

 

 

一,兩臺機器一對一scp傳文件 
一、使用ssh-keygen 命令生成密鑰。生成過程當中,除了輸入密碼外,其餘都選擇默認的值:回車便可。 
[root@xxx root]# ssh-keygen -t rsa 
Generating public/private rsa key pair. 
Enter file in which to save the key (/root/.ssh/id_rsa):#回車 
Created directory '/root/.ssh'. 
Enter passphrase (empty for no passphrase):#回車 
Enter same passphrase again:#回車 
Your identification has been saved in /root/.ssh/id_rsa. 
Your public key has been saved in /root/.ssh/id_rsa.pub. 
The key fingerprint is: 
e0:f0:3b:d3:0a:3d:da:42:01:6a:61:2f:6c:a0:c6:e7 root@xxx 
Generating RSA keys: 
Key generation complete. 
會在用戶目錄~/.ssh/產生兩個文件,id_rsa是密鑰,id_rsa.pub是公鑰 

二、把這個密鑰對中的公共密鑰訪問屬性改成755 
[root@xxx root]#chmod 755 /root/.ssh/id_rsa.pub 

三、將id_rsa.pub複製到備份的機器上去,並更名爲 authorized_keys,注意,名字必須是authorized_keys 
[root@xxx root]# scp /root/.ssh/id_rsa.pub 192.168.1.92:/root/.ssh/authorized_keys 
root@xxx's password: 
id_rsa.pub                                    100%  218     3.2MB/s   00:00 
[root@xxx root]# 

以後再用ssh scp sftp 訪問那臺機器時,就不用輸入密碼。這樣能夠利用shell進行自動文件傳送了。 



2、多臺機器多對一scp傳文件    

        若是多臺機器的文件須要傳到一臺機器上,須要注意,機器的名稱是惟一的,不能有重複。 一、每一個發送機器,都須要各自作【兩臺機器一對一scp傳文件】的步驟一、2,生成本地密鑰和公鑰,並對公鑰id_rsa.pub賦權限 二、將每臺機器的公鑰都發送到接收機器端,在接收機器端將這些公鑰合併成一個authorized_keys文件,最好每一個公鑰隔行 三、在接收機器端將authorized_keys文件發送到每一個發送機器端,位置就放在各自用戶目錄~/.ssh/下。 四、每臺發送機器端執行ssh-add    ssh-add用於將密鑰加入到ssh-agent中,SSH能夠和ssh-agent通訊獲取密鑰,這樣就不須要用戶手工輸入密碼了。 五、測試發送端發送文件到接收端。

 

資源

scp自動備份  :  http://www.voidcn.com/article/p-qwuvvoip-bgc.html

在crontab中利用scp命令自動備份文件  : http://www.voidcn.com/article/p-abukhsmb-wr.html

在Linux下用scp複製文件無需輸入密碼的技巧 : https://www.jb51.net/article/72327.htm

相關文章
相關標籤/搜索