SCP в скрипте не работает при запуске как задание CRON

У меня есть скрипт на удаленном сервере (bServer), который SSH подключается к центральному серверу (позволяет вызывать cServer) и запускает скрипт, который далее SSH подключается к 2 другим серверам (server13/server14), скрипт запускается на каждом из этих серверов, которые создает файл.

У меня настроены ключи DSA SSH с cServer на server13/14. Затем cServer извлечет созданные файлы с server13/14, а затем bServer извлечет их из cServer.

Это отлично работает при запуске вручную.

Однако... Когда я планирую задание на bServer в CRON, файл с server14 не загружается на cServer.

Вот что еще интересно: файл с server13 НЕ ПЕРЕДАЕТСЯ с cServer на bServer, когда в том же скрипте присутствует команда ssh ИЛИ scp на server14.

Если они у меня есть в отдельных сценариях, файл server13 возвращается на bServer в порядке, но файл для server14 только ПРОИЗВОДИТСЯ и вообще не передается обратно на cServer.

И server13, и server14 работают под управлением одной и той же сборки SunOS.

Я прочитал так много различных решений для подобных проблем, но не нашел решения.

Это должно быть самая раздражающая проблема, с которой я когда-либо сталкивался. Любая помощь будет принята с благодарностью!


person cardycakes    schedule 28.10.2013    source источник
comment
Вы должны спросить на superuser.com, но я помню, что вам нужно скопировать открытые ключи на серверы, если вы хотите использовать scp в скрипте.   -  person kmas    schedule 28.10.2013
comment
Можете ли вы предоставить запись crontab для задания, которое вы выполняете?   -  person Signal15    schedule 03.12.2014


Ответы (1)


При выполнении задания через cron вы не сохраняете свою среду. Если вы уже вошли на удаленный сервер как пользователь, владеющий сценарием cron, вы можете попытаться с целью диагностики запустить тот же сценарий с помощью команды at, что вместо этого выполняется.

Если вы поместили свои команды в исполняемый скрипт с именем my_script, следующая команда

at -f my_script 0936.00 выполнит команду my_script в 9 часов 36 минут. Если это сработает, вы будете знать, что в cron вам не хватает какого-то важного компонента вашей среды.

person Ravi K M    schedule 11.09.2014