web-dev-qa-db-ja.com

FTP経由でのみ新規および変更されたファイルを展開する方法

私は、状況によってはFTP経由でphpWebアプリケーションをデプロイする必要がある会社で働いています。展開プロセスを自動化する過程にあり、ファイルをステージング環境と本番環境にFTPで転送するスクリプトを作成する必要があります。

要件:

  1. 新規または変更されたファイルのみをリモートサーバーに転送する必要があります

制限:

  1. リモート環境ではいかなる種類のシェルアクセスもありません
  2. Rsyncを使用できません
  3. FTPのみ利用可能

私の質問:自分で作成するのではなく、これらの要件を満たすFTPベースのユーティリティを使用できますか?

2
Ben Waine

クライアントを制御している限り、クライアントでFTPFSを使用してから、ローカルディレクトリを明らかにローカルであるが実際にマウントされているFTPFSディレクトリにrsyncすることができます。

FTPFSが [〜#〜] lufs [〜#〜] の一部になったことを理解しています。

編集:チュートリアルにリンクしたいのですが、通常はプロジェクトwikiから始めて、sourceforgeで何かが起きているようです。 。 cURLとFuseに基づいているように見えるCurlFTPFS、 ここにあります 、そしてそこでのマウント/アンマウントは次のように簡単なようです:

$ mkdir sunet
$ curlftpfs ftp://ftp.sunet.se/ sunet/
$ cd sunet/
$ ls -l
total 0
Dr-xr-xr-x   3 root root        96 Feb 23  2004 bin
dr-xr-xr-x   2 root root        72 Mar  2  2004 dev
dr-xr-xr-x   2 root root        48 Feb 23  2004 etc
dr-xr-xr-x   2 root root       120 Feb 23  2004 lib
-rw-r--r--   1 root root 622187310 Mar 11 06:13 ls-lR
-rw-r--r--   1 root root  76389037 Mar 11 06:15 ls-lR.gz
drwxrwxr-x  37 root root      1272 Feb 27 14:17 pub
dr-xr-xr-x   3 root root        72 Feb 23  2004 usr
$ cd ..
$ fusermount -u sunet/
7
MadHatter

スクリプトと自動化にはantを使用します。 ant FTPタスクには、新しいファイルまたは変更されたファイルのみを転送する「依存」パラメーターがあります http://ant.Apache.org/manual/Tasks/ftp.html

2
jqa

たぶん、ディレクトリをサーバーに同期するためのncftpの行に沿った何か。それをcapistranoにドロップすることもできます(デプロイするバージョンをチェックアウトしたら、:deployをオーバーライドしてncftpコマンドを実行します)。

1
blongden