Strona 1 z 1

[cron] Nieuruchamiające się zadania

: 01 lut 2009, 13:08
autor: gelmi
Witam

Mam napisany skrypt do zmiany tapet w określonym czasie (.tapety.sh):

#!/bin/bash

HOUR=$(date +%H)

case $HOUR in

05|06|07|08|09|10)

/usr/bin/gconftool -t string -s /desktop/gnome/background/picture_filename '/home/gelmi/Obrazy/tapety/rano.jpg'

;;

11|12|13|14|15|16)

/usr/bin/gconftool -t string -s /desktop/gnome/background/picture_filename '/home/gelmi/Obrazy/tapety/dzien.jpg'

;;

17|18|19|20|21)

/usr/bin/gconftool -t string -s /desktop/gnome/background/picture_filename '/home/gelmi/Obrazy/tapety/wieczor.jpg'

;;

*)

/usr/bin/gconftool -t string -s /desktop/gnome/background/picture_filename '/home/gelmi/Obrazy/tapety/noc.jpg'

;;

esac
Dopisałem nawet ścieżki do gconftool, bo wyczytałem że czasami cron musi mieć pełne ścieżki. Skrypt uruchamia się manualnie ok. Problem jest taki, że jeżeli wrzucę go do tablicy crona to nic się nie zmienia. Próbowałem dodawać w różny sposób linijkę do crona (dla początkowych testów uruchamiam co minutę):

* * * * * sh /home/gelmi/Obrazy/tapety/.tapety

lub

* * * * * sh /home/gelmi/Obrazy/tapety/.tapety.sh

lub

* * * * * /home/gelmi/Obrazy/tapety/.tapety.sh
Próbowałem jeszcze dodać ścieżkę /bin/bash do rozkazu, ale dalej nic.
Wpis dodawałem, że tablic crona użytkownika lokalnego, gdzie w pliku .tapety.cron był któryś z listingów wyżej:
crontab /home/gelmi/Obrazy/tapety/.tapety.cron

lub

sudo crontab /home/gelmi/Obrazy/tapety/.tapety.cron
Dalej nic. Poprzez crontab -e próbowałem sam wpisać linijkę, zarówno dla użytkownika zwykłego jak i dla roota. Również próbowałem wpisać do globalnej w /etc/cron.d/ oraz do indywidualnej w /var/spool/cron/crontabs/gelmi. Nic nie działa. Przeglądając tablicę użytkowników crontab -l wpis zawsze jest, zarówno jak wpisywałem dla użytkownika oraz w tablicy roota jak wpisałem dla roota sudo crontab -l.
W dzienniku systemowym pokazuje co minutę że jest uruchamiany CMD. Jak wprowadziłem do użytkownika to uruchamia jako użytkownik, a jak wprowadziłem do tablicy roota to odpala polecenie jako root.
Próbowałem również zamiast pliku sh odpalać co minutę gedita, ale też nie działało.
W syslogu wszystko wydaje się ok, ale nie ma efektów.
Na 8.04 wszystko chodziło ok, a na 8.10 nie do końca :)
Jakieś pomysły?

Dodałem się również do cron.allow:
sudo bash -c 'echo "gelmi" >> /etc/cron.allow'

Odp: [cron] Nie urumiające się zadania

