web-dev-qa-db-ja.com

FTPフォルダーをWindowsフォルダーと同期させます

開発環境で継続的インテグレーションシステムを最初から最後まで機能させようとしています。

残念ながら、公開後の最後のステップは、FTP経由でのみアクセスできるオフサイトサーバーにフォルダーをコピーすることです。

ローカルフォルダを監視するサービスを実行し、変更された場合は、それらの変更でFTPサーバーを更新したいと思います。

Windowsでこれを実現するための何かを見つけることができないようです。

8
CaffGeek

無料のオープンソース WinSCP FTPクライアント があり、これにはあらゆる種類の機能があります。

探しているコマンドは "コマンド"メニューにあり、"リモートに保つ最新のディレクトリ "

Keep Remote Directory up to Date Dialog


スクリプトサポートはkeepuptodateコマンドからも利用できます があります。

14
Matthijs P

SyncBack のフリーウェアバージョンを試してください。リアルタイムのフォルダ監視は行いませんが、指定した間隔で同期するようにスケジュールできます。 1分程度の低い値に設定してください。

5
John T

gitに基づく無料のオープンソースソリューション:

同期には git-ftp を使用します。ローカルのgitリポジトリをインストールして設定した後、次のことができます。

  • git ftp init -u <user> -P f tp://Host.example.com/public_html#初めてプッシュする場合
  • git ftp Push --user <user> --passwd <password> f tp://Host.example.com/public_html

ここで、ファイルシステムの変更を監視し、それらをローカルのgitリポジトリに追加して、上記のコマンドを使用してリポジトリをプッシュする必要があります。

利点:

  • git-ftpはWindowsとLinuxで動作します(Windowsのmysys gitでテスト済み)
  • すでにgitを使用している場合は、開発セットアップにうまく統合されます
  • セットアップと使用が非常に簡単です(gitに精通している場合)
  • 増分変更->多くの帯域幅を節約します

デメリット:

  • ファイルシステムの変更を監視するための解決策を見つける必要があります(たとえば、nodejsにはこれに対する解決策があります)。

これは私がWindowsで使用しているバッチファイルの例です:

@echo off
git init .
git add . --all
git commit -am "auto commit"
set /p pwd= Please enter ftp password: 
git ftp Push --user myftpuser --passwd %pwd% ftp://myftphost.com/myfolder

これはインタラクティブな例ですが、パスワードをバッチファイルに保存することで非インタラクティブにすることができます。

2
dominik andreas