Действия по диагностике ошибки:
- Используете ли вы SSH-ключ?
- У этого ключа есть пароль?
- Это работает, когда вы запускаете его вручную?
- Сценарий выполняется от имени того же пользователя, что и при запуске вручную?
- Работает ли скрипт в той же среде, в которой вы запускаете его вручную? (например,
cron
задания не выполняются в одной среде)
Если вы считаете, что все ответы положительные, то, скорее всего, последний ответ действительно отрицательный. Если скрипт выполняется из планировщика, например cron
, он, скорее всего, не будет работать в той же среде, в которой вы запускаете его вручную. Обычно я решаю эту проблему, используя сценарий оболочки между планировщиком и сценарием Perl:
#!/bin/bash
source /home/USERNAME/.profile
#set any other environment variables it needs like
export CSVROOT=:pserver:USERNAME@HOST:/path/to/repo
export CVSRSH=ssh
/path/to/perl/script/script.pl