[+] Skrypt uruchamiany z pomoc

Konfiguracja serwerów, usług, itp.
nyx
Posty: 8
Rejestracja: 08 sierpnia 2012, 23:37

[+] Skrypt uruchamiany z pomocą CRON-a

Post autor: nyx »

Witam.

Napisałem sobie prosty skrypt, którego zadaniem jest informowanie mnie o czasie jaki użytkownik jest "poza" komputerem.

Kod: Zaznacz cały

#!/bin/bash

il_ms=300000

idletime=`/usr/bin/xprintidle`

/bin/date  +%T >> /home/[B]użytkownik[/B]/idletime
echo $idletime >> /home/[B]użytkownik[/B]/idletime
echo "_________" >> /home/[B]użytkownik[/B]/idletime

if  [ "$idletime" -ge "$il_ms" ] ;
then
echo "status 1" >> /home/[B]użytkownik[/B]/idletime
else 
echo "status 2" >> /home/[B]użytkownik[/B]/idletime
fi

echo "=======" >> /home/[B]użytkownik[/B]/idletime
Jak uruchomię sobie lokalnie ten skrypt wszytko działa dobrze.

Chciałem zautomatyzować skrypt i uruchamiać go cyklicznie zatem poleceniem:

Kod: Zaznacz cały

crontab -e
dodałem sobie wpis:

Kod: Zaznacz cały

* * * * * /bin/sh -c  /home/użytkownik/skrypt.sh >> /dev/null
I niestety, w pliku powstałym przez działanie skryptu nie ma informacji o czasie pochodządzącym z programu xprintidle.

Nie wiem gdzie robię błąd? Może uda się Wam go znaleźć.

Dziękuję za pomoc.
larry2003
Posty: 41
Rejestracja: 02 grudnia 2009, 14:26

Post autor: larry2003 »

Pamiętaj, że w crontabie można włączyć logowanie do pliku:

Kod: Zaznacz cały


* * * * * /bin/sh -c  /home/[B]użytkownik[/B]/skrypt.sh >> /home/[B]użytkownik[/B]/jakiś.log 2>&1
Z pewnością nakierowałoby Cię to na rozwiązanie:

Kod: Zaznacz cały


* * * * * env DISPLAY=:0.0 /bin/sh -c  /home/[B]użytkownik[/B]/skrypt.sh >> /dev/null
nyx
Posty: 8
Rejestracja: 08 sierpnia 2012, 23:37

Post autor: nyx »

Cześć
Faktycznie próbowałem włączyć logowanie ale nie dodałem na końcu : 2>&1 (plik z logiem tworzył się pusty).
Teraz faktycznie działa tak jak trzeba.
Jeszcze raz dzięki.
ODPOWIEDZ