[Megoldva] at gondok

Fórumok

Sziasztok!

A család kérésére adott időpontokban szeretném automatikusan cserélni a hátteret (WallpaperClock screenlet).
Mivel minden este kikapcsolom a gépet ezért az "at"-tel próbálom megcsinálni (továbbá a crontabot még ennyire sem értem).
Ezért, úgy próbáltam megoldani, hogy írtam egy scriptet ami bejelentkezéskor lefut.

A kódrészletem:
"
#!/bin/bash

rm -f /home/jac/.screenlets/WallpaperClock/wallpapers/lcd_actual.wcz && ln -s /home/jac/.screenlets/WallpaperClock/lcd_green1280x1024.wcz/ /home/jac/.screenlets/WallpaperClock/wallpapers/lcd_actual.wcz && echo "zöld 0800" > /home/jac/zöld.txt | at 0800

rm -f /home/jac/.screenlets/WallpaperClock/wallpapers/lcd_actual.wcz && ln -s /home/jac/.screenlets/WallpaperClock/lcd_red1280x1024.wcz/ /home/jac/.screenlets/WallpaperClock/wallpapers/lcd_actual.wcz && echo "piros 2200" > /home/jac/piros.txt | at 2200
"

De, amíg parancssorban ezek tökéletesen működnek addig bejelentkezéskor indulva lefut mindkettő (pont ezért használom az "echo"-t, hogy lássam melyik .txt jelenik meg a mappámban - hát mindkettő, ráadásul azonnal), de az "atq" kimenete azt írja , hogy ezek a feladatok várakoznak, s amikor eljön az idejük már nem csinálnak semmit.

Próbáltam szétszedni a parancsokat sorokra hátha a "&&"-ok zavarják, de az sem vezetett eredményre:
"
rm -f /home/jac/.screenlets/WallpaperClock/wallpapers/lcd_actual.wcz | at 0800
ln -s /home/jac/.screenlets/WallpaperClock/lcd_green1280x1024.wcz/ /home/jac/.screenlets/WallpaperClock/wallpapers/lcd_actual.wcz | at 0800
echo "zöld 0800" > /home/jac/zöld.txt | at 0800
"

Van valakinek ötlete mit rontok el?
Előre is köszönöm!

Szerk.:

Valaki hazudik!
Gondoltam egyszerűsítek, nekem az "at" okoz gondot hát kipróbáltam egy ilyet:

jac@betelgeuse ~ $ touch ~/teszt.txt | at 1258
warning: commands will be executed using /bin/sh
job 57 at Fri Aug 5 12:58:00 2011

Tehát, 12:58-kor létrehozod nekem a teszt.txt-t, hát nem, mert azonnal létrehozta.
Pedig:
jac@betelgeuse ~ $ atq
57 Fri Aug 5 12:58:00 2011 a jac

Szóval a feladat még várakozik, pedig már elvégeztetett...

Szerk.2 a Megoldás:
#nappal
echo "rm -f /home/jac/.screenlets/WallpaperClock/wallpapers/lcd_actual.wcz && ln -s /home/jac/.screenlets/WallpaperClock/lcd_green1280x1024.wcz/ /home/jac/.screenlets/WallpaperClock/wallpapers/lcd_actual.wcz" | at 0800
#este
echo "rm -f /home/jac/.screenlets/WallpaperClock/wallpapers/lcd_actual.wcz && ln -s /home/jac/.screenlets/WallpaperClock/lcd_red1280x1024.wcz/ /home/jac/.screenlets/WallpaperClock/wallpapers/lcd_actual.wcz" | at 2200

Hozzászólások

így próbáld:

$ echo "touch ~/teszt.txt" | at 1258

gondold végig, hogy a te verziód mit pipe-ol át az at-nek.

alias killall='echo "Wenn ist das Nunstück git und Slotermeyer? Ja. Beiherhund das Oder die Flipperwaldt gersput." | espeak -vde' #That's not funny.

úgy, úgy.

a

touch ~/teszt.txt

lefut, a fájl létrejön, a touch kimenetét pedig, ami a nagy semmi, boldogan pipe-olod az at-nek, ezzel pontosan el is éred, amit sikerült, csak nem azt, amit akartál.

alias killall='echo "Wenn ist das Nunstück git und Slotermeyer? Ja. Beiherhund das Oder die Flipperwaldt gersput." | espeak -vde' #That's not funny.

Ha jól értem ennyi kéne neked:


8  0 * * *  ln -sf nappalit ide
22 0 * * *  ln -sf éjjelit ide

A /var/spool/cron/atjobs alatt megtalálod az eltett job-okat. Belenézve az eleje egy rakat változó beállítása lesz, és a végén lesznek azok, amiket parancsként fog majd végrehajtani. Ott meg tudod nézni, hogy tulajdonképpen mit is sikerült neki átadnod.

A fentiek alapján gyakorlatilag semmit :D