Dodaj do ulubionych

cron + skrypt

27.01.07, 11:41
Witam.
Ostatnio wymyśliłem sobie, ze do sygnaturki w e-mailu będę wstawiał sobie
linijkę o tym czego aktualnie słucham w Amaroku (taki mały kaprys ;) ).
Grzebiąc w sieci znalazłem jakieś skrypty, które przerobiłem na taki, który
odpowiadał moim potrzebom (od razu zaznaczę, że się kompletnie na tym nie znam
i robiłem to na czuja - ale najważniejsze w moim przekonaniu było to, że
działało :P ). Ponieważ wtedy używałem Sylpeed-Claws wystarczyło, że ustawiłem
sobie jako sygnaturkę "wyjście komendy" i wszystko było ok.
Problem powstał gdy z pewnych względów przesiadłem się na Thunderbirda.
Ponieważ nie ma w nim takiej opcji pomyślałem, ze mój skrypt będzie wykonywał
cron, a wynik jego działania zapisywany będzie w pliku tekstowym. Niestety są
problemy :(

Skrypt wygląda tak:

===

#! /bin/sh
echo "mój@adres.mail
"

playing=`dcop amarok player nowPlaying 2>/dev/null`
if test "$playing" != ""; then
echo "Tego maila sponsoruje: $playing"
fi
===

i gdy był wykonywany z konsoli lub przez Sylpheeda wynikiem jego działania
było na przykład coś takiego

===

mój@adres.mail

Tego maila sponsoruje: Kult - Wodka 2

===

do pliku konfiguracyjnego crona dodalem następującą linijkę

===
"0,5,10,15,20,25,30,35,40,45,50,55" * * * * pio /home/pio/sygnaturki/tlen >
/home/pio/sygnaturki/o2.txt
===

tak aby co pięć minut aktualizował dane w sygnaturce. Problem jest taki, że po
wykonaniu skryptu przez crona w pliku o2.txt pojawia się tylko adres mailowy
bez linijki o utworze. Bardzo proszę o pomoc, ew. o sugestię jak w bardziej
elegancki sposób to rozwiązać.

pozdrawiam,
rootol
Obserwuj wątek
    • xxx222 Re: cron + skrypt 27.01.07, 12:04
      Strzelam:
      1) Czy cron znajduje polecenie dcop bez podania mu pełnej ścieżki;
      2) Jako kto cron uruchamia dcop
      3) Co mówią logi - cron powinien coś mądrego powiedzieć, gdyby napotkał
      błąd...

      • xxx222 PS. logi 27.01.07, 12:07
        No tak, ale błędy z wykonania dcop kierujesz do /dev/null więc cron nic o tym
        nie wie, więc nic nie zaloguje... Może na czas testów skieruj je do jakiegoś
        pliku?
        • rootol Re: PS. logi 27.01.07, 22:44
          Dzięki wielkie za pomoc. Udało się. Po przekierowaniu błędów z dcop do pliku
          okazało się, że brak było połączenia z serwerem dcop. Zmieniłem

          playing=`dcop amarok player nowPlaying 2>/dev/null`

          na

          playing=`dcop --user pio amarok player nowPlaying 2>/dev/null`

          i działa.

          Jeszcze raz bardzo dziękuję!
          pzdr,
          rootol
    • szast_adam Re: cron + skrypt 28.01.07, 03:22
      Jak już działa to dobrze.

      Parę drobiazgów: w cronie (i w skryptach uruchamianych z crona) lepiej podawać
      pełne ścieżki lub definiować ścieżkę na początku - bo cron nie przetwarza
      skryptów logowania, ustawiających środowisko.
      Uruchomienie co 5 minut możesz też podać tak:

      */5 * * * * /home/ja/komenda

      Pozdrawiam
      AdamS.

      PS. po "shebang" (#!) nie ma spacji - przynajmniej w standarcie (większość
      zinterpretuje poprawnie, ale nie musi...)
      • rootol Re: cron + skrypt 29.01.07, 21:19
        Dzięki za rady.

        > */5 * * * * /home/ja/komenda

        faktycznie dużo bardziej eleganckie.

        pzdr,
        rootol

Nie masz jeszcze konta? Zarejestruj się


Nakarm Pajacyka