2011-10-19 5 views
1

私は娘の学校のウェブサイトを維持しています。歴史的に私はサービスプロバイダーのwebftpインターフェースを使用して、WebベースのGUIを通じて編集を行いました。これは、私が通常行う必要のある小さな編集でうまくいきました。彼らは最近、セキュリティ上の理由からwebftpを無効にし、ftpをWebページを変更して文書をアップロードする手段として残しました。はい、私はFTP自体が非常に安全ではないことを知っていますが、それは別の話です。変更したファイルをLinuxのウェブサイトにアップロードするにはどうすればよいですか?

私はサイトをプルダウンするためにwgetを使い、変更を管理するgitリポジトリを構築しました。変更を加えると、新しいファイルや変更されたファイルをWebサイトにアップロードしたいと考えています。理想的には、サイト全体ではなく、新しいファイルや変更されたファイルのみをアップロードします。私の質問は私がこれをどうやってするのか?

wputは有望ですが、wgetが作成したディレクトリが再帰的にアップロードする必要があるディレクトリと、対象ディレクトリを指定する必要があるかどうかは不明です。私たちはライブサイトについて話しているので、私は物事が正しくなるまで実験したくありません。

これはよく知られているソリューションの一般的な使用例であるはずですが、少し幸運を見つけることができました。私はGoogleとStack Overflowで "upload changed files ftp linux"のような用語で検索を試みましたが、普通のように明確な答えがポップアップしません。いくつかはrsyncを推奨していますが、ターゲットはサービスプロバイダーのシステム上にあるため、機能しない可能性があります。私が見つけた私の質問の多くの変種は、Windows中心であり、私はLinuxで作業して以来ほとんど役に立たない。

私はターゲットVMをセットアップしてそれを試すことができますが、それは簡単に答えられる質問であるために過度に思えるので、私はStack Overflowに訴えています。何がお勧めですか?

+0

再帰的なgetでリモートサイトを取得し、現行のローカルと新しいローカルコピーされたディレクトリに対して再帰的差分を使ってリストを取得することを考えましたか?アップロードが必要なファイル – Angelom

+0

wgetを使用してサイトをワークステーションに再帰的に転送しました。差分の場合にアップロードをトリガーする再帰的なファイル比較が、まさに私が探しているものです。私はむしろ、それをさらに処理する必要があるアップロードリストを生成するよりも、自動的にすべて動作させることができます。はい、スクリプトで簡単に処理できますが、確かにそのようなことは既に存在します。私はそれを見つけるのが苦労しているだけです。 –

+0

私はwputを試みましたが、確かに再帰的にファイルをアップロードしていますが、変更されていなくても常にアップロードされているようです。私は--timestamping --reuploadと--dont-continueのいろいろな組み合わせを試みましたが、常にファイルをアップロードしました。私は、ファイルがテキストであったので、アップロードの基準としてファイルのサイズを無視し、常にアップロードすると言った - 詳細モードを有効にしました。私はその後バイナリをオンにしましたが、それでもファイルをアップロードしました。おそらく、タイムスタンプフィールドを解析できないだけかもしれません。 wputのSourceForgeサイトのサポートページには2008年以来クローズドな問題はないので、wputは放棄されたと思います。 –

答えて

2

多分この答えはあなたを助けます:https://serverfault.com/questions/24622/how-to-use-rsync-over-ftp/24833#24833

それは、リモートとローカルのディレクトリツリーを同期するlftpのミラー機能を使用しています。

また、サイトを管理する際にftpクライアントで構築されたmc(midnight commander)もかなり使いました。

+0

ありがとう@jpjacobs。 lftpプログラムがこのトリックを行った。コマンド 'lftp -c mirror -Re localdir ftp:// username:password @ ftp.website.com/remotedir'は私が必要としていたものです。つまり、ローカルファイルが消えたときにリモートファイルを削除する逆ミラーです。メインサイトのディレクトリと並行してテストディレクトリツリーを作成して、安全にテストできるようにしました。 –

1

gitと​​を使用する必要があります。どのプロジェクトでもVCSを使うのは良い考えです...

関連する問題