Portál AbcLinuxu, 12. května 2025 15:25
Urcite ano.
coposlat="tohle.txt" while read stroj do poslisoubor "$stroj" "$coposlat" done < seznam_strojua 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.)
ssh kdo@kam 'prikaz'pripadne
ssh kdo@kam 'gzip2 > `date '+%Y%m%d`"tentosoubor.bz"' < tentosouborjde to pouzit i obracene...
ssh kdo@kam 'cat tadytensoubor' > semsnimpokud si roznosis klice, bude Ti ssh pracovat samo. V pripade kompromitace te "distribuujici" masiny mas praci navic, tak opatrne...
co tahle použít expect? od toho přeci tady je...
#!/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
Mozes skusit pouzit distributed shell.
for i in STROJ1 STROJ2 STROJ3; do scp jmeno_souboru root@$i:~/ ; doneAFAIK scp neumi vzit heslo jako parametr, takze budes muset zadavat heslo rucne
jak uz tady padlo bylo by jednodussi, bezpecnejsi a vhodnejsi pouzit klice
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.