Sada je: 13 svi 2024, 22:44.
Moderator/ica: Moderatori/ce
8 post(ov)a
• Stranica: 1/1.
trzalica je napisao/la:...da li netko ima iskustva sa konfiguracijom anacron-a (anacrontab)?
Imam ja. Što te muči? Nisam neki ekspert, ali uspješno sam ga koristila.
Znači želim da se na tjednoj bazi pokrene skripta koja briše jedan file. Međutim, vjerojatno sam negdje putem nešto zeznuo jer koliko vidim, ništa se ne događa. Inače sa anacron-om nemam baš nikakvog iskustva a na netu nisam uspio pronaći ništa korisnoga...
/etc/cron.d/0hourly
/etc/anacrontab
I još sam pod /etc/cron.weekly/ stavio jednostavnu skriptu sa komandom za brisanje jedne fajle bez nastvka .sh jer sam pročitao da se to mora izbaciti da bi anacron odradio svoje.
EDIT: Pokušao sam unijeti direktno u anacrontab zadatak koji treba obaviti ali se ništa ne događa. To sam napravio na način da sam u anacrontab napisao sljedeće:
i onda sam anacron pokušao pokrenuti sa:
i ništa. Čak sam u anacrontab direktno napisao i naredbu koja je u skripti i opet ništa. Iritantno!
/etc/cron.d/0hourly
- Kod: Označi sve
# Run the hourly jobs
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
01 * * * * root run-parts /etc/cron.hourly
/etc/anacrontab
- Kod: Označi sve
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 4 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
I još sam pod /etc/cron.weekly/ stavio jednostavnu skriptu sa komandom za brisanje jedne fajle bez nastvka .sh jer sam pročitao da se to mora izbaciti da bi anacron odradio svoje.
- Kod: Označi sve
#!/bin/sh
rm [NAZIV FAJLE]
EDIT: Pokušao sam unijeti direktno u anacrontab zadatak koji treba obaviti ali se ništa ne događa. To sam napravio na način da sam u anacrontab napisao sljedeće:
- Kod: Označi sve
7 4 [naziv] bash [lokacija skripte]
i onda sam anacron pokušao pokrenuti sa:
- Kod: Označi sve
anacron -s -f -n
i ništa. Čak sam u anacrontab direktno napisao i naredbu koja je u skripti i opet ništa. Iritantno!
Zadnja izmjena: trzalica; 20 stu 2016, 18:48; ukupno mijenjano 1 put/a.
Ne moraš stavljati skriptu u /etc/cron* foldere, ona se može nalaziti bilo gdje.
Problem je što ti anacron ne funkcionira isto kao cron:
Za razliku od njega, cron ti je stalno pokrenut u pozadini i "pazi" kad se treba nešto izvršiti. Međutim, njegov problem je to što ako ti je komp ugašen u vrijeme kad bi se neki task trebao izvršiti, cron neće to "zapamtiti" i napraviti kad se ponovno podigne sustav. U osnovi, preskočit će taj jedan task.
Za ovaj tvoj slučaj možeš probati kombinirati @weekly i @reboot opcije u samom crontabu. Pritom ne bi trebao uređivati crontab u text editoru, već koristiti naredbu
Sa crontab -l možeš vidjeti kako izgleda trenutni crontab za tvog korisnika.
Sa crontab -e možeš dodati tu svoju skriptu tako da bude:
30 8 * * 7 /putanja/do/naredbe
To znači da će se naredba pokrenuti svake nedjelje (umjesto 7 možeš napisati i Sun, ili neki drugi broj/dan) u 8:30.
Možeš napisati i
@weekly /putanja/do/naredbe
ali to će se onda pokrenuti u nedjelju u ponoć.
Još neke stvari na koje treba paziti u vezi same skripte:
To je vjerojatno jednostavna skripta za brisanje, ali možda joj nešto nedostaje od ovih stvari navedenih gore, pa ju zato cron ne može pokrenuti. I naravno, skripta bi trebala imati pravilno postavljene permissione i biti executable.
Ne znam pomaže li ti išta od ovoga, možda će netko drugi bolje objasniti. Teško mi je napamet govoriti kad ne znam kako izgleda ta skripta ni crontab od tvog korisnika.
Problem je što ti anacron ne funkcionira isto kao cron:
It's not a resident daemon and therefore can't replace crond or atd; it starts up at boot time (or when manually invoked), waits for the appropriate intervals before checking some conditions, and then once everything has been checked or run, it quits.
Za razliku od njega, cron ti je stalno pokrenut u pozadini i "pazi" kad se treba nešto izvršiti. Međutim, njegov problem je to što ako ti je komp ugašen u vrijeme kad bi se neki task trebao izvršiti, cron neće to "zapamtiti" i napraviti kad se ponovno podigne sustav. U osnovi, preskočit će taj jedan task.
Za ovaj tvoj slučaj možeš probati kombinirati @weekly i @reboot opcije u samom crontabu. Pritom ne bi trebao uređivati crontab u text editoru, već koristiti naredbu
- Kod: Označi sve
crontab -e
Sa crontab -l možeš vidjeti kako izgleda trenutni crontab za tvog korisnika.
Sa crontab -e možeš dodati tu svoju skriptu tako da bude:
30 8 * * 7 /putanja/do/naredbe
To znači da će se naredba pokrenuti svake nedjelje (umjesto 7 možeš napisati i Sun, ili neki drugi broj/dan) u 8:30.
Možeš napisati i
@weekly /putanja/do/naredbe
ali to će se onda pokrenuti u nedjelju u ponoć.
Još neke stvari na koje treba paziti u vezi same skripte:
When cron job is run from the users crontab it is executed as that user. It does not however source any files in the users home directory like their .cshrc or .bashrc or any other file. If you need cron to source (read) any file that your script will need you should do it from the script cron is calling.
If the users account has a crontab but no usable shell in /etc/passwd then the cronjob will not run. You will have to give the account a shell for the crontab to run.
If your cronjobs are not running check if the cron daemon is running. Then remember to check /etc/cron.allow and /etc/cron.deny files. If they exist then the user you want to be able to run jobs must be in /etc/cron.allow. You also might want to check if the /etc/security/access.conf file exists. You might need to add your user in there.
Crontab is not parsed for environmental substitutions. You can not use things like $PATH, $HOME, or ~/sbin. You can set things like MAILTO= or PATH= and other environment variables the /bin/sh shell uses.
To je vjerojatno jednostavna skripta za brisanje, ali možda joj nešto nedostaje od ovih stvari navedenih gore, pa ju zato cron ne može pokrenuti. I naravno, skripta bi trebala imati pravilno postavljene permissione i biti executable.
Ne znam pomaže li ti išta od ovoga, možda će netko drugi bolje objasniti. Teško mi je napamet govoriti kad ne znam kako izgleda ta skripta ni crontab od tvog korisnika.
Aha, sad vidim edit. Ne možeš u anacrontabu pisati "bash", mislim da mora biti eksplicitna putanja do svake naredbe.
7 4 job_identifier /bin/sh /putanja/do/skripte
7 4 job_identifier /bin/sh /putanja/do/skripte
Problem je što ti anacron ne funkcionira isto kao cron:
It's not a resident daemon and therefore can't replace crond or atd; it starts up at boot time (or when manually invoked), waits for the appropriate intervals before checking some conditions, and then once everything has been checked or run, it quits.
Za razliku od njega, cron ti je stalno pokrenut u pozadini i "pazi" kad se treba nešto izvršiti. Međutim, njegov problem je to što ako ti je komp ugašen u vrijeme kad bi se neki task trebao izvršiti, cron neće to "zapamtiti" i napraviti kad se ponovno podigne sustav. U osnovi, preskočit će taj jedan task.
Znam-znam, zato i želim anacron a ne cron za ovaj zadatak. Cron sam do sada uspješno konfigurirao po serverima samo sa anacronom nisam imao iskustva.
Za ovaj tvoj slučaj možeš probati kombinirati @weekly i @reboot opcije u samom crontabu. Pritom ne bi trebao uređivati crontab u text editoru, već koristiti naredbu
- Kod: Označi sve
crontab -e
. Ili, možeš samo definirati taj @weekly u crontabu i onda symlinkati skriptu u /etc/cron.weekly - onda bi ju anacron trebao pokrenuti ako ju cron "propusti".
Ne možeš u anacrontabu pisati "bash", mislim da mora biti eksplicitna putanja do svake naredbe.
7 4 job_identifier /bin/sh /putanja/do/skripte
U anacrontab sam dodao:
- Kod: Označi sve
7 4 [naziv] /bin/sh [putanja do skripte]
a onda sam provjerio sa:
- Kod: Označi sve
sudo anacron -s -f -n
provjerio da li radi pogledom u /var/spool/anacron/ i naravno, željena datoteka je izbrisana.
Ako hoćeš, možeš ovih nekoliko postova prebaciti u novu temu (možda će pomoći još nekome ubuduće).
OK, dakle sad radi? Super
Evo, odvojila sam postove u zasebnu temu.
Evo, odvojila sam postove u zasebnu temu.
Abzeenth je napisao/la:OK, dakle sad radi? Super
Evo, odvojila sam postove u zasebnu temu.
Da, sada radi tj. testirao sam sa:
- Kod: Označi sve
sudo anacron -s -f -n
i zadani zadatak je izvršen.
Mislim da je bilo ključno što sam promijenio onaj dio za bash skriptu u anacrontab fajli koji si mi predložila da promijenim jer poslije te izmjene (/bin/sh), profunkcioniralo je.
Ako slučajno nešto ne bude štimalo u međuvremenu, opet ću početi njurgati bez brige
8 post(ov)a
• Stranica: 1/1.
Na mreži
Trenutno korisnika/ca: / i 3 gostiju.