Sziasztok!
Egy olyan bash scriptet szeretnék írni ami több szerverről összegyűjt adatoket egy darab fájlba. A bash script fájlom a szerver1-en van.
for i in szerver2 szerver3
do
muvelet=`ssh root@ip$i.xy.hu "hdparm -I /dev/sda | grep -i \"Model Number\""`
echo $muvelet
done
Ez jól is működik, de amikor ezt a sort hozzáadom akkor azt mondja, hogy nincs ilyen fájl.
echo $muvelet >> io.txt
Azt szeretném, hogy azon a gépen amelyiken futtatom azon egy darab fájlba gyűjtse össze az adatokat.
- 1178 megtekintés
Hozzászólások
Talán létre kellene hozni a fájlt a megfelelő jogokkal nem?
-------------------------
127.0.0.1 SWEET 127.0.0.1
- A hozzászóláshoz be kell jelentkezni
Létre van hozva. De ha így adom meg akkor létre is hozza automatikusan (cat > io.txt)
Nekem az a gyanúm, hogy a távoli szerveren keresi a fájlt.
- A hozzászóláshoz be kell jelentkezni
set -x
a szkript elejére, és hamar kiderül, hogy mi került rosszul vagy rossz helyre
- A hozzászóláshoz be kell jelentkezni
A pontos hibaüzenet kéne, mert nekem működik.
Apróság, kozmetika, de a `parancs` helyett már a $(parancs) amit illik használni, és jobban olvasható is a script.
- A hozzászóláshoz be kell jelentkezni
Ezt írja ki.
cat: Model: No such file or directory
cat: Number:: No such file or directory
cat: WDC: No such file or directory
cat: WD5002ABYS-02B1B0: No such file or directory
- A hozzászóláshoz be kell jelentkezni
Szerintem te
cat $muvelet >> io.txt
parancsot írtál a scriptbe :D
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Esetleg így jobb:
ssh root@ip$i.xy.hu "hdparm -I /dev/sda | grep -i \"Model Number\"" >> io.txt
vagy echo $(ssh root@ip$i.xy.hu "hdparm -I /dev/sda | grep -i \"Model Number\"") >> io.txt
- A hozzászóláshoz be kell jelentkezni
Valóban elírtam. Közben rájöttem, hogy echo parancsot kell használni. Köszönöm a hozzászólásokat.
- A hozzászóláshoz be kell jelentkezni