Удаленный сервер :Отказано в доступе (открытый ключ )при использовании rsync с ssh с gpg через cronjob

Не знаю, если вы все еще ждете ответа, это может помочь.

awk -v newline=test -v trigger='create table "informix"' '
   {a[NR]=$0}
   NR>2 { if (index($0,trigger)>0) { a[NR-2]=newline; }}
   END { 
          for (i=1;i<=NR;i++) { print a[i] }
       }
   ' sacro.sql
0
26.02.2021, 08:01
1 ответ

Команды, выполняемые Cron, имеют чрезвычайно простую среду выполнения и настройку пути, частая ошибка заключается в проверке команды или сценария в качестве вашего обычного идентификатора пользователя. Затем он терпит неудачу при запуске Cron.

Экспортированные переменные среды часто игнорируются. Целесообразно выполнить окончательный тест от имени пользователя root с полностью урезанной средой, в качестве окончательного теста использовать вспомогательную оболочку перед развертыванием. Вы всегда можете добавить одноразовое задание cron, которое просто печатает его env в файл журнала, это позволяет вам эмулировать точные условия, в которых будет выполняться ваша команда при вызове Cron. Второе преимущество, если возникает какая-либо ошибка, заключается в том, что ее можно отобразить на вашем терминале, так проще отлаживать.

Похоже, переменная, назначенная в вашем скрипте, не экспортируется, поэтому SSH не подхватит ее.

Также важно использовать абсолютные пути к файлам в сценарии, если только вы не измените каталог специально, вы не можете предположить, что находитесь в определенном каталоге, печать рабочего каталога в одном -вне тестовом сценарии, ранее упомянутом помогает также. Вы не можете предполагать, что все дистрибутивы идентичны в этом отношении. Проверить конечно не помешает.

1
18.03.2021, 22:28

Теги

Похожие вопросы