Windows/Azure
我正在尋找一個能夠在外部 SFTP 網站和本地儲存之間動態執行雙向同步的應用程式(或其他解決方案)。
具體來說,(以面向伺服器的方式思考),有一個導入資料夾和一個匯出資料夾。
因此,如果伺服器端對匯出資料夾中的檔案進行了更改(包括 new/delete ),則客戶端將反映這一點(在某個時間間隔內)。
以類似的方式,如果客戶端對匯入資料夾中的檔案進行了更改,伺服器端也會反映這一點。
我想這個應用程式可能需要同時存在於客戶端和伺服器上。也許這是一種特殊類型的 SFTP 伺服器。
特定用例是每天存檔的以時間戳命名的檔案(複製到以時間戳命名的存檔子資料夾,然後從主資料夾中刪除)。
對雲端解決方案特別感興趣,例如 Azure。
我發現許多傳統的 DC SFTP 伺服器仍然存在,提供者沒有提供太多靈活性(例如,他們使用特定的 SFTP 產品並且不會改變)。因此,最理想的應用程式/解決方案是與現有舊 SFTP 伺服器共存。
答案1
Ftp Voyager 將執行此操作。 (假設是windows,你沒說) https://thwack.solarwinds.com/resources/b/geek-speak/posts/ftp-voyager-debuts-as-solarwinds-free-tool
它將作為一項服務安裝,並有一個調度程序來創建到站點的連接配置文件,然後安排它們按時間/間隔下拉資料。
如果您熟悉 ftp 指令,編寫 SFTP 本機用戶端甚至 PSFTP(putty 專案的一部分)的腳本也不難,語法非常相似。https://www.puttygen.com/psftp
特別是開關 -B,與 with 一起,您基本上可以處理命令腳本,就像在終端上一樣,然後將其作為任務計劃程序中的任務
-B – It specifies a file with batch commands. The ‘-b’ command helps user automate tasks by allowing them to set commands in advance.
在任何一種情況下,以這種方式同步 SFTP 都不需要伺服器端知道您正在自動化它,更不用說安裝任何東西,它只是做與用戶透過程式碼做的事情相同的事情。 https://the.earth.li/~sgtatham/putty/0.52/htmldoc/Chapter6.html
使用 psftp 的範例:建立一個名為 dlall.txt 的簡單文字文件
假設佇列中有一個名為 iQ 的資料夾,另一端有一個名為 out 的目錄,以下腳本...
lcd - 將本機目錄變更為 iQ
cd out - 更改到遠端的 out 目錄
mget * - 多個文件獲取,下載其中的內容。
退出——退出
lcd .\iQ
cd out
mget *
quit
然後像這樣將其傳遞到 PSFTP
psftp user@host -P [port number] -b dlall.txt
現在假設您知道如何進行身份驗證,兩者都將接受命令列上的憑證,或者您可以設定 pubkey 驗證。我不建議使用密碼,因為要使其自動化,您必須以純文字形式儲存密碼。 FtpVoyager 將儲存密碼,但至少會對它們進行加密。不過,兩者都可以更安全地使用 pubkey。
另請注意,如果您想確保雙方實際上相等,則使用“同步”一詞,這比較困難,並且可能會引導您返回 FTPVoyager
或者如果伺服器支援的話,可以考慮透過 ssh 進行 rsync。