Šta je novo?

Debian, cron i par pitanja...

dzudzubajac

Čuven
Učlanjen(a)
12.02.2005
Poruke
4,918
Poena
525
Imam jedan job koji bi trebalo da se izvrsava svakog dana - bekap nekih baza iz mysql-a.

Imam skript koji radi bekap. Kada ga pokrenem rucno, sve je ok.
Dodam ga u cron:

crontab -e
pa dodam liniju:
30 13 * * * /root/bin/bkp.sh

Sacekam 13:30 i vidim da se ne bekapuje.

Ja nekako sumnjam u cron, kako da proverim da li mi se taj servis uopste vrti? treba li on da se vrti 24/7 ili se podigne samo kad treba?

Pokusavao sam da cronujem i recimo kopiranje nekog fajla sa mesta A na mesto B kako bi video da li funkcionise, ali opet nista.

Os je Debian sarge.
Ima li neko neku ideju,predlog?
 
Prvo pogledaj da li ti je pokrenut kron uopste
Kod:
VoID ~ # ps aux | grep cron
root      5456  0.0  0.1   1772   704 ?        Ss   Mar13   0:00 /usr/sbin/cron
root     26158  0.0  0.0   1620   492 pts/0    R+   11:28   0:00 grep --colour=auto cron

Ovako nesto bi trebao da dobijes ako radi.

Ako ne radi ond ga instaliraj (za svaki slucaj) i pokreni.
 
Dobijam sledece:

Kod:
root     13473  0.0  0.0  1820  740 ?        Ss   Mar12   0:00 /usr/sbin/cron
root     16840  0.0  0.0  1620  432 ?        S    Mar19   0:00 /root/ispconfig/cronolog

Znaci to je kao ok?
 
Poslednja izmena:
Ima ga medju pokrenutim procesima, dakle kao je ok.
Aj sada jedno glupo pitanje el ti namesten lepo sat na tom serveru ? Mozda se tvojih 13.30 razlikuje od serverovih 13.30 :)
Kucaj "date" (bez navodnika naravno) da bi video.
 
:)

naravno da je ok vreme...

nego, na samom kraju svakog entry-ja u crontabu (osim za ovaj bekap), imam
Kod:
&> /dev/null

Koliko kontam, to je da rezultat (tj poruku o uspesnom izvrsenju) ne salje na mail, nego nigde. A cemu sluzi ovaj deo
Kod:
&>

Da nije u tome problem?
 
Koje su opcije programa po defaultu postavljene zavisi od toga sa kojim parametrima je paket kompajliran. U dobrom delu distroa ne treba uopste blokirati slanje e-mailova redirektnovanjem u void - prosto se navede komanda i nista iza nje. Kod nekih sam video da ljudi stavljaju & na kraju da se proces forkuje odnosno izvrsava u pozadini, ali to generalno nije potrebno eksplicitno navoditi.

Umesto u mail, output skripte mozes uvek redirektovati i u fajl. Samo moras razlikovati sta je sta kod redirekcije: ">" je rewrite, ">>" je append; 0=stdin, 1=stdout (ono sta bi dobio na ekranu), 2=stderr (poruke o greskama). Tako ta mozes output skripte kompletno da redirektujes u neki log ili pak samo eventualne greske, nesto tipa "30 13 * * * /root/bin/bkp.sh > /var/log/backup_errors.log 2>&1" ukoliko koristis bash.

U krajnjem slucaju, uvek mozes da pogledas sintaksu redirekcije za shell koji koristis, posto se unekoliko razlikuje izmedju bash-a, tcsh-a i drugih, a u samom crontab-u treba na pocetku da imas zabelezeno koji shell ce cron koristiti.
 
:)

nego, na samom kraju svakog entry-ja u crontabu (osim za ovaj bekap), imam
Kod:
&> /dev/null

Koliko kontam, to je da rezultat (tj poruku o uspesnom izvrsenju) ne salje na mail, nego nigde. A cemu sluzi ovaj deo

Pa pokusaj da sklonis taj "> /dev/null" da bi dobio neki output na mail, ili umesto toga stavi ">> /nekifajl". Pogledaj i sta se desava u cron logu. Mislim da je "/var/log/cron.log" na Debianu.
 
Pokusao sam da pisem poruke u fajl (/var/log/backup_errors.log) ali nakon "izvrsenja" posla fajla nema.

Sto je jos zanimljivije, nigde nema logova od cron-a...Pretrazio sam ceo disk i nema nicega.nada.zero.

Kako da izmenim gde cron pise logove? Guglam 2 dana na ovu temu i nisam nista nasao...
 
Poslednja izmena:
Jesi li proverio napr. /var/log/syslog?

Mnogi distroi tamo upisuju sve sto se tice crona.

Inace za izmenu lokacije cron log zapisa moraces da konfigurises syslogger (syslog ili syslog-ng, sta vec imas na masini).
 
Poslednja izmena:
Problem rešen - potreban je prazan red na kraju crontaba.

:mad:
 
Nazad
Vrh Dno