Сбой команды rsync при вызове через system () - PullRequest
2 голосов
/ 18 мая 2011

Я использую эту команду:

rsync --partial --timeout=60 --rsh='/usr/bin/ssh -i /root/.ssh/id_rsa' /path/file user@host:/remote_path/

Это работает, когда я запускаю ее в командной строке, но не работает, когда я использую system () в моей программе на Си.

Исправление: этот вызов не будет работать после загрузки, независимо от того, как долго работает программа.Если программа перезапускается, она будет работать каждый раз, независимо от того, сколько раз программа запущена.

status = system("rsync --partial --timeout=60 --rsh='/usr/bin/ssh -i /root/.ssh/id_rsa' /path/file user@host:/remote_path/");

Возвращаемое значение из rsync равно 12: Ошибка в потоке данных протокола rsync.

1 Ответ

1 голос
/ 27 мая 2011

Оказывается, что проблема заключалась в переменных среды.HOME был установлен на «/» при запуске вместо «/ user».ssh не смог найти файл known_hosts, и из-за этого не удалось выполнить автоматический вход в систему, что привело к сбою rsync.

...