Puncte:0

Cron nu rulează corect o comandă

drapel de

Am HP ProLiant Utilities instalate pe serverul meu Ubuntu. Folosind următoarea comandă shell, pot salva rezultatul stării RAID într-un fișier jurnal:

sudo ssacli ctrl all show config > /var/logs/raid.log

Apoi am încercat să creez un job cron, astfel încât în ​​fiecare zi fișierul jurnal să fie suprascris cu starea. Jobul meu cron arată astfel:

30 15 * * * ssacli ctrl all show config > /var/logs/raid.log #Log RAID Status

Acest job cron este pentru utilizatorul root.

Problema este că, dacă merg la Webmin și rulez această lucrare cron apăsând „Salvare și rulare acum”, fișierul jurnal este creat. Dar dacă las jobul cron să ruleze la ora stabilită, fișierul jurnal este creat, dar este gol.

Cred că ar putea avea ceva de-a face cu faptul că trebuie să rulez ssacli în modul sudo

Poate cineva ajuta va rog?

Mulțumiri

drapel uz
Jos
Prima regulă a „cron”: furnizați întotdeauna căi complete. În acest caz, poate fi necesar să scrieți `/usr/bin/ssacli` în loc de `ssacli`. Executabilul `ssacli` poate fi găsit în altă parte decât în ​​`/usr/bin/`; poti afla unde cu `care ssacli`.
John Roberts avatar
drapel de
Minunat. Mulțumiri. asta a fost. A trebuit doar să pun calea completă către ssacli, care era /usr/sbin/ssacli
Puncte:1
drapel it

Locuri de muncă rulează cron nu sunt rulate în același mediu de rulare pe care îl aveți pe desktop. Nici unul dintre voi CALE modificări sau alte setări ale variabilelor de mediu din ~/.bashrc sunt propagate automat către dvs cron loc de munca. De exemplu, nu există $DISPLAY, deci programele GUI au nevoie de un tratament special (citiți man xhost).

Se pot seta variabile de mediu pentru toate cron locuri de muncă în crontab fişier Citit om 5 crontab.

Uită-te la rezultatele echo "=== id ===";id;echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";alias în fiecare dintre mediile dumneavoastră.

De când comanda parte a crontab linia este, implicit, interpretată de /bin/sh, care are o sintaxă mai simplă decât /bin/bash, recomand să aveți comanda fii un apel către a bash script (executabil, montat, începe cu #!/bin/bash) care configurează mediul, apoi apelează programul dorit.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.