私はそれをrsync
ファイルセットのバックアップに使用します/etc
。 「ソース」ファイルはext4
ファイルシステムにあり、「ターゲット」はext4
USBサムドライブのパーティションです。私のマントラは次のようになります。
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
に設定する必要があります。これを使用すると、回避したい問題(パスワードの保存)が生成されます。cron
sudo
crontab
別の可能性は、バックアップ中にルートが所有するファイルの所有権を変更することです(このchown=USER:GROUP
オプションを使用)rsync
。それなしで動作しても、sudo
バックアップが必要な場合は所有権を復元する必要があると思われたので、試していませんでした。
私は一日中この問題に取り組んでき、数え切れないほどのrsync
選択肢について議論するのに疲れました。だから - 私の質問はこれです。
悪い状況を作成せずにsudo
ファイルのバックアップに使用しないようにするにはどうすればよいですか?/etc
拾う?
答え1
設定するルートクローンの仕事その後、スクリプトはとにかくルートとして実行されます。ルートcrontabにアクセスするには、を実行しますsudo crontab -e
。