Portál AbcLinuxu, 6. května 2025 11:47

Dotaz: Spusteni skriptu za urcite podminky

26.10.2011 06:58 Marek
Spusteni skriptu za urcite podminky
Přečteno: 731×
Odpovědět | Admin
Muzete mi prosim poratit jednoduchy skript, ktery pustim mujskript az po tom, co bude namountovany urcity disk? Nevim si s tim nejak rady:-( Diky
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Max avatar 26.10.2011 07:19 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Napadá mně několik možností.

1) Disk se připojuje automaticky po startu, takže v takovém případě stačí spustit script po spuštění pc "/etc/rc.local"

2) Po strčení disku chci provést automatické připojení + spustit skript. V takovém případě mi postačí primitivní pravidlo v udev.

3) Strčím si do pc disk, ale připojení si udělám sám, až ve vhodném čase. V takovém případě bych to zkusil řešit přes dbus signály, viz "dbus-monitor".

Zdar Max
Měl jsem sen ... :(
26.10.2011 08:05 Marek
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky
Omlouvam se, ale vzhledem k rannim hodinam jsem jsem zapomnel napsat to podstatne. Mountovany disk je na jinem stroji pres NFS. Tzn. primountuje se az v pripade, ze ten stroj najede. Na serveru 1 mam po spusteni script, ktery tento server 2 vyzaduje, diky tomu NFS sdileni. A proto chci, aby se mi tento mujscript spustil az v pripade, ze je ten nfs disk namountovany.
26.10.2011 10:50 l4m4
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky
Nejspíš se dá udělat service do systemd, která vyžaduje foobar.mount a tu povolit, ale teoretizuji, prakticky jsem tohle nezkoušel.
26.10.2011 12:20 Adamec | skóre: 31
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky
Odpovědět | | Sbalit | Link | Blokovat | Admin

TESTDIR=/pripojnybod/

if grep -q "^[^ ]* ${TESTDIR} " /etc/mtab; then

echo Pripojeno

else

Nejaky prikaz

fi

This is not a bug it's a feature
26.10.2011 12:35 l4m4
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky
To je odpověď na otázku:

Jak poznat, že je do adresáře foo připojen nějaký souborový systém?

(a dá se to udělat i bez závislosti na aktualizaci mtabu pohledem do /proc/mounts nebo třeba test $(stat -c %m "$TESTDIR") = "$TESTDIR"). K odpovědi na otázku

Jak zajistit, že když se připojí daný souborvý systém, spustí se skript?

se dá dojít jen přes polling (opakované testování podmínky), což je poslední zoufalé řešení, když to jinak nejde.
26.10.2011 14:16 Luky
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky
Rad bych se take zeptal skusenejsich, jak udelat podobny skript, ale misto tohou mountu, jestli na druhem stroji jede ssh?
26.10.2011 16:50 Adamec | skóre: 31
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky

#!/bin/bash

if nmap 10.0.0.2 -PN -p ssh | egrep 'open' ; then

echo "SSH bezi"

else

echo "SSH nebezi"

fi

This is not a bug it's a feature
27.10.2011 06:56 Luky
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky
Chapu-li dobre tu logiku, tak v tom mountovacim skriptu spustim prikaz, pokud zarizeni neni primountovane, ne?
27.10.2011 08:42 Adamec | skóre: 31
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky
misto "echo Pripojeno" si dej co chces ty to samy misto "Nejaky prikaz" .... treba mount
This is not a bug it's a feature
27.10.2011 11:19 Luky
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky
"Echo pripojeno": pokud bezi pust tento prikaz "Nejaky prikaz": pokud NEbezi, pust jiny prikaz

Takhle?
27.10.2011 12:59 Adamec | skóre: 31
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky

Na echo se vykasli ... je to tam jen jako priklad ... dej tam prikazy co chces aby to delalo ....

http://www.abclinuxu.cz/serialy/bash

This is not a bug it's a feature
27.10.2011 13:20 Luky
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky
Ja vim, ze to je priklad, proto to pisu do uvozovek :-) Tzn. muzete mi na tu otazku odpovedet?
27.10.2011 13:23 Luky
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky
pro jistotu jeste takhle:
TESTDIR=/pripojnybod/
if grep -q "^[^ ]* ${TESTDIR} " /etc/mtab; then

./pust_skript1_disk_je_namountovany

else

./pust_skript2_protoze_disk_neni_namountovany

fi
??
27.10.2011 19:19 Adamec | skóre: 31
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky
Jo treba takhle :)
This is not a bug it's a feature
31.10.2011 06:07 Luky
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky
Super, ja vedel, ze se domluvime :-) Ale ja bych spis potreboval neco, co bude ten mount testovat do te doby, dokud nebude pripojeny. Jakmile se tak stane, tak az pusti skript? Mam to dat jeste do cronu, nebo je lepsi reseni?
31.10.2011 07:59 Kit
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky
Něco takového?
TESTDIR=/pripojnybod/
while ! grep -q "^[^ ]* ${TESTDIR} " /etc/mtab; do
   sleep 1
done
./pust_skript1_disk_je_namountovany
31.10.2011 08:42 Luky
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky
ja potrebuju, aby ten skript pustil po startu systemu ve chvili, kdy bude ten pripojny bod pripojeny.. a to jen jednou.. nejsem si jisty, ze tohle to udela... nebo se pletu zase? diky moc
31.10.2011 09:34 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj,

Možná by stálo za úvahu, jít na problém z druhé strany

asi bych to vyřešil tak, ze bych na tom serveru, kterej se spouští, a na kterým je ten nabízený disk, spustil po startu script, který by zjistil, zda běží stroj, který si mountuje jeho nabízené prostředky (tj, klient), a na tomto stroji (na klientovi) přes ssh spustil script (ve kterem bude mount bla bla ), který by tyto nabízené body přimountoval.

stejný skript bych spoštěl i při startu klienta (ale až po zjištění, že server běží)
31.10.2011 14:21 Luky
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky
To zni zajimave, diky. jen nevim, ktere skripty na to pouzit.
rADOn avatar 31.10.2011 17:55 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zmeny nad souborovym systemem lze hlidat pomoci inotify. Nejspis hledas inotify-tools
"2^24 comments ought to be enough for anyone" -- CmdrTaco
1.11.2011 10:49 motyq | skóre: 4
Rozbalit Rozbalit vše Re: Spusteni skriptu za urcite podminky
"cron" na zaklade zmen na filesystemu:

http://inotify.aiken.cz/?section=incron&page=about&lang=en
http://wocis.net - můj píseček

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.