私は、状況によってはFTP経由でphpWebアプリケーションをデプロイする必要がある会社で働いています。展開プロセスを自動化する過程にあり、ファイルをステージング環境と本番環境にFTPで転送するスクリプトを作成する必要があります。
要件:
制限:
私の質問:自分で作成するのではなく、これらの要件を満たすFTPベースのユーティリティを使用できますか?
クライアントを制御している限り、クライアントで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/
スクリプトと自動化にはantを使用します。 ant FTPタスクには、新しいファイルまたは変更されたファイルのみを転送する「依存」パラメーターがあります http://ant.Apache.org/manual/Tasks/ftp.html
たぶん、ディレクトリをサーバーに同期するためのncftpの行に沿った何か。それをcapistranoにドロップすることもできます(デプロイするバージョンをチェックアウトしたら、:deployをオーバーライドしてncftpコマンドを実行します)。