朋友的一個sns網站以前一直用的是windows 2003的服務器, 維護起來確實不是很方便,出於管理,穩定,以及安全它一直是個人心病, 正遇上最近朋友的網站要改版, 並且要作一些後臺的任務,因而想把網站遷移到另一臺linux的服務器上。 如何轉移是好呢, sns的網站你們也知道數據量很是的大,並且圖片太多了。 若是是用ftp下載下來再上傳到另一臺服務器上, 時間就不是以天爲單位了。html
因而網上搜索有關windows的傳輸工具, pscp出如今個人眼簾。 呵呵linux
pscp是putty安裝包所帶的遠程文件傳輸工具,使用和Linux下scp命令類似。sql
下載地址:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.htmlwindows
如何應用呢?如下以我本地的電腦爲例:安全
命令行下進入該目錄,pscp help看一下它的相應參數:服務器
Usage:session
格式一:pscp [options] [user@]host:source target ssh
功能:遠程傳輸到本地ide
user:遠程主機的用戶名工具
host:遠程主機的ip
source:遠程主機上的文件, 只能是單個。
target:本地的存放路徑可指定文件名。如:./test.zip, 若不指定則默認原文件名
列:pscp root@192.168.1.245:/root/user.sql ./
格式二:pscp [options] source [source....] [user@]host:target
功能:本地傳輸到遠程
source:本地的文件,多個文件用「空格」隔開
user:遠程主機的用戶名
host:遠程主機的ip
target:遠程的存放路徑可指定文件名。如:/root/test.zip, 若不指定則默認原文件名
例:pscp -v test.zip root@192.168.1.245:/root/test_rename1.zip
例:pscp -v test.zip, a.zip root@192.168.1.245:/root/
注:傳輸多個文件不能指定文件名哦!
格式三:pscp [options] -ls [user@]host:filespec
功能:查看遠程主機的目錄
-ls:應該是list的意思,能夠簡單的理解爲咱們在linux下的ls 命令同樣。 不就是列目錄嘛!
user:遠程主機的用戶名
host:遠程主機的IP
filespec:遠程主機的相應目錄
例:pscp -ls root@192.168.1.245:/root/
意思是查看這臺主機下的root目錄, 不錯吧!
pscp options(參數)
參數 | 描述(英文) | 描述(中文) |
-V | print version information and exit | 打印版本信息並退出 |
-pgpfp | print PGP key fingerprints and exit | 未知,等解, 有知道的朋友請留言詳細描述一下, thks. |
-p | preserve file attributes | 保留文件屬性 |
-q | quiet, don't show statistics | 悄悄地, 不顯示統計數據 |
-r | copy directories recursively | 遞歸拷貝目錄 |
-v | show verbose message | 顯示冗餘信息 |
-load | sessname Load settings from saved session | 加載保存好的會話設置 |
-P port | connect to specified port | 鏈接指定的端口(若是不用此選項,默認爲22端口) |
-l user | connect with specified usernam | 指定用戶鏈接 |
-pw passw | login with specified password | 顯式的輸入用戶密碼 |
-1 -2 | force use of particular SSH protocol version | 強制使用指定SSH協議版本, 能夠經過:cat /etc/ssh/ssh_config | grep Protocol 來查看, 也能夠用pscp -v的形式先鏈接一下, 它會顯示出全部冗餘信息,其中會有這麼一行Using SSH protocol version 2 具體試一下就知道了! |
-4 -6 | force use of IPv4 or IPv6 | 強制使用IPv4或IPv6 |
-C | enable compression | 使用壓縮 |
-i key | private key file for authentication | 認證所須要的私有密鑰文件 |
-noagent | disable use of Pageant | 不使用Pageant |
-agent | enable use of Pageant | 使用Pageant |
-batch | disable all interactive prompts | 禁用全部交互提示 |
-unsafe | allow server-side wildcards (DANGEROUS) | 容許服務器段的通配符 |
-sftp | force use of SFTP protocol | 強制使用SFTP協議 |
-scp | force use of SCP protocol | 強制使用SCP協議 |
簡單說一下幾個參數:
-P 指定ssh的端口, 注意是大寫的P
pscp -P 2992 test.zip root@192.168.1.245:/root/
-l user 的用戶
pscp -l root test.zip 192.168.1.245:/root/ 其實就是把user提到了前面用-l來指定。
-pw passw
pscp -l root -pw 123456 test.zip 192.168.1.245:/root/ 與-l同樣。 能夠直接指定密碼,出於安全性考慮不見意這樣使用。
其它參數可根據本身的需求查看參數表, 以上是pscp的全部用法介紹, 應該夠你用了。
個人朋友的網站的解決方案是我在他的服務器上把相應文件打成N個ZIP包(windows zip有限制因此只能打N個了, 雖然有點傻X,但我沒想到其它好辦法), 而後使用PSCP批量傳輸過去的。 注意包必定是zip的, 到linux上能夠用unzip來解壓。速度很快, 大概在5個小時左右就完成了所有的傳輸工做。