日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

服务器间传文件$d,基于OpenSSH+WinSCP完成Windows服务器之间的文件传输

發(fā)布時(shí)間:2025/3/8 windows 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 服务器间传文件$d,基于OpenSSH+WinSCP完成Windows服务器之间的文件传输 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

背景

經(jīng)常會(huì)遇到在不同服務(wù)器之間傳輸文件,Linux和Linux之間用命令rsync, windows和linux之間普遍是有圖形化界面的ftp軟件,老黃平時(shí)用的比較多的是FileZilla。

Windows和Windows之間的話(huà),90%都是在一臺(tái)機(jī)器復(fù)制,到另一臺(tái)機(jī)器去粘貼。這個(gè)在做CICD的時(shí)候就不太現(xiàn)實(shí)了,需要通過(guò)命令來(lái)自動(dòng)完成,不能再通過(guò)手動(dòng)復(fù)制粘貼的方式來(lái)完成。

FileZilla,在Windows上面接用腳本操作的話(huà),并不是很方便,也會(huì)有交互式的彈窗確認(rèn),于是就嘗試了一下WinSCP。

因?yàn)閃inSCP的官網(wǎng)是很明確的指出,它是支持腳本操作的。

下面老黃就簡(jiǎn)單介紹一下,如何在兩臺(tái)Windows機(jī)器之間搞定文件傳輸。

OpenSSH

OpenSSH是這篇文章的基石,因?yàn)槲覀儾淮蛩愦罱ㄒ粋€(gè)ftp服務(wù)器,所以要用最直接的方案,在遠(yuǎn)程服務(wù)器安裝OpenSSH。

在Windows安裝OpenSSH,PowerShell組織下的Win32-OpenSSH項(xiàng)目有提供編譯好的windows版本。

https://github.com/PowerShell/Win32-OpenSSH/releases

老黃這里下載的是OpenSSH-Win64.zip。

解壓后的文件要放到?C:\Program Files\OpenSSH?目錄下面,

執(zhí)行下面的命令來(lái)安裝sshd服務(wù)

powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

安裝完,會(huì)在windows服務(wù)看到兩個(gè)新的服務(wù),把他們啟動(dòng)即可。

下面就是要安裝WinSCP了。

WinSCP

WinSCP,直接從官網(wǎng)下載即可。

https://winscp.net

WinSCP也是可以通過(guò)界面操作的,不過(guò)這里不會(huì)涉及,是通過(guò)它提供的Scripting and Task Automation來(lái)完成文件傳輸。

下面就來(lái)簡(jiǎn)單介紹一下怎么使用。

先來(lái)個(gè)簡(jiǎn)單的,從遠(yuǎn)程服務(wù)器拉取一個(gè)文件試試。

下面是用到的幾個(gè)命令,也加上了注釋,應(yīng)該比較容易懂的。

# 連接上遠(yuǎn)程服務(wù)器

open sftp://用戶(hù)名:密碼@10.10.8.9 -hostkey="*"

# 選擇遠(yuǎn)程服務(wù)器的目錄

cd /D:/ftptest

# 從遠(yuǎn)程服務(wù)器的目錄下載文件 examplefile.txt 到本地電腦的目錄 d:\winscp_scripts

get examplefile.txt d:\winscp_scripts

# 斷開(kāi)連接

close

# 退出

exit

注:

選擇遠(yuǎn)程服務(wù)器目錄時(shí),要注意路徑是否存在

在完成所有操作后,記得斷開(kāi)連接和退出

cd進(jìn)入WinSCP的安裝目錄,執(zhí)行下面的命令,其中a.txt?就是我們上面寫(xiě)的腳本

.\WinSCP.com /ini=nul /script=D:\winscp_scripts\a.txt

來(lái)看看執(zhí)行的效果,已經(jīng)把遠(yuǎn)程服務(wù)器上面的文件拉下來(lái)了。

下面來(lái)看看上傳文件。

# 連接上遠(yuǎn)程服務(wù)器

open sftp://用戶(hù)名:密碼@10.10.8.9 -hostkey="*"

# 選擇遠(yuǎn)程服務(wù)器的目錄

cd /D:/ftptest

# 上傳文件夾到遠(yuǎn)程目錄

put D:\winscp_scripts\web_app_demo

# 斷開(kāi)連接

close

# 退出

exit

整體的過(guò)程和獲取文件差不多,有區(qū)別的就是把get命令改成put

上面的示例是直接把整個(gè)文件夾傳到遠(yuǎn)程服務(wù)器的遠(yuǎn)程目錄。

上傳后的結(jié)果如下

當(dāng)然有些時(shí)候,我們發(fā)布的文件,有一些是不想直接傳上去的,好比一些奇葩的配置文件

要滿(mǎn)足這個(gè)需求,我們就需要給put命令加個(gè)參數(shù),過(guò)濾掉我們不需要傳輸?shù)奈募?/p>

這里就要借助-filemask?這個(gè)參數(shù)來(lái)過(guò)濾了。它可以用|符號(hào)來(lái)分割包含的和排除的文件

下面的例子就是排除了.config文件

put D:\winscp_scripts\web_app_demo -filemask=*|*.config

從這個(gè)例子打印的傳輸日志也可以發(fā)現(xiàn),web.config這個(gè)文件并沒(méi)有上傳上去。

還有很多其實(shí)參數(shù)和使用方法,可以去官網(wǎng)查看,這里就點(diǎn)到為止。

總結(jié)

在WinSCP和OpenSSH的基礎(chǔ)上,就可以比較方便的完成文件傳輸,如果需要在Windows上面做CI/CD,也就可以借助這個(gè)組合來(lái)完成了。

WinSCP的命令用起來(lái)還算是比較簡(jiǎn)單,不會(huì)有很大的難度,這里用的是它原始的命令工具,也可以用powershell來(lái)完成,有興趣的也可以試試。

相關(guān)鏈接

https://winscp.net/eng/docs/scripting

https://github.com/PowerShell/Win32-OpenSSH/wiki

總結(jié)

以上是生活随笔為你收集整理的服务器间传文件$d,基于OpenSSH+WinSCP完成Windows服务器之间的文件传输的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。