Я должен получить файлы с другого сервера, используя sftp.

Я создал скрипт, который перейдет в мой каталог и выполнит команду sftp. Так как мне не разрешено добавлять ключи RSA на внешний сервер, я использую sshpass, чтобы справиться с этой ситуацией. Если я запускаю скрипт в моем сеансе, он работает нормально (но выводит на экран каждую команду sftp). Если я пытаюсь выполнить va crontab, команда sftp не выполняется, но все остальное в скрипте выполняется.

set -o nounset                              # Treat unset variables as an error

umask 000
cd /path/to/dir
export SSHPASS='securepass'
sshpass -e sftp -oBatchMode=no -b - -P9999 user@external.ip.address: << !
 cd REMOTEDIR
 get *
 rm *
 bye
!

# processing the files part

1 ответ1

0

Я предполагаю, что вы запускаете задание cron, используя другую учетную запись, чем вы используете в оболочке.

Это может привести к сбою sftp по многим причинам. Одна из них заключается в том, что у учетной записи, выполняющей задание cron, нет ключа хоста в known_hosts .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .