Portál AbcLinuxu, 12. května 2025 15:25

Dotaz: automaticky upload na 40 serveru

3.9.2009 15:12 chinook | skóre: 28
automaticky upload na 40 serveru
Přečteno: 457×
Odpovědět | Admin
Potreboval bych jeden soubor nahrat na cca 40 serveru. Na kazdy je stejne prihlasovaci jmeno i heslo. Lze to provest nejak automaticky?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Prokop Mikule avatar 3.9.2009 15:22 Prokop Mikule | skóre: 9
Rozbalit Rozbalit vše Re: automaticky upload na 40 serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin

Urcite ano.

3.9.2009 15:26 Mti. | skóre: 31 | blog: Mti
Rozbalit Rozbalit vše Re: automaticky upload na 40 serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
a vojin Kefalin, co je to take automaticky? :-)

no nic. udelej si soubor se seznamem tech stroju, davku, ktera dokaze poslat soubor a v cyklu ji zavolej pro kazdy zaznam toho souboru.

Otazkou je, co z toho neni jasne.
coposlat="tohle.txt"
while read stroj
 do
   poslisoubor "$stroj" "$coposlat"
 done < seznam_stroju
a poslisoubo muze byt "treba"
scp "$2" user@"$stroj":
(s tim, ze to tam nebudes cpat pres hesla, ale nahrajes si klice... :-) )
kdyz misto scp pouzijes mount -t cifs ... muzes to hnat pres sambu.
Vidim harddisk mrzuty, jehoz hlava plotny se dotyka...
3.9.2009 15:48 chinook | skóre: 28
Rozbalit Rozbalit vše Re: automaticky upload na 40 serveru
Ta samba neni spatny napad. A jak to resit pokud bych tam chtel provest i nejaky prikaz?
3.9.2009 18:04 Mti. | skóre: 31 | blog: Mti
Rozbalit Rozbalit vše Re: automaticky upload na 40 serveru
ssh kdo@kam 'prikaz' 
pripadne
ssh kdo@kam 'gzip2 > `date '+%Y%m%d`"tentosoubor.bz"' < tentosoubor
jde to pouzit i obracene...
ssh kdo@kam 'cat tadytensoubor' > semsnim
pokud si roznosis klice, bude Ti ssh pracovat samo. V pripade kompromitace te "distribuujici" masiny mas praci navic, tak opatrne... :-)
Vidim harddisk mrzuty, jehoz hlava plotny se dotyka...
3.9.2009 16:39 sir Turbis | skóre: 19 | Varnsdorf
Rozbalit Rozbalit vše Re: automaticky upload na 40 serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin

co tahle použít expect? od toho přeci tady je...

Don't hurry up, death is faster!
Jendа avatar 3.9.2009 19:43 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: automaticky upload na 40 serveru
A proč proboha ne klíče?
Josef Kufner avatar 3.9.2009 23:00 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: automaticky upload na 40 serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dají se dělat docela pěkné triky s obalením taru do skriptu nastaveného jako login shell. Není pak potřeba kvůli spouštění nějakých příkazů otevírat druhé spojení a může to i validovat data a třídit jich. Navíc to pak lze dát jiným uživatelům, kteří nemají mít jinak vůbec žádná práva na těch serverech. Další bonusová možnost je, že ten první server na kerý to budeš nahrávat sám otevře spojení na další servery a přepošle jim přijatá data. Takle by se dala kaskádově paralelizovat distribuce a při větších objemech dat a počtu serverů by to mohlo znamenat mnohonásobné urychlení a rozložení zátěže -- první server dostane data a předá je dalším několika, ti každý udělají totéž a ti další opět... růst rychlosti šíření souboru je tedy exponencielní, což znamená logaritmický růst času potřebného na distribuci při přidávání dalších serverů (za předpokladu, že nesdílí jeden hub). Vlastně to je taková distribuovaná forkbomba ;-)

Ten login shell/skript by mohl v základní verzi vypadat nějak takto:
#!/bin/bash
file=nejaky_soubor.bla.bla
cat > "$file"
for "$server" in server1 server2 server3 server4 server5
do
  ssh "$server" < "$file" &
done
wait
echo All uploads done.
Tohle dáš na všechny servery s tím, že ty koncové nebudou mít onen for pro přeposílání dál.

V pokročilejších verzích by to chtělo asi nějak zoptimalizovat práci s diskem, aby se soubor načetl jednou a nebo se vůbec neukládal a rovnou přeposílal současně s příjmáním a současně předával taru k rozbalení, ale to už je námět na domácí úkol ;-)
Hello world ! Segmentation fault (core dumped)
4.9.2009 09:46 fero kittler
Rozbalit Rozbalit vše Re: automaticky upload na 40 serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin

Mozes skusit pouzit distributed shell.

Jendа avatar 4.9.2009 14:49 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: automaticky upload na 40 serveru
Nebo ClusterSSH :-)

Ale IMHO mu šlo o upload přes HTTP - takže man wget, nechť hledá --post-file.
houska avatar 4.9.2009 12:00 houska | skóre: 41 | blog: HW
Rozbalit Rozbalit vše Re: automaticky upload na 40 serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
co treba takto?

for i in STROJ1 STROJ2 STROJ3; do scp jmeno_souboru root@$i:~/ ; done

AFAIK scp neumi vzit heslo jako parametr, takze budes muset zadavat heslo rucne

jak uz tady padlo bylo by jednodussi, bezpecnejsi a vhodnejsi pouzit klice

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.