FTPを介したファイルの同期


11

コンピューター内のファイルを、FTPアクセスのみが可能なサーバーと同期する必要があります。そのため、rsyncは使用できません(少なくともSFTPが必要ですが、使用できるチャネルはプレーンなバニラFTPのみです)。

マシンからサーバーへの一方向の同期のみが必要です。unisonというプログラムを聞いたことがありますが、これは双方向の同期を目的としているようで、自分のやりたいことを実行するために調整できるかどうかわかりません。また、スクリプト内で使用できるように、プログラムは非対話的に動作する必要があることも付け加えておきます。

最後のオプションは、変更時間(またはそのようなもの)でファイルを比較し、変更されたファイルをコピーする独自のスクリプトを作成することです。FTPディレクトリをローカルディレクトリにマウントすることができたので、2つのディレクトリを同期するだけで問題が解決します。しかし、私の直感は、そのようなものはすでに野生に存在しているに違いないことを教えてくれます。

回答:


14

私はwput仕事に行くことができなかったので、私は代わりを探して見つけました:ncftp

より具体的には、ncftpputは、wputが行うように設計されたものとほとんど同じように動作するように見えました。私にとって最も重要なのは、wputのようにクラッシュしなかったことです。そして実際、-zオプションを使用して変更されていないファイルのみをアップロードすることができます。

ncftpput -z -u user -p pass ftp.mydomain.com dir/name files-to-upload...

私には完璧に働きました
roman m

OSXでは、次の方法でインストールしますbrew install ncftp
kenorb 2015

1
ディレクトリツリー全体をコピーするには、を使用します-R
kenorb 2015

「noclobber」/「do n't overwrite」を意味する-zの
適応外

2日前に見つけたといいのですが。manページに「新しいもののみ」「既存のものをスキップする」オプションが表示されなかったため、ncftpgetをあきらめました。私はlftpで頭を打ちました-BASHからPythonまで。次に、Googleでncftpをもう一度試し、あなたの解決策を見つけました。私はそれをncftpget(manページ)について調べました-「-z / -Z転送を再開しようとします(しないでください。デフォルトでは再開を試みます)。説得力があるように聞こえなかった。しかし、それは私が探していたオプションです。ncftpgetを使用して新しいファイルのみをダウンロードしてください。このコメントが助けになれば幸いです。
Anup Nair 2018


3

確かに、それはwputと呼ばれます


もちろん!それについてどう思いましたか。そのプログラムを完全に忘れてしまった。うまくいくと思いますが、家に帰って試してみたらレポートします...
Rene Saarsoo

一部の理由で、何かをアップロードしようとすると、wputによって「セグメンテーション違反」が発生します。
Rene Saarsoo、2009
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.