2016-09-10 1 views
1

Я пытаюсь синхронизировать свои файлы в облаке:часы с Rsync не может с разрешения отказано, в то время как в одиночку Rsync просто отлично работает

rsync -avPze "ssh -i /path/to/my/key" [source] [destination] 

это успешно работает для меня.

Однако, когда я пытаюсь использовать ту же команду с watch для того, чтобы автоматически синхронизировать каждые несколько минут, она не работает и бросает ошибку:

watch -n120 rsync -avPze "ssh -i /path/to/my/key" [source] [destination] 

Ошибка:

Permission denied (publickey). 
rsync: connection unexpectedly closed (0 bytes received so far) [sender] 
rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.1] 

Любая идея, что происходит?

+0

Выполняется ли '' просмотр под другим пользователем, чем тот, владеющий ключом? Вы можете проверить что-то вроде: 'ps aux | awk '/ \ /|| NR == 1'' – andlrc

+0

@andlrc, на самом деле да! 'watch' работает как root, где владелец ключа является пользователем. Однако даже 'rsync' работает как root и без' watch', он выполняется без каких-либо ошибок. – VanagaS

ответ

1

Закрытие всей команды rsync в пределах кавычек, делает трюк.

watch -n120 "rsync -avPze 'ssh -i /path/to/my/key' [source] [destination]" 

Наблюдаемые из strace выхода:

execve("/usr/bin/watch", ["watch", "-n120", "rsync", "-avPze", "ssh -i '/path/to/my/key'", "source"..., "destination"...], [/* 21 vars */]) = 0 

Хотя rsync должным образом инициируют source и destination быть в дальнем конце аргументы, и путь полный путь к ключу, permission denied ошибка вводит в заблуждение.

+0

не возражаете отметить свой собственный ответ как разрешение? ;) – silpol

+1

@silpol, эй спасибо! Я просто ждал, если у кого-то есть хорошее объяснение такого поведения :) – VanagaS

Смежные вопросы