: 01 lut 2009, 13:43
autor: el.pescado
Po pierwsze, sprawdź, czy skrypt możesz wykonać w konsoli - wklej po prostu do terminala polecenie i zobacz czy się uruchomi, bo z podanych wyżej przykładów widać, że nie do końca wiesz jak się nazywa twój skrypt;) Jeżeli się nie uruchomi to: jesęli chcesz uruchomić za pomocą "/ścieżka/do/pliku", upewnij się, że plik może być uruchamiany (prawo do uruchamiania możesz nadać poleceniem:

Kod: Zaznacz cały

chmod a+x /ścieżka/do/pliku
Ewentualnie, możesz skrypt uruchamiać explicite wywołując interpreter poleceń (tu uwaga, napisałeś skrypt w bashu (rozpoczyna się od #!/bin/bash), a potem próbujesz go odpalić za pomocą sh - w ubuntu bash to co innego niż sh - lepiej więc być konsekwentnym):

Kod: Zaznacz cały

bash /ścieżka/do/pliku
Po drugie, sprawdź, czy to polecenie znajduje się w tablicy crona:

Kod: Zaznacz cały

crontab -l
Gedit się nie uruchamiał, gdyż cron nie ma połączenia z serwerem X, więc nie może otwierać okien.

Odp: [cron] Nie uruchamiające się zadania

: 01 lut 2009, 13:47
autor: Hagal
Spróbuj zmienić w skrypcie wszyskie linie zaczynające się od
/usr/bin/gconftool xxxxxxxx
na
DISPLAY=":0.0" /usr/bin/gconftool xxxxxxxx

Pozdrawiam

Odp: [cron] Nie uruchamiające się zadania

: 01 lut 2009, 14:41
autor: gelmi
Dzięki za odpowiedzi. Skrypt jest uruchamialny (zaznaczyłem to w opcjach), mogę go odpalić poprzez terminal albo Alt+F2. Dodałem tą ścieżkę DISPLAY, ale nie pomogło. Poczytałem też trochę i dodałem zmienne środowiskowe do pliku, ale dalej nic. Po wpisaniu crontab -l pokazuje się listing już z poprawioną komendą wywołania bash i zmieniłem też nazwę pliku na tapety.bash. Ale dalej nic:
USER=gelmi
HOME=/home/gelmi
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/home/gelmi/bin
DISPLAY=:0.0
MAILTO=gelmi
* * * * * bash /home/gelmi/Obrazy/tapety/tapety.bash
Plik tapety.bash
#!/bin/bash

HOUR=$(date +%H)

case $HOUR in

05|06|07|08|09|10)

DISPLAY=":0.0" /usr/bin/gconftool -t string -s /desktop/gnome/background/picture_filename '/home/gelmi/Obrazy/tapety/rano.jpg'

;;

11|12|13|14|15|16)

DISPLAY=":0.0" /usr/bin/gconftool -t string -s /desktop/gnome/background/picture_filename '/home/gelmi/Obrazy/tapety/dzien.jpg'

;;

17|18|19|20|21)

DISPLAY=":0.0" /usr/bin/gconftool -t string -s /desktop/gnome/background/picture_filename '/home/gelmi/Obrazy/tapety/wieczor.jpg'

;;

*)

DISPLAY=":0.0" /usr/bin/gconftool -t string -s /desktop/gnome/background/picture_filename '/home/gelmi/Obrazy/tapety/noc.jpg'

;;

esac
Ew czym innym mógłbym uruchamiać skrypty o danym czasie?

Odp: [cron] Nie uruchamiające się zadania

: 01 lut 2009, 16:36
autor: el.pescado
Możesz dopisać w skrypcie coś w stylu

Kod: Zaznacz cały

echo "uruchamiam skrypt, godzina $HOUR" >> /home/gelmi/tapety.log
i potem sprawdzić co znajduje się w pliku tapety.log

ewentualnie na koniec polecenia gconftool dopisać:

Kod: Zaznacz cały

 2>> /home/gelmi/tapety.log
(gconftool chyba nie potrzebuje zmiennej DISPLAY)

Odp: [cron] Nie uruchamiające się zadania

: 01 lut 2009, 17:50
autor: gelmi
Wyrzuciłem zawartość skryptu i dodałem tylko tą linijkę echo. Plik się nie tworzy. Wydaje mi się, że jest coś nie tak z cronem w 8.10. Na 8.04 Wszystko śmigało z tymi samymi plikami i konfiguracją. Zauważyłem, że na forach pojawia się dużo wątków, że skrypty nie chcą się uruchamiać pod 8.10 przez crona. Jak na razie, to poradziłem sobie wrzucając cały skrypt w pętlę ze sleepem 10m. Dzięki serdeczne za porady. Pozdrawiam.

