我用来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
保留了我正在备份的文件的所有权(根),因此需要根权限才能完成rsync
的操作。
在 下运行时,此rsync
操作成功完成sudo
,但我需要将其设置为一项cron
作业,并且sudo
在 a 中使用crontab
会带来我想避免的问题(密码存储)。
另一种可能性可能是在备份期间更改 root 拥有的文件的所有权(使用该chown=USER:GROUP
选项)rsync
。我没有尝试过,因为我想到,即使它在没有 的情况下也能工作sudo
,如果需要备份,所有权也必须恢复。
我已经为这个问题苦恼了大半天,并且厌倦了与rsync
无数的选择争论。所以 - 我的问题是这样的:
我怎样才能避免使用sudo
来备份文件/etc
而不犯更糟糕的情况博吉?
答案1
设置一个根 cron 作业然后脚本无论如何都会以 root 身份运行。要访问根 crontab,请运行sudo crontab -e
.