刚刚开始在Ubuntu 14.04上编译好的znapzend (源码机器,因为更新到Ubuntu 16.04)。 目标机器是Ubuntu 16.04('backupserver')。 我已经用ssh-keygen / ssh-copy-id [destination]设置了一个非密码的ssh密钥对。 我可以ssh backupserver没有密码就好了。 问题是,由于某种原因znapzend似乎无法到达backupserver。 mbuffer位于两台机器上的/usr/bin/mbuffer 。 这里是我的znapzendzetup命令和在源机器上运行的输出:
sudo znapzendzetup create --recursive --mbuffer=/usr/bin/mbuffer --tsformat='%Y-%m-%d-%H%M%S' SRC '1y=>1d' pool/Documents DST '1y=>1d' jon@backupserver:pool/Documents Host key verification failed. Host key verification failed. *** WARNING: executable '/usr/bin/mbuffer' does not exist on jon@backupserver *** backup plan: pool/Documents *** dst_0 = jon@backupserver:pool/Documents dst_0_plan = 1year=>1day *** WARNING: destination 'jon@backupserver:pool/Documents' does not exist, will be ignored! *** enabled = on mbuffer = /usr/bin/mbuffer mbuffer_size = 1G post_znap_cmd = off pre_znap_cmd = off recursive = on src = pool/Documents src_plan = 1year=>1day tsformat = %Y-%m-%d-%H%M%S Do you want to save this backup set [y/N]?
感谢您提供的任何见解!
我得到:
Host key verification failed.
要么
Permission denied the ZFS utilities must be run as root.
取决于如果我用sudo运行znapzendzetup,或者我在命令中有–sudo:
sudo znapzendzetup create ...
要么
znapzendzetup create --sudo ...
我将这一行添加到/ etc / sudoers(通过visudo):
jon ALL=(ALL) NOPASSWD:ALL
并在主机和目标机器上执行此行:
sudo zfs allow -u jon create,mount,send,receive,snapshot,destroy pool/Documents
我可以尝试启用无密码rootlogin,但我明白这是不鼓励的。 谢谢参观!
我通过在目标计算机上的/ etc / ssh / sshd_confg中更改以下行来启用通过ssh的远程rootlogin:
#PermitRootLogin prohibit-password PermitRootLogin yes
然后,在源机器上:
sudo passwd root su ssh-keygen ssh-copy-id BACKUPSERVER
znapzend命令现在可以作为sudo使用,并且不需要–sudo参数!
接下来,我发起了一个znapzend命令,输出如下:
jon@FILESERVER:~$ sudo znapzend --debug --runonce=pool/Documents [Wed Apr 27 17:54:42 2016] [info] znapzend (PID=6388) starting up ... [Wed Apr 27 17:54:42 2016] [info] refreshing backup plans... [Wed Apr 27 17:54:42 2016] [info] found a valid backup plan for pool/Documents... [Wed Apr 27 17:54:42 2016] [info] znapzend (PID=6388) initialized -- resuming normal operations. [Wed Apr 27 17:54:42 2016] [debug] snapshot worker for pool/Documents spawned (6391) [Wed Apr 27 17:54:42 2016] [info] creating snapshot on pool/Documents # zfs snapshot pool/Documents@2016-04-27-175442 [Wed Apr 27 17:54:42 2016] [debug] snapshot worker for pool/Documents done (6391) [Wed Apr 27 17:54:42 2016] [debug] send/receive worker for pool/Documents spawned (6393) [Wed Apr 27 17:54:42 2016] [info] starting work on backupSet pool/Documents # zfs list -H -o name -t snapshot -s creation -d 1 pool/Documents [Wed Apr 27 17:54:42 2016] [debug] cleaning up snapshots on pool/Documents # zfs destroy pool/Documents@2016-04-27-174027 [Wed Apr 27 17:54:43 2016] [info] done with backupset pool/Documents in 1 seconds [Wed Apr 27 17:54:43 2016] [debug] send/receive worker for pool/Documents done (6393)
它似乎已经成功运行,但到目前为止,它还没有将数据集备份到目的地。 什么时候把文件复制过来?
此外,只是供参考,我补充znapzend作为服务:
sudo cp ~/znapzend-0.15.5/init/znapzend.service /etc/systemd/system sudo chown root:root /etc/systemd/system/znapzend.service systemctl enable znapzend.service sudo systemctl enable znapzend.service sudo systemctl start znapzend.service sudo service znapzend status
谢谢!
好的,我现在有这个sorting。 我没有configuration设置在目标机器上用“root”login,这阻止了发送/接收function。 这是我更新的znapzendzetup命令:
sudo znapzendzetup create --mbuffer=/usr/bin/mbuffer --tsformat='%Y-%m-%d-%H%M%S' SRC '7d=>1h,1y=>1d' pool/Documents DST '7d=>1h,1y=>1d' root@BACKUPSERVER:pool/Documents
备份完成后成功:
sudo znapzend --debug --runonce=pool/Documents
感谢这个伟大的ZFS快照+备份工具!
Tobi让我指出了正确的方向(谢谢!)。 我的解决scheme是通过SSH启用无密码rootlogin,这可能是不理想的,但我在家庭局域网,所以应该没事的。 问题是,由于某种原因,我无法让非root用户使用sudo通过ssh运行zfs命令,即使无密码的sshlogin完全以非root用户的身份工作。 'znapzendzetup create –sudo …'会起作用,但是'znapzend –noaction –debug'却给出了:' 权限被拒绝,因为某种原因ZFS实用程序必须以root身份运行 (并且没有 – sudo选项znapzend命令我猜)。 所以我设置sshlogin为根( 更新#2 )。 为了检查它,我做了:
sudo ssh BACUPSERVER 'zfs list'
然后,我不得不记得要更改我的znapzendzetup命令以root用户身份login(请参阅UPDATE#3 ):
sudo znapzendzetup ... root@BACKUPSERVER:pool/Documents
昨天晚上我给所有三个数据集添加了1w => 30min的快照时间间隔,今天早上它完全备份到了我的BACKUPSERVER。 太好了!
由于您使用的是sudo我假定您设置的密钥对于正确的用户无效…尝试
sudo ssh backuphost ls
validation您的设置