ルート所有ファイルをバックアップするために `sudo`を使用しないことはありますか?

ルート所有ファイルをバックアップするために `sudo`を使用しないことはありますか?

私はそれをrsyncファイルセットのバックアップに使用します/etc。 「ソース」ファイルはext4ファイルシステムにあり、「ターゲット」はext4USBサムドライブのパーティションです。私のマントラは次のようになります。

rsync -av --recursive --files-from=my/etcfiles /etc ./my/backup/etc/

予想通り、次のエラーが発生しました。

rsync: failed to set times on "/my/backup/etc/somefile": Operation not permitted (1)  
rsync: mkstemp "/my/backup/etc/somefile.erGL4a" failed: Permission denied (13)  
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1196) [sender=3.1.2]  

aこれは、オプションがrsync私がバックアップするファイルの所有権(root)を保持しているため、rsync操作を完了するにはroot権限が必要なためです。

で実行するとrsync正常に完了しますが、タスクsudoに設定する必要があります。これを使用すると、回避したい問題(パスワードの保存)が生成されます。cronsudocrontab

別の可能性は、バックアップ中にルートが所有するファイルの所有権を変更することです(このchown=USER:GROUPオプションを使用)rsync。それなしで動作しても、sudoバックアップが必要な場合は所有権を復元する必要があると思われたので、試していませんでした。

私は一日中この問題に取り組んでき、数え切れないほどのrsync選択肢について議論するのに疲れました。だから - 私の質問はこれです。

悪い状況を作成せずにsudoファイルのバックアップに使用しないようにするにはどうすればよいですか?/etc拾う

答え1

設定するルートクローンの仕事その後、スクリプトはとにかくルートとして実行されます。ルートcrontabにアクセスするには、を実行しますsudo crontab -e

関連情報