これを使用してリモートファイルをバックアップしようとしていますが、リモートrsync
システムのUID / GIDはローカルシステムとは異なります。私が何を試しても、私のローカルファイルはすべて「opux / opux」で、対応する* IDは1000です。これは私のrsyncです。
sync -e "ssh" --rsync-path="sudo rsync" -AXSHavz --progress --numeric-ids pi@rpinfs:/mnt/mainhdd/dospace/ --exclude 'videos' ~/backups/dospace/
私はこれを試しましたが、最初のものは「作業が許可されていません」と--super
マーク--fake-super
し、2番目は何もしないようです。私は何をすべきですか?
すべてのメタデータを維持しながらバックアップを実行する1つの方法はtarを使用することですが、リモートバックアップでは正しく機能しないことがわかります。私は実行するのが簡単で、理想的にはローカルシステムでrootとして実行する必要がないことを望みました。
リモートシステムはRaspbianを実行しているRaspberry Piなので、ログインしたユーザーはrootだけです。私のローカルシステムはUbuntu 16.04 AMD64です。
答え1
リモートからデータを転送する場合は、リモートである必要はありませんroot
(SSHユーザーに影響を受けるすべてのファイルに対する読み取り(ディレクトリ:実行)権限がない場合を除く)。
ただし、rsyncにファイルの所有者(およびグループ)をローカルに変更させるには、正常に実行する必要がありますroot
。例外:すべてのファイルとディレクトリが同じユーザー(通常はローカルでrsyncを実行しているユーザーではない)に属している場合は、そのユーザーとしてrsyncを実行できます。
rsync
別の解決策は、ファイルメタデータにまったく気にせずに別々に処理することです。
getfacl --recursive /mnt/mainhdd/dospace
ただし、一部のジョブはローカルで実行する必要がありますroot
。走ることが走るsetfacl
よりも良いかどうかは興味深い質問です…root
rsync
root