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.