Jak zmienić powłokę crona (sh na bash)?


70

Czy można uruchamiać polecenia w crontabie za pomocą bash zamiast sh? Wiem, że możesz przekazywać polecenia, z -cktórymi walisz , ale to denerwujące i i tak nigdy nie używam sh.


tak naprawdę nie wiem, co robisz (nie znasz crona), ale jeśli uruchamiasz skrypt, dodanie do niego shebang powinno działać, nie jestem pewien, czy mam rację.
— Alvin Wong,

Odpowiedzi:


103

Powinieneś być w stanie ustawić zmienną środowiskową przed uruchomieniem zadania cron:

SHELL=/bin/bash
5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1

2
czy możliwe jest również, aby czytał .bashrc?
— Puszysty

3
@Fluffy .bashrcjest - z definicji - interaktywnymi powłokami; więc kiedy rozpoczęła poprzez cron, bashbędą czytać ten plik tylko wtedy, gdy jest to interaktywna powłoka .
— umläute

18
Dodałem, że udało mi się sprawić, by czytał bashrc BASH_ENV="/root/.bashrc". Dzięki
— Fluffy,

2
@Fluffy powinieneś udzielić odpowiedzi
— vol7ron 11.04.17

2
Jeśli chodzi o .bashrc, bash -lwygląda przydatnie, blog.endpoint.com/2015/02/cron-wrapper-keep-your-cron-jobs.html
— mpapec
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.