リモートWebサーバーで完全に更新されたUbuntu 16.04 LTSの実行リモートWebサーバーでrsync 3.1.1を実行する
私は、いくつかのユーザーが一般にアクセス可能なファイルセットを管理できるようにする非常に簡単な設定を持っています。
リモートWebサーバーへのアクセスを許可するのではなく、\localshare\
ローカルオフィスネットワーク()に共有を設定して、必要に応じてファイルをコピーし、ファイルとフォルダを作成、削除、並べ替えることができました。
1日1回リモートWebサーバーで実行され、パブリックwwwフォルダ(\publicwww
)を\localshare\
。
これはほとんどの場合完全に機能します。しかし、時々rsyncがフォルダとファイルの完全なリストを正しく読み取れないようです。これにより、パブリックwwwフォルダのほとんどすべてのアイテムが削除され、\publicwww\
次の同期まですべてのアイテムにアクセスできなくなります(すべて消えたため)。これは通常問題を解決します。 )。
私の推測では、Webサーバーがサイトに存在しないため断続的に接続の問題が発生するため、rsyncが単に「タイムアウト」になり、ディレクトリ内のフォルダとファイルの完全なリストを読み取ることができなくなり、単にあきらめるということです。エラーが発生し、そのディレクトリがディレクトリに存在しなくなりました。
たとえば、次のサブフォルダがあるとします\localshare\
。
\localshare\folderA
\localshare\folderB
\localshare\folderC
通常、これはうまく同期され、次のように終了します。
\publicwww\folderA
\publicwww\folderB
\publicwww\folderC
しかし、時には次のことがわかります。
\publicwww\folderA
どうすればこの状況をよりエレガントに処理できますか?
rsyncログを確認してみましたが、ディレクトリ全体を読み取れなかった兆候は見つかりませんでした。
ただ…
2019/08/19 09:15:01 [18996] building file list
2019/08/19 09:15:04 [18996] *deleting folderB/
....その後、他のすべてのフォルダを削除します。
\localshare\
したがって、問題はUbuntuサーバーからの接続方法にある可能性があります。 Ubuntuサーバーのローカルディレクトリとしてautofsを使用してインストールし、リモートディレクトリを\localshare\
サーバーの\localshare\
ローカルディレクトリとrsyncします。\publicwww\
たぶん、この抽象化層のため、rsyncが完全に読み取ったフォルダとタイムアウトしたマウントを区別できませんか?
- 私の理論(これは単に接続タイムアウトであること)が正しいことを確認するために、この問題をより明示的にどのように解決できますか?
- rsyncを使用してそれをエレガントに軽減する方法はありますか?
- この問題を解決する他の方法はありますか?まず、
\localshare\
リモートサーバーの中間フォルダ(たとえば)と\publicwwwtemp\
同期し、次にログファイルへの最初の同期に問題がない場合にのみ同期することを考えました\publicwwwtemp\
。\publicwww\
しかし、rsyncログファイルには、rsyncがディレクトリの完全なリストを取得できないという事実さえ認識していないようです。
これは私のrsyncコマンドです。
rsync -rtvu --perms --chmod=D750,F640 --owner --group --chown=root:www-data --delete-delay --progress --exclude="Info.txt" --exclude="Sync-Logs" --exclude="lost+found" --log-file=/var/log/rsync.publicwww.files.$(date +%Y%m%d).log /Fileserver.mount/localshare/ /publicwww/