script időzített szgépleállításra

Fórumok

hali!

eset: éjszakába nyúlóan ha töltök a netről nem találtam olyan progit ami kikapcsolja a gépet a töltés végeztével. jó nem is annyira kerestem, hanem(na majd én!):
---------------------------------------------------
gondoltam írok egy scriptet aminek ez a lényege:

sleep $1
halt

ehez root-ként kell futtassam. amennyi a $1 annyi idő múlva lekapcsola gép, és annyi ideig ott van a konzol is, csak nem ad promptot.

a kérdés az, hogy ha ilyenkor valahogy bejutna valaki a gépemre, ki tudja lőni a script futását úgy hogy ott maradjon neki a konzol root jogokkal?

frugalware 0.7 kde(feleségemnek) xfce(nekem), és gftp-vel töltök le.
---------------------------------------------------
(esetleg alkalmazás ami kikapcsolja biztonságosan a gépem, vagy olyan letöltő amiben van olyan opció h letöltés végével leállítja a gépet?)

Hozzászólások

sudo a barátod? :)

--
"It all keeps adding up / I think I'm cracking up / Am I just paranoid? / I'm just stoned"
/Green Day - Basket Case/

keresem a sudo leírásokat.

simán ha beírom, kéri a jelszót, de hiába írom be a root jelszót, azt írja ki h nem jó. 3 próba és kilép. nézegetem a visudo-t hogy hogy kell szerkeszgetni a sudoers-ben. esetleg vmi ötlet, hogy mit valtoztassak?
csak ez van benne:
root ALL=(ALL) SETENV: ALL
syncpkgd ALL=(ALL) NOPASSWD: /usr/bin/makepkg

atöbbi ki van szedve: #

esetleg ha ez alól a sor elől is kiszedem #-t:
%users localhost=/sbin/shutdown -h now ?
akkor így sima user-ként is kikapcsolhatom a gépet? a scriptbe meg csak annyi h:

sleep $1
/sbin/shutdown -h now

és kész is?

Miért kell a konzulnak nyitva maradnia?
Nem vagyok Linuxban otthon de FreeBSD-n ha a "shutdown -p +${IDO}" parancsot kiadom nyugodtan bezárhatom a terminált az attól még ${IDO} múlva ki fog kapcsolni a gép.
Persze ha nyitok egy új terminált és megkeresem a parancs PID-jét akkor le is állíthatom.

Személy szerint és a hasonló helyzeteket így szoktam megoldani:
${ESTI_PROGRAM} && sudo shutdown -p +1

megnéztem a shutdown man-ját, de én nem láttam -p kapcsolót, angolban gyenge vagyok uhogy még nézegetem-forditgatom.

csak néhány kérdés:
${ESTI_PROGRAM} && sudo shutdown -p +1

így az esti programnak be kell záródnia nem? akkor van vége és indul a shutdown. akkor meg ott vagyunk h melyik az a letöltő ami a letöltés végével bezárja magát?
nem kéri majd a jelszót a shutdown?, vagy ki van lőve, hogy jelszót kérjen a sudo?

[off]

${ESTI_PROGRAM} && sudo shutdown -p +1

/pub/drink_beer_with_friends && cd ~ && shutdown -p +1
#így gondoltad? :D
[/off]

Amúgy vicckívül kb. így:


wget $EZT_SZEDEM_LE && sudo shutdown -h now

Vagy ha tudod a letöltés pontos végét, akkor simán csak


sudo shutdown -h $EKKOR_VAN_VEGE_A_LETOLTESNEK

--
"It all keeps adding up / I think I'm cracking up / Am I just paranoid? / I'm just stoned"
/Green Day - Basket Case/

hm.
akkor megnézem ezt a cron-t is. még sosem találkoztam vele, de én is vmi ilyesmire gondoltam.
meg olyanon is gondolkodtam, hogy figyeli vmi a net forgalmat és ha lecsökken shutdown. de nem jöttem rá hogyan valósítsam meg, bár nem is sokat gondolkodtam rajta, hanem a sleep-es megoldás felé orientálódtam.

Futni fog. Merthogy a letolto && shutdown... móka is azon vérzett el, hogy nem lép ki a letöltőprogi.
Én vagy a netstat -tn kimenetét, vagy az lsof-ot nézegetném cron-ból, rendszeres időközönként, előbbinél amikor nincs nyitott kapcsolat a távoli ftp-szerver felé, akkor várnék 1 percet, megint ránéznék, és ha akkor sincs, akkor shutdown (egyébként meg kilép a script), vagy az lsof-fal nézném, hogy a letöltőprogi tart-e nyitva fájlt a letöltések könyvtárban. Ha igen, akkor a csekkolás kilép, ha nincs, akkor egy percet vár, megint ránéz, és ha akkor sincs, akkor shutdown, egyébként meg kilép.
A sleep-es megoldást felejtsd el, bár a fenti 1 perces "nézzük meg kicsit később..." esetre pont az kell, időzíteni viszont cron játszik. Egyébként meg ha otthagyod a gépet csendben dolgozni, akkor miért nem jó a parancssoros wget?

kshutdown

Guis az igaz, de nem kell hozzá root, és tud sokmindent. Barátnődnek tetszeni fog:)

________________________________________
2B or not 2B, that is FF. *̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*

# shutdown -h +5
- ez szerintem 5 perc mulva kapcsolja ki a gepet
# echo "shutdown -h now" | at 0115
- ez ejjel 1 ora 15 perckor

Látom lemondtál a scriptről, de ezt a megoldást még nem láttam:

shutdown -h +60 &

majd root konzol bezár.

Írtam egy scriptet, ami nézi a net használatot. Ha 3 percen keresztül percenként 3 MB-nál kevesebb a kimenő és bejövő forgalom összesen, akkor 2 perces limittel (így a felhasználónak még van ideje megszakítani, ha közben a gép előtt ülne) leállítja a gépet. Persze minden paraméter állítható. Így nem kell a letöltéskezelő programnak tudnia lekapcsolni a gépet, hanem bármivel használható.

Letölthető innen:low_net_shutdown.sh

Valószínűleg rootként szeretnéd futtatni. Ekkor futtathatósági jog adása után (lásd: chmod),
./low_net_shutdown &
paranccsal indítsd, majd csukd be a konzolt. Így nem hagytál nyitott konzolt sem.

Szívesen. A sed-es részhez akkor egy kis magyarázat, hátha segít:
Cél, miután a kezdő "eth0:" részt eltávolítottuk, hogy egy ilyen sorból:
77060907 55923 0 0 0 0 0 0 3488531 34813 0 0 0 0 1 0
kinyerjük az első és kilencedik számot, majd összeadjuk őket. A sed-et így használtam: 's/mit/mire/további opció'. A zárójellel tudjuk "megjegyeztetni" a részeket. Az első számot tárolja a \1 helyen, majd a következő 7 számot eldobjuk (erre utal a {7}), majd a következőt eltároljuk a \3 helyen. Így lesz egy
77060907+3488531
amit a bc már örömmel kiszámol.