正确获取 Rsnapshot 权限

正确获取 Rsnapshot 权限

我多年来一直使用 rsync 在 Server1 上保留 /home/User1 (Client1) 的备份副本(在文件夹 /mnt/Server1/Backup 中)。这些不是生产机器。此文件夹在启动时通过 NFS 挂载在 /mnt/Server1/Backup 文件夹中的 Client1 上(因此 Server1 上的 /mnt/Server1/Backup 与 Client1 上的 NFS 一起挂载在 /mnt/Server1/Backup 中)。

在两台机器上,/mnt/Server1/Backup 属于 User1/Group1,权限为 770。

我在 Client1 上安装了 rsnapshot,目的是让它每天备份到文件夹 (/mnt/Server1/Backup) 中。 User1 已存在于 Client1 和 Server1 上,并且可以使用密钥且无需密码进行 SSH。

我已将以下内容添加到 /etc/rsnapshot.conf 中:

##############################
### SNAPSHOT ROOT DIRECTORY ##
##############################


snapshot_root   /mnt/Server1/Backup/

##############################
### BACKUP POINTS/ SCRIPTS ###
##############################

# LOCALHOST
backup /home/User1  Client/

当我启动“rsnapshot configtest”时,我得到“语法正常”。

当我运行“rsnapshot -t alpha”时,我得到以下信息:

[dom ott 14, 01:12 ][user1@client1:~]rsnapshot -t alpha
echo 23033 > /var/run/rsnapshot.pid 
mkdir -m 0755 -p /mnt/Server1/Backup/rsnapshot/alpha.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    /home/Client1/ /mnt/Server1/Backup/rsnapshot/alpha.0/Client1/ 
touch /mnt/Server1/Backup/rsnapshot/alpha.0/ 
[dom ott 14, 01:12 ][user1@client1:~]

似乎一切都很好。但是,当我在没有选项的情况下启动时,我得到以下信息:

[dom ott 14, 01:12 ][user1@client1:~]rsnapshot alpha
----------------------------------------------------------------------------
rsnapshot encountered an error! The program was invoked with these options:
/usr/bin/rsnapshot alpha 
----------------------------------------------------------------------------
ERROR: Could not write lockfile /var/run/rsnapshot.pid: Permission denied

rsnapshot 正在抱怨,因为它没有足够的权限在 Client1 的主文件系统上写入 PID。

我认为我不应该使用 sudo 否则如何创建一个 cronjob 而不询问密码?

我可以使用临时 debian 用户“备份”...但是如何解决 PID 问题?

答案1

事实上,sudo 选项本身不起作用,因为它说无法在 /mnt/Server1/Backup 文件夹上写入

     [dom ott 14, 01:15 ][antonio@gaia:~]sudo rsnapshot alpha
     [sudo] password di User1: 
     ----------------------------------------------------------------------------
     rsnapshot encountered an error! The program was invoked with these options:
     /usr/bin/rsnapshot alpha 
     ----------------------------------------------------------------------------
     ERROR: Could not mkpath("/mnt/Server1/Backup/rsnapshot/alpha.0/", 0, 0755);

我找到了一个解决方法。 rsnapshot 有一个选项可以设置 PID 文件的写入位置。我是这样设置的:

     lockfile   /mnt/Server1/Backup/rsnapshot

我还将备份组分配给了上述文件夹。最后,我还意识到 rsnapshot 甚至没有使用 SSH,因为我通过 NFS 将远程文件夹安装在 Client1 上。

相关内容