Aby uniknąć konieczności wpisywania bezwzględnej ścieżki do polecenia, powłoki wprowadziły $PATH
zmienną środowiskową, każdy katalog jest oddzielony znakiem :
a, a wyszukiwanie odbywa się od lewej do prawej. cron
często usuwa całe środowisko, w tym tę $PATH
zmienną. Dlatego skrypt może zachowywać się inaczej w twoim cronie niż zachowanie w powłoce.
Użyj ścieżek bezwzględnych
Uruchom which db2
jako db2inst1
użytkownik, aby uzyskać pełną ścieżkę do db2
programu. Jeśli wynikiem jest /usr/bin/db2
, twoje polecenie cron wyglądałoby następująco:
/usr/bin/db2 connect to myDB2
Ustaw zmienną PATH
Uruchom echo "$PATH"
jako db2inst1
użytkownik, aby uzyskać $PATH
zmienną i upewnij się, że ta zmienna jest również dostępna w skrypcie cron. Na przykład, jeśli wynik /usr/local/bin:/usr/bin:/bin
byłby, umieść następny wiersz w górnej części skryptu powłoki:
export PATH="/usr/local/bin:/usr/bin:/bin"
Musisz zdefiniować, czym są db2 i myDB2 , w przeciwnym razie użyj bezwzględnej lokalizacji „ pliku ” lub „ aplikacji ”, które chcesz uruchomić.
Przykład:
źródło