在尝试解决这个问题几天后,我想在这里寻求帮助:
我想使用rsnapshot进行备份,它通常在服务器上运行并管理本地备份。在我的情况下,我想在我的计算机上运行rsnapshot,并让rsnaphot管理外部硬盘上的备份。这个external硬盘连接到我的树莓派,并安装到我的计算机上,命令如下:
sudo sshfs -o default_permissions,allow_other,idmap=user,IdentityFile=/home/user/.ssh/id_rsa pi@192.168.0.1:/mnt/externelHdd /mnt/backupHdd
这里,/mnt/backupHdd是rsnapshots备份目录的本地根目录。
此外,我想将外部硬盘直接连接到我的计算机,以进行更大的备份作业。为此,我编写了一个脚本,通过上级命令在本地或网络上安装外部硬盘驱动器。然后,它使用sudo rsnapshot daily
启动rsnapshot作业。当硬盘驱动器在本地连接时,一切正常。当它通过sshfs连接时,我会收到拒绝权限的错误。
当文件/目录是通过物理连接创建的(不同的用户:本地用户和rasppi(时,Rsnapshot不允许按sshfs管理文件。我试着用选项allow_other
和idmap=user
来解决这个问题,但我认为还有更多的事情要做。所以我问你们:我如何才能授予rsnapshot权限?
谢谢你的帮助!
编辑:
我得到以下错误:
/bin/cp: cannot create directory '/mnt/backupHdd/daily.1': Permission denied
----------------------------------------------------------------------------
rsnapshot encountered an error! The program was invoked with these options:
/usr/bin/rsnapshot daily
----------------------------------------------------------------------------
ERROR: /bin/cp -al /mnt/backupHdd/daily.0 /mnt/backupHdd/daily.1 failed (result 256, exit status 1).
ERROR: Error! cp_al("/mnt/backupHdd/daily.0/", "/mnt/backupHdd/daily.1/")
当hdd连接到我的本地计算机时,创建了daily.0。daily.1应该是在我的hdd安装在sshfs上的情况下创建的。
我假设您以root身份运行rsnapshot,并且root拥有远程备份目录。此命令:
sudo sshfs -o default_permissions,allow_other,idmap=user,IdentityFile=/home/user/.ssh/id_rsa pi@192.168.0.1:/mnt/externelHdd /mnt/backupHdd
结果不会如我所想的那样。即使您在连接的本地侧使用sudo
,您的SSH仍以";pi";这意味着在连接的远端所做的一切都是由用户pi完成的。sshfs
的任何选项都无法改变这一事实。您需要启用root登录,然后以root身份登录ssh,或者至少启用某个对该驱动器具有完全R/W访问权限的用户。