11

Web サイトのファイルのアップロードを自動化したい。ただし、リモート サーバーは ssh をサポートしていないため、rsync の代わりに以下の lftp コマンドを試します。

lftp -c "set ftp:use-mdtm no && set ftp:timezone -9 && open -u user,password ftp.example.com && mirror -Ren local_directory remote_directory"

ローカル ファイルが変更されていない場合、このコマンドによってファイルはアップロードされません。しかし、ファイルを変更してコマンドを実行すると、すべてのファイルがアップロードされます。

私は lftp/ftp の MDTM 問題を知っています。というわけで、「set ftp:use-mdtm no && set ftp:timezone -9」を試してみたのですが、1ファイルだけ変更したのに、すべてのファイルがアップロードされてしまいました。

lftp mirror --only-newer が「新しいファイルのみ」を転送しない理由を知っている人はいますか?

4

2 に答える 2

7

次のページで

http://www.bouthors.fr/wiki/doku.php?id=en:linux:synchro_lftp

著者は次のように述べています。

アップロードするとき、アップロードされたファイルに日付/時刻を設定することはできません。そのため、->ignore-time が必要です。

そのため、フラグの組み合わせ --only-newer と --ignore-time を使用すると、サイズが異なるすべてのファイルが置き換えられるような方法で、適切なバックアップ プロパティを実現できます。もちろん、本当に時刻同期に頼る必要がある場合は役に立ちませんが、データの定期的なバックアップを実行するだけであれば、それで十分です。

于 2013-03-10T09:42:48.733 に答える
2

mirror -R -n新しいファイルの非常に単純なバックアップとして機能します

于 2019-08-12T21:55:34.563 に答える