rsync: 最上位ディレクトリを除外する方法

rsync: 最上位ディレクトリを除外する方法

したがって、これまで解決策を見つけることができなかった一見単純な問題があります。すべてのサブディレクトリの同期を継続しながら、rsyncから最上位ディレクトリを除外したいと思います。特別な問題は、最上位ディレクトリの時間を変更する権限がありませんが、すべてのサブディレクトリの時間が正しく同期されるようにしたいということです。

私が使用するrsyncコマンドは次のとおりです。

rsync --exclude ./ -rlptDu ./ server.example.com:/usr/local/directory/

次のようになりますserver.example.com:/usr/local/directory/

drwxrws---  5 root   staff 24576 Jul  9 15:00 .

(私のローカルユーザーはのメンバーですstaff

rsyncを実行すると、次のエラーが発生します。

rsync: failed to set times on "/usr/local/directory/.": Operation not permitted (1)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9]
make: *** [pub_to_mel_internal] Error 23

ローカルコンピュータのバージョンは3.0.9、リモートコンピュータのバージョンは3.0.7で、どちらのコンピュータもDebianを実行しています。

ベストアンサー1

私の考えでは、rsyncのフィルタルールは最上位ディレクトリと一致しないため、常に同期されます。回避策は、ディレクトリ自体の代わりにこのディレクトリ内のすべてのファイルを同期することです。

rsync -rlptDu -- * server.example.com:/usr/local/directory/

最上位ディレクトリにドットファイルがあり、ファイル名が2つのドットで始まる場合は、後.[!.]*に追加します。*..?*

おすすめ記事