Odp: [cron] Nie uruchamiające się zadania

: 01 lut 2009, 18:55
autor: el.pescado
Dziwne... u mnie działa:

Kod: Zaznacz cały

przemek@habazie:~/tmp$ cat ./skrypt.sh
#!/bin/sh

date >> /home/przemek/tmp/skrypt.log

przemek@habazie:~/tmp$ crontab -l
# m h  dom mon dow   command

* * * * * /home/przemek/tmp/skrypt.sh

przemek@habazie:~/tmp$ cat ./skrypt.log 
nie, 1 lut 2009, 18:45:28 CET
Sun Feb  1 18:47:01 CET 2009
Sun Feb  1 18:48:01 CET 2009
Sun Feb  1 18:49:01 CET 2009
Sun Feb  1 18:50:01 CET 2009
Sun Feb  1 18:51:01 CET 2009
Sun Feb  1 18:52:01 CET 2009
Sun Feb  1 18:53:01 CET 2009
Sun Feb  1 18:54:01 CET 2009

Odp: [cron] Nie uruchamiające się zadania

: 01 lut 2009, 19:16
autor: dk75
Ja tam też nie mam problemów z CRONTAB.

A do zmiany tapetek polecam Wallpapoz

Odp: [cron] Nie uruchamiające się zadania

: 04 lut 2009, 19:09
autor: Bonzaii
Witam. Dołączę się do tematu, bo się identyfikuje z moim problemem (temat).

Odnoszę wrażenie, że u mnie crontab nie jest w ogóle respektowany. Ani z poziomu roota, ani z poziomu zwyklego usera.

Dodałem 2 polecenia z poziomu roota (sudo crontab -e) - edytor mcedit:

Kod: Zaznacz cały

* * * * * echo " test " >> /home/mycron.log
* * * * * bash echo " test " >> /home/mycron.log
Niestety plik nie powstaje. Co robię źle? Dodam, że cron jest włączony (sprawdzałem za pomocą polecenia: sudo ps -x | grep cron )

@edit:
[solved]
Pomogło usunięcie anacron , którego wcześniej bałem się usunąć, ze względu na to, że chciał przy okazji usunąć ubuntu-desktop

Odp: [cron] Nie uruchamiające się zadania

: 17 lut 2009, 21:36
autor: Szmitas
Odświeżę trochę temat.

Polecenia dla crona zapisane w /etc/cron.d/crontab uruchamiają się bez problemu - dla roota i zwykłego użytkownika.
Jednak polecenia w pliku /var/spool/cron/crontabs/szmitas nie... mimo iż polecenie crontab -l pokazuje, że jest zadanie do wykonania.

Użytkownik jest dodany w pliku /etc/cron.allow

Jakiś pomysł?

Odp: [cron] Nie uruchamiające się zadania

: 17 lut 2009, 23:16
autor: 17piotrek
A może zapomniales o prawach do uruchomienia? Czasem sie zdaza zapomniec.

Odp: [cron] Nie uruchamiające się zadania

: 17 lut 2009, 23:23
autor: Szmitas
O prawach do uruchomienia... ale czego?

Wpis w cronie opiera się jedynie na wpisaniu tekstu do pliku, więc żadnych praw do uruchomienia nie trzeba.

Odp: [cron] Nie uruchamiające się zadania

: 18 lut 2009, 23:49
autor: 17piotrek
Spróbuj może zapisać to w jakimś mini skrypciku i ustawić w cronie uruchamianie tego skryptu.

Odp: [cron] Nieuruchamiające się zadania

: 19 lut 2009, 08:10
autor: Szmitas
Nadal to samo.
W sumie to już przyzwyczaiłem się do edycji głównego pliku (i ścieżka do niego jest krótsza - łatwiejsza do zapamiętania), więc pozostanę przy tym, skoro nie chce działać.