由於需要將Windows Server上的文件備份出來,考慮到用Windows自身文件共享方式不×××全,希望用命令行和scp方式將文件壓縮並拷貝到CentOS上。做了兩天實驗,終於成功達到目的。總結一下,用了以下工具和方法:
1. 命令行壓縮/解壓縮:WinRAR中有rar.exe 和 unrar.exe命令行工具,將這兩個exe文件拷貝到Windows server 上,相應改變PATH後,
a)c:\backup\rar a target.rar source.*: 實現壓縮
b) c:\recovery\unrar e target.rar: 實現解壓
2.綠色軟件 PSCP實現跨平臺文件傳輸:
a) 拷貝單個文件:pscp target.rar user@centos-servername:/home/user/backup
b)拷貝目錄:pscp -r c:\backup user@servername:/home/user/backup
c)命令行中帶入密碼拷貝:pscp -l user -pw "xyzabc" target.rar centos-servername:/home/user/backup
d)公鑰信任拷貝(無需密碼):pscp -i private.ppk target.rar user@centos-servername:/home/user/backup
Notes: 公鑰建立過程:
d1) 下載puttygent.exe到Windows Server並運行;
d2) Generate 公/私密鑰對(public/private key pair), 將私鑰保存到本機private-centos.ppk文件中
d3) 將公鑰拷貝到CentOS 的/home/user/.ssh/authorized_keys文件中,注意:.ssh權限應爲700, authorized_keys權限應爲600,不然連接過程會提示”Server refused our key“錯誤。
d4) 運行:pscp -i private-centos.ppk target.rar user@centos-servername:/home/user/backup
d5)將上述命令放入到Windows Server定時任務中,就可以實現定時將Windows中的需要備份的文件拷貝到指定的Linux主機上了。
3. 如果將rar與pscp放在同一個腳本中,就可以實現Windows文件自動壓縮並拷貝到Linux上了。