Znapzend

znapzendzetup create 命令上的“主機密鑰驗證失敗”

  • April 28, 2016

剛剛開始在Ubuntu 14.04znapzend上編譯良好(源機器,因為更新到 Ubuntu 16.04)。目標機器是 Ubuntu 16.04(‘backupserver’)。我已經使用/設置了一個非密碼 ssh 密鑰對。我可以不用密碼就好了。問題是,由於某種原因似乎無法到達備份伺服器。mbuffer 在兩台機器上都在。這是我在源機器上執行的命令和輸出:ssh-keygen``ssh-copy-id [destination]``ssh backupserver``znapzend``/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]?

感謝您提供的任何見解!


更新#1

我得到:

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

我可以嘗試啟用無密碼 root 登錄,但我知道這是不鼓勵的。謝謝參觀!


更新#2

我通過更改目標電腦上的 /etc/ssh/sshd_confg 中的這些行來啟用遠端 root 登錄:

#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

謝謝!


更新#3

好的,我現在已經整理好了。我沒有在目標機器上使用“root”登錄的配置設置,這阻止了發送/接收功能。這是我更新的 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 快照+備份工具!!!

托比讓我指出了正確的方向(謝謝!)。我的解決方案是通過 ssh 啟用無密碼 root 登錄,這可能並不理想,但我在家庭區域網路中,所以應該沒問題。問題是,由於某種原因,我無法讓非 root 使用者使用 sudo 通過 ssh 執行 zfs 命令,即使無密碼 ssh 登錄作為非 root 使用者完全工作。‘znapzendzetup create –sudo …’ 會起作用,但隨後 ‘znapzend –noaction –debug’ 給出:’ Permission denied the ZFS utility must be run as root ’ 出於某種原因(並且沒有 –我猜是 znapzend 命令的 sudo 選項)。所以我將 ssh 登錄設置為 root ( UPDATE #2 )。為了檢查它,我做了:

sudo ssh BACUPSERVER 'zfs list'

然後我必須記住將我的 znapzendzetup 命令更改為以 root 身份登錄(參見UPDATE #3):

sudo znapzendzetup ... root@BACKUPSERVER:pool/Documents

昨晚我為我的所有三個數據集添加了一個“1w=>30min”的快照間隔,今天早上它都完美地備份到了我的 BACKUPSERVER。好的!

引用自:https://serverfault.com/questions/772805