«Команда не найдена» при запуске скрипта через cron

Я хочу запустить мой скрипт в crontab, но у меня есть некоторые проблемы ...

В моем скрипте я запускаю эту команду:

db2 connect to myDB2

Это отлично работает, когда я запускаю его как пользователя db2inst1 , но когда я запускаю этот скрипт в db2inst1 crontab , я получаю следующее:

  

db2: команда не найдена.

Как я могу это решить?

22 голоса | спросил Wolfy 9 J0000006Europe/Moscow 2011, 13:15:05

3 ответа


36

Чтобы избежать необходимости вводить абсолютный путь к команде, оболочки представили переменную среды $PATH, каждая директория разделяется символом ---- +: = 1 =: + ----, а поиск выполняется слева направо. : часто очищает всю среду, включая этот cron. Таким образом, сценарий может вести себя по-разному в вашем cron по сравнению с поведением в оболочке.

Использовать абсолютные пути

Запустите $PATH как which db2 пользователь чтобы получить полный путь для программы db2inst1. Если вывод db2, ваша команда cron будет выглядеть так:

/usr/bin/db2

Задайте переменную PATH

Запустите /usr/bin/db2 connect to myDB2 как echo "$PATH" пользователь для получения переменной db2inst1 и убедитесь, что эта переменная доступна и в вашем скрипте cron. Например, если вывод был $PATH, вы бы поставили следующую строку в верхней части сценария оболочки:

/usr/local/bin:/usr/bin:/bin
ответил Lekensteyn 9 J0000006Europe/Moscow 2011, 13:18:22
3

Вы должны определить, что db2 и myDB2 , в противном случае используйте абсолютное расположение файла или ', которые хотите запустить.

Пример:

/bin/rm /home/ubuntu/a.txt
ответил Mahmudin Ashar 9 J0000006Europe/Moscow 2011, 15:42:26
1

Как указано в https://askubuntu.com/a/23438/227839 , вы должны установить PATH в вашем сценарии оболочки:

#!/bin/bash
PATH="/usr/local/bin:/usr/bin:/bin"

# rest of script follows

или в файле crontab, который будет применяться ко всем заданиям cron:

PATH="/usr/local/bin:/usr/bin:/bin"
0 1 * * * db2 connect to myDB2
ответил Linh Dam 6 PM000000120000001931 2018, 12:24:19

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132