2012-10-23 4 views
10

So habe ich eine Sammlung von Skripten, die verwendet werden, um meine Empfänger und TV-Stromversorgung während bestimmter Ereignisse wie Boot, Bildschirmschoner und Fernbedienung zu steuern. Einer davon wird während der Anmeldung ausgeführt, aber die Sache ist vielleicht, dass ich nicht möchte, dass das Skript ausgeführt wird, wenn der Computer hochgefahren wird. Ich habe die Logik, Ereignisse zu ignorieren, wenn während der Ausführung von Startup-Anwendungen leer = 0, daher wird es nicht während des Starts oder Herunterfahrens gesendet. Wie kann ich dies durch die Verwendung von Cron erreichen? Ich wähle Cron, weil diese Ereignisse vor Start-Anwendungen passieren. Cron ist großartig, aber soweit ich es verstehe, kann ich nur zu Fuß oder nach einem Zeitplan nicht beide laufen. Ich muss die Zeitvariable skripten, aber ich weiß nicht wie.Cron-Boot-Skript nur während bestimmter Zeiten des Tages

syson.sh

#!/bin/sh 
cd /home/gilson585/ 
blanked=`cat blanked` 
if [ $blanked -eq 0 ] ; then 
    blanked=1;echo $blanked > blanked 
else 
    irsend SEND_ONCE VR4085DF KEY_POWER;irsend SEND_ONCE Kenwood_RC-R0813 power;blanked=0;echo $blanked > blanked 
    sleep 1 
    irsend SEND_ONCE Kenwood_RC-R0813 cd/dvd 
fi 

sysoff.sh (beim Herunterfahren als Teil lirc init.d Skript und Bildschirmzustandswechsel genannt)

(bei der Anmeldung als Start App und Bildschirm Zustandsänderung genannt)
#!/bin/sh 
cd /home/gilson585/ 
blanked=`cat blanked` 
if [ $blanked -eq 0 ] ; then 
    irsend SEND_ONCE Kenwood_RC-R0813 power;irsend SEND_ONCE VR4085DF KEY_POWER;blanked=1;echo $blanked > blanked 
fi 

xscreensaver.sh (screen~~POS=TRUNC Watchdog, bei der Anmeldung genannt)

#!/bin/bash 
cd /home/gilson585/ 
xscreensaver-command -watch| 
while read STATUS; do 
    case "$STATUS" in 
    BLANK*) 
     /home/gilson585/sysoff.sh;blanked=1;echo $blanked > blanked 
     ;; 
    UNBLANK*) 
     /home/gilson585/syson.sh;blanked=0;echo $blanked > blanked 
     ;; 
    esac 
done 
+3

Ich werde nicht einmal lügen, das ist ziemlich beeindruckend! Gibt es eine Chance, dass du mehr Details über dein Setup teilen kannst? –

+0

Ja, aber es gibt eine Menge, und ich bin mir nicht sicher, ob hier der richtige Ort ist. Vielleicht poste ich es auf den Ubuntu-Foren und verlinke es. – gilson585

+3

Sie könnten versuchen, dies zu kontrollieren, indem Sie eine XML-Datei verwenden, um zu planen wann und wann nicht? Das Skript kann durch dieses prasentieren und es als ein Steuerelement mit einem logischen Gatter verwenden (wenn) –

Antwort

-1

Ah. Zumindest können Sie zwei Skripte für jetzt verwenden. Die Zeiteinstellung ist eine Liste von Wochen/Stunden/Minuten/Sekunden/etc. Sie setzen es mit Parametern wie

42 * * * * /bin/execute/awesomescript.sh 

Dies würde etwas auf Minute 42 jeder Stunde ausführen. Diese Seite hat eine Erklärung, die ich im Grunde regurgitating würde: http://kvz.io/blog/2007/07/29/schedule-tasks-on-linux-using-crontab/

Es gibt auch Skripte wie

42 9,12,15 * * * /bin/stuff/awesomestuff.sh 

Welche awesomestuff.sh um 9:42 zu tun, 12.42 und 15:42