Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Panowie, pisze sobie skrypt do robienia raida idzie calkiem niezle jednak zawiesilem sie na jednym zagadnieniu.
Mianowicie jest sobie plik vfstab
#device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # fd - /dev/fd fd - no - /proc - /proc proc - no - /dev/dsk/c1t0d0s1 - - swap - no - /dev/dsk/c1t0d0s0 /dev/rdsk/c1t0d0s0 / ufs 1 no - /dev/dsk/c1t0d0s3 /dev/rdsk/c1t0d0s3 /usr ufs 1 no - /dev/dsk/c1t0d0s4 /dev/rdsk/c1t0d0s4 /var ufs 1 no - /dev/dsk/c1t0d0s6 /dev/rdsk/c1t0d0s6 /export/home ufs 2 yes - /dev/dsk/c1t0d0s5 /dev/rdsk/c1t0d0s5 /opt ufs 2 yes - /devices - /devices devfs - no - ctfs - /system/contract ctfs - no - objfs - /system/object objfs - no - swap - /tmp tmpfs - yes - /dev/dsk/c1t1d0s0 /dev/rdsk/c1t1d0s0 /zones ufs 2 yes -
Do raidowania wykorzystywane sa wiersze:
/dev/dsk/c1t0d0s1 - - swap - no - /dev/dsk/c1t0d0s0 /dev/rdsk/c1t0d0s0 / ufs 1 no - /dev/dsk/c1t0d0s3 /dev/rdsk/c1t0d0s3 /usr ufs 1 no - /dev/dsk/c1t0d0s4 /dev/rdsk/c1t0d0s4 /var ufs 1 no - /dev/dsk/c1t0d0s6 /dev/rdsk/c1t0d0s6 /export/home ufs 2 yes - /dev/dsk/c1t0d0s5 /dev/rdsk/c1t0d0s5 /opt ufs 2 yes -
Rzecz w tym, ze w skrypcie uzywam zmiennej np. $swap ktora w tym konretnym przypadku odpowiada np. c1t0d0s1
Zmiennych uzywam bo dysk moze byc podlaczony do innego kontrolera wiec aby skrypt byl uniwersalny dyski musza byc nazywane po zmiennych.
Jednym z zadan (koncowych) tego skryptu jest zamiana np lini:
/dev/dsk/c1t0d0s1 - - swap - no -
na
/dev/md/dsk/d1 - - swap - no -
Jak to ladnie zrobic?
Czyli mam np.
#!/sbin/sh
echo -n " Podaj nazwe dysku swap: "
read swap # tu wpisuje np. c1t0d0s1
# skrypt cos tam robiacy #
# czesc dotyczaca edycji pliku vfstab
Wiem, ze troche moglem zamotac czy da rade cos z tym zrobic?
Offline
sed -i.bck -e "s#/dev/dsk/$swap#/dev/md/dsk/d1#g" /etc/vfstab
Offline
Dzieki!
Mam dwa pytania co oznacza:
i.bck
Nie wiem czy dobrze kombinuje ale aby zapisac trwale zmiane w pliku chyba musze zrobic tak:
sed -i.bck -e "s#/dev/dsk/$swap#/dev/md/dsk/d1#g" > /etc/vfstab
??
Offline
man sed napisał(-a):
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if extension supplied)
Offline
Dostaje taki komunikat:
sed: illegal option -- i
Dodam, ze sed jest Solarisowy a nie Linuksowy.
Przelukalem man'a i nie wiedze w sedzie na solka opcji --i :(
Mozna to jakos inaczej elegancko zrobic?
Offline
skoro nie ma -i to
sed -e "s#/dev/dsk/$swap#/dev/md/dsk/d1#g" /etc/vfstab > /tmp/plik && mv /tmp/plik /etc/vfstab
uprzednio mozesz zrobic tez kopie /etc/vfstab ...
Edit: z aktualnego openslaris ma juz -i ... wiec moze kiedys i w "koszernym" solarisie sie pojawi ...
Ostatnio edytowany przez bercik (2009-07-13 13:03:38)
Offline
Strony: 1