標籤:scp實現linux到windows的檔案資料備份
SCP實現Linux到Windows的檔案資料備份
我們上一篇介紹了使用Curl+windows FTP實現linux到windows的資料備份,今天我們介紹一下使用SCP服務將Linux的檔案到Windows的檔案備份;我們都知道SCP使用的是SSL協議進行資料轉送的,所以我們如果使用SCP服務進行資料轉送的話需要安裝openssh-clients(linux上),而windows上我們需要單獨下載openssh for windows 工具。具體見下:
我們首先在linux上安裝openssh-clients
yum install –y openssh-clients
如果安裝了我們會出現以下現象;
650) this.width=650;" title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="image" src="http://s3.51cto.com/wyfs02/M02/88/02/wKiom1fnY1DwSOwwAABgVbVyxjw755.png" height="131" />
接下來我們就需要下載windows openssh clients了;安裝檔案我們會以附件的方式進行上傳
http://openssh.en.softonic.com/
我們windows下載後開始安裝
650) this.width=650;" title="clip_image001" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image001" src="http://s3.51cto.com/wyfs02/M01/87/FE/wKioL1fnY1HC9OZhAAG_Q5lijsQ686.png" height="484" />
我們預設勾選全部
650) this.width=650;" title="clip_image002" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image002" src="http://s3.51cto.com/wyfs02/M00/88/02/wKiom1fnY1KytbEdAAE0CbIZ9VY339.png" height="484" />
安裝目錄
650) this.width=650;" title="clip_image003" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image003" src="http://s3.51cto.com/wyfs02/M02/87/FE/wKioL1fnY1SAbPePAAFkONnT9u4610.png" height="484" />
警告,提示我們需要進行配置
650) this.width=650;" title="clip_image004" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image004" src="http://s3.51cto.com/wyfs02/M00/87/FE/wKioL1fnY1Whx-67AADrBsx2zPE281.png" height="484" />‘
安裝完成
650) this.width=650;" title="clip_image005" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image005" src="http://s3.51cto.com/wyfs02/M01/87/FE/wKioL1fnY1aDyHKDAAFRV8OVyMI729.png" height="448" />
我們開啟安裝目錄
650) this.width=650;" title="clip_image006" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image006" src="http://s3.51cto.com/wyfs02/M00/88/02/wKiom1fnY1ejlA7hAAD_AbERwjE822.png" height="460" />
通過命令提示字元進入安裝目錄
650) this.width=650;" title="clip_image007" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image007" src="http://s3.51cto.com/wyfs02/M01/88/02/wKiom1fnY1iDCRQLAADLEKsCukQ826.png" height="302" />
然後執行以下命令
mkgroup -l >> ..\etc\group 將本機群組成員匯入mkgroup -d >> ..\etc\group 將域中群組成員匯入mkpasswd -l >> ..\etc\passwd 將本機使用者成員匯入mkpasswd -d >> ..\etc\passwd 將域中使用者成員匯入mkpasswd -l -u administrator >> ..\etc\passwd
650) this.width=650;" title="clip_image008" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image008" src="http://s3.51cto.com/wyfs02/M02/88/02/wKiom1fnY1qx55s5AAFOYNYSkT4293.png" height="295" />
安裝後啟動服務;提示錯誤
650) this.width=650;" title="clip_image009" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image009" src="http://s3.51cto.com/wyfs02/M01/87/FE/wKioL1fnY13BEyXSAAFmXWw2F9g443.png" height="302" />
我們同時也在服務裡面啟動,也出現錯誤
650) this.width=650;" title="clip_image010" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image010" src="http://s3.51cto.com/wyfs02/M00/88/02/wKiom1fnY17iVxrKAAIBNOgVOvE286.png" height="397" />
因為是64位的檔案,所以我們需要覆蓋裡面的安裝檔案,將該附件解壓後,將兩個檔案覆蓋到bin目錄下即可
C:\Program Files (x86)\OpenSSH\bin<<setupssh381-20040709.zip>>
650) this.width=650;" title="clip_image011" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image011" src="http://s3.51cto.com/wyfs02/M02/87/FF/wKioL1fnY2Cz7nFRAAFUYF1_H6c824.png" height="325" />
覆蓋即可;如果有提示覆蓋的就覆蓋
650) this.width=650;" title="clip_image012" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image012" src="http://s3.51cto.com/wyfs02/M00/88/02/wKiom1fnY2OSANm9AAGUlxdI1FQ433.png" height="436" />
650) this.width=650;" title="clip_image013" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image013" src="http://s3.51cto.com/wyfs02/M01/88/02/wKiom1fnY2Xx1lYZAAIE_bfio1I241.png" height="484" />
覆蓋後,服務啟動正常
650) this.width=650;" title="clip_image014" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image014" src="http://s3.51cto.com/wyfs02/M01/88/02/wKiom1fnY2fhJELzAABxHjIc9l0093.png" height="231" />
650) this.width=650;" title="clip_image015" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image015" src="http://s3.51cto.com/wyfs02/M02/88/02/wKiom1fnY3Di883DAAHY6uldzCc722.png" height="354" />
然後在防火牆開放連接埠
650) this.width=650;" title="clip_image016" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image016" src="http://s3.51cto.com/wyfs02/M00/88/02/wKiom1fnY3Gixc6uAAESjPPtSKQ081.png" height="470" />
我們在linux上進行telnet服務進行測試
650) this.width=650;" title="clip_image017" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image017" src="http://s3.51cto.com/wyfs02/M00/88/02/wKiom1fnY3KzRd5ZAAFgYY7WnlE518.png" height="452" />
我們接下來使用命令進行嘗試資料上傳,提示錯誤
650) this.width=650;" title="clip_image018" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image018" src="http://s3.51cto.com/wyfs02/M01/88/02/wKiom1fnY3PijtFLAACW5EGYt5A684.png" height="98" />
配置key驗證
接下來我們需要配置key驗證,因為資料同步我們不能使用密碼驗證後再傳輸同步資料,所以我們需要配置key認證,這樣本機伺服器與遠程伺服器之間同步就不要求輸入密碼驗證了;
其實key驗證我們前面的文章中已經有寫了,為了方便在此還是說說。在原始伺服器上我們通過ssh-keygen產生一對驗證秘鑰,一個公開金鑰,一個私密金鑰;私密金鑰放在遠程伺服器上即可,私密金鑰需要公開金鑰驗證後才可以匹配,所以相對還是比較安全的;
1ssh-keygen -t rsa 斷行符號;
因為之前伺服器上使用註冊的,所以就拿來直接用了;電腦名稱不一樣;請忽略即可;
650) this.width=650;" title="clip_image019" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image019" src="http://s3.51cto.com/wyfs02/M02/87/FF/wKioL1fnY3TwQzcoAACHxDFV3VA222.png" height="78" />
建立目錄,認證目錄;然後一路斷行符號
650) this.width=650;" title="clip_image020" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image020" src="http://s3.51cto.com/wyfs02/M01/88/02/wKiom1fnY3TifJQ9AAGkdwIoZ4g745.png" height="349" />
在/root/.ssh 目錄下產生了一對密鑰檔案
id_rsa 私密金鑰
id_rsa.pub 公開金鑰
650) this.width=650;" title="clip_image021" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image021" src="http://s3.51cto.com/wyfs02/M00/87/FF/wKioL1fnY3XghvBMAABZBP2v_aE414.png" height="72" />
我們將公開金鑰拷貝到windows上
650) this.width=650;" title="clip_image022" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image022" src="http://s3.51cto.com/wyfs02/M01/87/FF/wKioL1fnY3aAe-g3AAFGN43-fYE400.png" height="198" />
650) this.width=650;" title="clip_image023" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image023" src="http://s3.51cto.com/wyfs02/M00/88/02/wKiom1fnY3iSD6jLAAFFwFwRn7U002.png" height="394" />
.將公匙匯入到winsshd Open easy setting–>Virtual accounts 點add按鈕,,,輸入一個名字,比如codeif,在列表中0 keys後的編輯按鈕,匯入剛才的公匙以後就可以不用輸入密碼,linux就可以通過scp命令從裝有winsshd的機器上擷取檔案了
註:在windows下只能使用命令來建立帶點的檔案夾".ssh"
650) this.width=650;" title="clip_image024" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image024" src="http://s3.51cto.com/wyfs02/M02/87/FF/wKioL1fnY3uQ86a3AAOiOvLVjHQ566.png" height="484" />
650) this.width=650;" title="clip_image025" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image025" src="http://s3.51cto.com/wyfs02/M00/87/FF/wKioL1fnY3zj648gAAE3PNuvn60044.png" height="345" />
將公開金鑰拷貝到該目錄
650) this.width=650;" title="clip_image026" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image026" src="http://s3.51cto.com/wyfs02/M01/88/02/wKiom1fnY33x2Y-fAABoavCF758136.png" height="248" />
2.將公匙匯入到winsshd
Open easy setting–>Virtual accounts
點add按鈕,,,輸入一個名字,比如codeif,在列表中0 keys後的編輯按鈕,匯入剛才的公匙以後就可以不用輸入密碼,linux就可以通過scp命令從裝有winsshd的機器上擷取檔案了
http://blog.csdn.net/acanoe/article/details/7868499
650) this.width=650;" title="clip_image027" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image027" src="http://s3.51cto.com/wyfs02/M02/88/02/wKiom1fnY36Q1pUQAAI-uAWtg_s560.png" height="450" />
net stop opensshdnet start opensshd
我們先從window上拷貝一個檔案到linux上
我們執行命令必須在openssh目錄下,不然會提示scp沒有這個命令,我們也可以將該路勁添加到環境變數中,這樣就可以任意執行命令了
C:\Program Files (x86)\OpenSSH\bin>scp.exe xxxx.txt [email protected]:/root
650) this.width=650;" title="clip_image028" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image028" src="http://s3.51cto.com/wyfs02/M00/87/FF/wKioL1fnY4CgyDUZAAFBS9sC7WU607.png" height="175" />
我們發現在linux下多了一個sh.exe的檔案
650) this.width=650;" title="clip_image029" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image029" src="http://s3.51cto.com/wyfs02/M02/88/02/wKiom1fnY4GzydkVAAA6K_sYQds657.png" height="39" />
我們也可以在windows上使用scp命令從linux上拷貝檔案到windows 本地
接下來我們測試從linux到windows的指定目錄進行拷貝檔案
這樣執行就傳輸到了預設路勁 ,安裝預設在 C:\Program Files (x86)\OpenSSH
scp /root/1.txt [email protected]:
650) this.width=650;" title="clip_image030" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image030" src="http://s3.51cto.com/wyfs02/M00/88/02/wKiom1fnY4LBoborAAERtWOYQdI269.png" height="210" />
650) this.width=650;" title="clip_image031" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image031" src="http://s3.51cto.com/wyfs02/M02/87/FF/wKioL1fnY4aBr2cgAAExAklyHTM655.png" height="344" />
scp 1.txt [email protected]:d:/data/
650) this.width=650;" title="clip_image032" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image032" src="http://s3.51cto.com/wyfs02/M01/88/02/wKiom1fnY4qRNtlHAAFVbMw2g2w022.png" height="248" />
或者使用--建議使用一下格式 使用cygdrive格式scp 1.sh [email protected]:/cygdrive/d/data/比如需要拷貝到windows一下目錄D:\test\data\--->我們需要更改命令格式/cygdrive/d/test/data/就少了很多錯誤提示
650) this.width=650;" title="clip_image033" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image033" src="http://s3.51cto.com/wyfs02/M01/87/FF/wKioL1fnY4uw2XojAACsTSCCr3A909.png" height="143" />
650) this.width=650;" title="clip_image034" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image034" src="http://s3.51cto.com/wyfs02/M02/88/02/wKiom1fnY4zS2jxKAABt7eQE3C4297.png" height="251" />
在linux上執行
650) this.width=650;" title="clip_image035" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image035" src="http://s3.51cto.com/wyfs02/M02/88/02/wKiom1fnY46TVF8cAAFlvHdO7Co423.png" height="280" />
本文出自 “高文龍” 部落格,謝絕轉載!
SCP實現Linux到Windows的檔案資料備份