Valjana shell skripta pozivana crontabom se ne izvršava

Novi ste u svijetu Linuxa? Imate hrpu početničkih pitanja?

Moderator/ica: Moderatori/ce

Pravila foruma
PRAVILA ZA NOVE KORISNIKE LINUXA!
Prije otvaranja bilo kakve diskusije svaki novi korisnik u svijetu Linuxa obavezan je učiniti sljedeće korake:
Pročitati ove tekstove iz naše Wikipedije:
- Sve uvodne tekstove Linuxa za početnike (njih 5)
- Sve što trebate znati o radu s diskovima
- Pročitati ovu temu za početnike
- Pokušati pronaći riješenje problema u Enciklopediji znanja

Nakon toga korisnik smije otvoriti temu s naslovom svog problema uz obaveznu naznaku Linux distribucije koju koristi u formi:
[Linux distribucija, broj verzije, grafičko okruženje]: Naslov problema
U prvom postu korisnik obavezno mora odgovoriti na ova pitanja:
- Da li ima instalirane Windowse?
- Što ga je motiviralo na instaliranje i korištenje Linux distribucije?
- Obavezno je potrebno navesti specifikacije hardvera (Ime Laptopa, tip procesora, grafičke i mrežne kartice, količina RAM-a i diska)

Bez učinjenih ovih prvih koraka, na teme se neće odgovarati i one će biti izbrisane s foruma!
Odgovori
Gigolo

Valjana shell skripta pozivana crontabom se ne izvršava

Post Postao/la Gigolo »

Molim vas pomoć, meni ne ide, a dugo probavam svašta. Imam valjanu skriptu koja je radila na starim distrama a na ni jednoj novoj neće. Možda zbog novog Gnome-a. Uglavnom kad se skripta pejsta u shell ona odradi svoje, znači ona je ok! Evo je:

Kod: Označi sve

#!/bin/bash
WALLPAPERS_LOCATION="/home/davor/Zaslon/wallpaper/"
cd $WALLPAPERS_LOCATION
ile=`ls | wc -l | tr -d "[ ]"`
counter=1
for i in `ls`
do
pic[counter]=${WALLPAPERS_LOCATION}$i
((counter=counter+1))
done
RANDOM=$(date +%s)
which_pic=$[($RANDOM % ile)]
echo ${pic[$which_pic]} > /home/davor/wall.txt
gconftool-2 --type string --set /desktop/gnome/background/picture_filename ${pic[$which_pic]}
Zatim imam file

Kod: Označi sve

10,30,50 * * * * /home/davor/linux/wallpaper/wallp
Sve pokrenem sa

Kod: Označi sve

 crontab /linux/cron.txt
i provjerim sa crontab -l Sve je OK ali ne radi! Kako to riješiti?
Još bih dodao da je npr u Mandrivi 2008 crontab trebalo postaviti kao su, ali na novim distrama ne radi ni to. Dakle

Kod: Označi sve

su
...pwd
crontab -u davor linux/cron.txt
Napominjem da nije do relativnog patha u crontab naredbi jer su stare distre radile sa i bez početka /home/davor/linux/cron.txt
Zbog ovog problema sam odustao od Ubuntua, a onda primjetio da ne radi ni u Debianu, ni Mintu, ni Mandrivi ni Fedori. Mislim na novi gnome.
PLEASE!!
Avatar
Grof
Site Admin
Postovi: 9954
Pridružen/a: 04 pro 2007, 08:00
Lokacija: Zagreb

Re: Valjana shell skripta pozivana crontabom se ne izvršava

Post Postao/la Grof »

Daj otvori datoteku /etc/crontab, pa je pejstaj ovdje.

Pogledaj kako izgleda ova moja sa Ubuntua 8.04.

Kod: Označi sve

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user	command
17 *	* * *	root    cd / && run-parts --report /etc/cron.hourly
25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
Imaš već gotove direktorije za satna, dnevna, tjedna i mjesečna startanja. Samo stavi skriptu u odgovarajući direktorij (/etc/cron.houry...cron.daily...cron.weekly...cron.monthly)
Gigolo

Re: Valjana shell skripta pozivana crontabom se ne izvršava

Post Postao/la Gigolo »

Grofe, hvala na brzom response time-u. Evo fajla:

Kod: Označi sve

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
Inače sad imam Fedoru 10 koju moram reinstalirati jer sam je uništio. Našao sam program wallpapoz i on mjenja desktop. Ipak volio bih da stara shell skripta radi.
Avatar
Grof
Site Admin
Postovi: 9954
Pridružen/a: 04 pro 2007, 08:00
Lokacija: Zagreb

Re: Valjana shell skripta pozivana crontabom se ne izvršava

Post Postao/la Grof »

Vidm da i ti imaš te direktorije, pa pokušaj onda postaviti svoju skriptu u jedan od njih, pa vidi da li to radi!

Ako skripta sama po sebi radi, onda je stvar u postavljanju parametara u crontab tablici. Nema drugo kaj biti, a ako je tvoja crontab tablica ovakva, onda ja u njoj nevidim gdje si ti postavio pozivanje ove skripte?

Ta linija bi morala biti u tom fileu, kojg uzgred, možeš i sam editirati i dodati si stavku za startanje te skripte.
To je ujedno i najsigurniji način...
Gigolo

Re: Valjana shell skripta pozivana crontabom se ne izvršava

Post Postao/la Gigolo »

Nikako pokreniti. Al ovako prerađena skripta radi sve sama. Startan je u sesions.

Kod: Označi sve

#!/bin/bash
while [ 1 -eq 1 ]
do
WALLPAPERS_LOCATION="/home/davor/Zaslon/wallpaper/"
cd $WALLPAPERS_LOCATION
ile=`ls | wc -l | tr -d "[ ]"`
counter=1
for i in `ls`
do
pic[counter]=${WALLPAPERS_LOCATION}$i
((counter=counter+1))
done
RANDOM=$(date +%s)
which_pic=$[($RANDOM % ile)]
echo ${pic[$which_pic]} > /home/davor/wall.txt
gconftool-2 --type string --set /desktop/gnome/background/picture_filename ${pic[$which_pic]}
sleep 25m
done
Odgovori