• 13 odgovora
  • 6.191 pregleda
Cron job centos upute 09.07.2008. u 14:04 · pre 222 meseci #1
Budući da sma početnik na linux-u zanima me kakod anapravim neki CRON JOB kako bi se moj proces ako padne mogao sam podići. primjerice ASTERISK (gdje se nalazi taj fajl kojeg moram pokrenuti) /usr/sbin/...

Kako da napišem neki cron job ili neku skriptu.

Pozdrav i hvala!
Re: Cron job centos upute 09.07.2008. u 16:01 · pre 222 meseci #2
Napraviš fajl check.sh sa sledećim sadržajem:
Code:
#!/bin/bash

if [ -e "/var/run/asterisk.pid" ]
then
  echo "Asterisk is OK!"
else
  echo "Asterisk is DOWN! Starting UP!"
  service asterisk start
fi

Ovako možeš da proveriš da li skripta radi kako treba:
# chmod +x check.sh
# ./check.sh
# service asterisk stop
# ./check.sh
# ps -ef | grep safe_asterisk
# crontab -e

Na kraju dodaš sledeću liniju u crontab:
Code:
*/1 * * * * /root/check.sh >& /dev/null

Proveri dobro putanje da li se poklapaju sa putanjama kod tebe na sistemu!
Re: Cron job centos upute 09.07.2008. u 21:24 · pre 222 meseci #3
A gdje da spremim taj check.sh file? (vidim dolje gdje spremim, lai zašto root/check.sh >& /dev/null tj što to znači)
i jel liniju u cron tab dodajem sa crontab -e (i trebali je nekkako loadati u sistem) tee, da li bi mogao dobiti neke upute o crontabu.
Re: Cron job centos upute 09.07.2008. u 22:45 · pre 222 meseci #4
Fajl check.sh mozes nazvati kako god zelis. Drugo mozes da ga snimis na bilo koju lokaciju na sistemu samo to onda moras navesti u crontab-u. Ako ga snimis u /usr/bin ili /bin na primer onda neces morati da unosis punu putanju u crontab vec samo komandu check.sh. Komandom crontab -e dobijas editor u koji uspisujes zeljene postavke za cron. Deo sa >& /dev/null znaci da output skripte check.sh ide u crnu rupu :) tj. da ga ti ne dobijas na ekranu... Ako hoces mozes da redirektujes na primer u >& /var/log/check.log pa da tamo imas zabelezeno kada je skripta restartovala asterisk a kad ne na primer.
Re: Cron job centos upute 10.07.2008. u 07:12 · pre 222 meseci #5
A kada steknes malo iskustva sa Linuxom obavezno probaj Monit. Relativno lako se podesava a puno toga donosi. :)

Potpis
Aj prevedi!
Re: Cron job centos upute 10.07.2008. u 09:22 · pre 222 meseci #6
Ali kako mogu biti siguran da se moja skripta 100% izvršava i drugo jel moram u VAR/LOG/check.log prvo kreirati ovaj file check.log???

Kako biti siguran da će se skripta pokrenuti:
Da napomenem da kada unesem crontab -e onda se moj cron job sprema u "/tmp/crontab.XXXXRqmVGg" 1L, 49C

Jer kada stavim da mi provjerava skriptu svake minute, onda ja ubijem asterisk proces, štopam i on nikad ne podigne asterisk!

Re: Cron job centos upute 10.07.2008. u 11:16 · pre 222 meseci #7
Sledeće komande pokreni na tvom sistemu i output kopiraj ovde:
# crontab -l
# ls -l /var/run/asterisk.pid
# grep pidfile /etc/init.d/asterisk

Što se tiče kreiranja fajla /var/log/check.log ne moraš ga ručno kreirati. Cron job će sam kreirati tajl fajl pošto ćeš skript pokretati kao root tj. komandu crontab -e ćeš pokrenuti kao root user.

[Ovu poruku je menjao Miroslav Strugarevic dana 10.07.2008. u 12:40 GMT+1]
Re: Cron job centos upute 10.07.2008. u 12:39 · pre 222 meseci #8
Da li evo kako izgleda moj crontab:

1 * * * * /root/check.sh >& /var/log/check.log

I to bi trebalo svake minute da provjerava???

Nakon što ja ubijem tj kill pid (od asteriska) on se nikako ponovno ne podiže dok aja ne upišem ručno ./check.sh


Mislim nije mi jasno, zato pitam zašto neće!
Re: Cron job centos upute 10.07.2008. u 13:10 · pre 222 meseci #9
Jel čitaš ti šta sam ja napisao?

To što si tu ubacio u cron nije validno. Treba da bude:
Code:
*/1 * * * * /root/check.sh >& /var/log/check.log

Nije isto što i ovo:
Code:
1 * * * * /root/check.sh >& /var/log/check.log
Re: Cron job centos upute 10.07.2008. u 13:21 · pre 222 meseci #10
Ne cita Miroslave, on bi sve na gotovo, a da ne mora ni mozak da ukljuci.Jedino sto je on napisao JESTE validno, ali ne radi ono sto on hoce (vec u pun sat i minut)

@west_herc uporedi svoju liniju crontab-a sa onom koju ti je napisao Miroslav. NHF, ali ukljuci i mozak i oci, i koristi man komandu.
Potpis
Kad sve ostalo zakaže, pročitaj uputstvo...
Re: Cron job centos upute 10.07.2008. u 14:12 · pre 222 meseci #12
Da ne idemo u offtopic, ali meni UVEK gori pod nogama...

Kad ti gori pod nogama, a ne znas sam da namestis, onda lepo platis nekog da ti to zavrsi. Ovde na forumu nije cilj dobijanje gotovih resenja vec da ljudi nauce nesto.
Potpis
Kad sve ostalo zakaže, pročitaj uputstvo...
Re: Cron job centos upute 15.07.2008. u 10:33 · pre 222 meseci #13
Opet ja, nema šanse evo već pet dana pokušavam da pokrenem ovaj cron job i bez uspjeha. Naime sktipta ./check.sh radi savršeno i podiže instancu asteriska, ali to svake minute neide nikako, niti nakon 15 minuta niti nakon bilo kojeg primjera kojeg uzmem iz knjige gdje promijenim poziv skripte.
Re: Cron job centos upute 15.07.2008. u 11:12 · pre 222 meseci #14
Pogledaj ovde:
# tail -f /var/log/cron


Možeš ovako da napraviš bez cron-a:
Fajl check.sh:
Code:

#!/bin/bash

for ((;;))
do
if [ -e "/var/run/asterisk.pid" ]
  then
  echo "Asterisk is OK!"
  else
  echo "Asterisk is DOWN! Starting UP!"
  service asterisk start
fi
  sleep 1
done

Skriptu pokrećeš ovako:
# nohup ./check.sh &

Ako hoćeš da vidiš šta se dešava sa skriptom:
# tail -f nohup.out

Gornji primer će proveravati stanje servisa na svaki sekund. Ako hoćeš drugo vreme izmeni stavku sleep 10 ako hoćeš da se provera okida na svakih 10 sekundi.

[Ovu poruku je menjao Miroslav Strugarevic dana 15.07.2008. u 12:23 GMT+1]
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme