Skrypt instalacyjny SnapMirror
I miał za zadanie replikacji istniejących filer klientów do nowego systemu DR. To był dość duży system, a jak tworzenie SnapMirrors nie jest szczególnie skomplikowane, jest to czasochłonne. Tak jak wiele rzeczy zrobić, napisałem skrypt, by pomóc osiągnąć to zadanie szybciej i przejść jeszcze jedną kawę.
Musisz pre-shared konfiguracji klawiszy (jak zawsze), ale reszta jest proszony o podanie. Nie ma sprawdzania poprawności danych (nic dziwnego). Skrypt wyjście 4 plików tekstowych, po jednym dla tworzenia / ograniczenie wszystkie tomy, jeden dla "snapmirror.conf", na które mają być stosowane w miejsce "snapmirror.conf", podczas gdy robisz inicjalizacji wyjściową oraz w końcu jeden do faktycznie zainicjować snapmirrors. Nie ma wywiadu na całym jednoczesnych strumieni, więc inicjalizacji jest jeszcze trochę żonglerki działać i czeka gry.
Proszę dać mi znać, jeśli się on przydać.
based on 5 ratings#! / Bin / bash
echo "Podaj nazwę PRIMARY filer:"
czytaj PRI_FILERecho "Podaj nazwę filer DR:"
czytaj DR_FILERConnectString = "ssh-c 3DES"
# ConnectString = "rsh"SnapMirrorHour = 22
SnapMirrorMinute = 0
SnapMirrorStagger = 5echo ""> $ {DR_FILER} _filer_volumes.txt
echo ""> $ {DR_FILER} _snapmirror.conf
echo ""> $ {DR_FILER} _sm_initialize.txt
echo ""> $ {DR_FILER} _snapmirror_init.confdla AGGR w `$ {ConnectString} $ PRI_FILER" aggr status "| awk '! 2 dolary ~ / państwo / {print $ 1}'`
zrobić
= `$ {ConnectString} $ PRI_FILER" df-Ah $ AGGR "SIZE | sed 's / \ ([0-9] [KMGT] \) B / \ 1 / g' |!. Awk '$ 1 ~ / snapshot | Kruszywo / {print $ 2} '`
dla VOL w `$ {ConnectString} $ PRI_FILER" aggr show_space $ AGGR "| awk '$ 1 ~ / Space / {print $ 0}!" | awk' $ 4 ~ / objętości | plik | none / {print $ 1} '`
zrobić
echo "vol. stworzyć $ {VOL}-s $ {none} $ {AGGR SIZE}">> $ {DR_FILER} _filer_volumes.txt
echo "vol. ograniczyć $ {VOL}">> $ {DR_FILER} _filer_volumes.txt
echo "SnapMirror zainicjować-S $ {PRI_FILER}: $ {VOL} $ {DR_FILER}: $ {VOL}">> $ {DR_FILER} _sm_initialize.txt
echo "$ {PRI_FILER}: $ {VOL} $ {DR_FILER}: $ {VOL} - $ {SnapMirrorMinute} $ {SnapMirrorHour} *">> $ {DR_FILER} _snapmirror.conf
echo "$ {PRI_FILER}: $ {VOL} $ {DR_FILER}: $ {VOL} - - - - -">> $ {DR_FILER} _snapmirror_init.confSnapMirrorMinute = `expr $ SnapMirrorMinute + $ SnapMirrorStagger`
if [$ SnapMirrorMinute-gt 58]
następnie
SnapMirrorMinute = 0
SnapMirrorHour = `expr $ SnapMirrorHour + 1`
fi
if [$ SnapMirrorHour-gt 23]
następnie
SnapMirrorHour = 0
fi
zrobić
zrobić










































Fantastyczny scenariusz. To jest po prostu rzeczą, którą musisz ... dokładnie polecenia otrzymuję ten uruchomiony jak najszybciej.
To jest pierwszy raz została skonfigurowana SnapMirror i mam jedno pytanie. Podczas korzystania z pętli, aby wypełnić swoją '$ {DR_FILER} _filer_volumes.txt "plik wygląda jak masz zamiar tworzyć każdy wolumin o rozmiarze dominującej $ {AGGR} na $ {PRI_FILER}. Czy to prawda?
Na przykład, mój $ {PRI_FILER} ma jeden agregat pt aggr_sas o wielkości 2850G. (To ma półkę z nim związane z aggr pt aggr_sata ale to nie będzie częścią odzwierciedlenie danych.) Mam 5 tomów: vol0 (OS), vol_swap, vol_win2003, vol_win2008 i vol_linux. Jeśli czytam skrypt prawidłowo, każdy z tych tomów zostanie dodana do $ {DR_FILER} _filer_volumes.txt o wielkości 2850G.
Czy to prawda?
Tak, w zasadzie to, co się dzieje, jest głośność jest cienką wpłatami do wielkości kruszywa (skrypt wykonuje "vol. tworzenia -S nie ", Który wyznacza rezerwacji miejsca objętości brak). Pozwala to na dynamiczny rozwój w miarę rozwoju podstawowych tomów, więc sprawia, że twoje życie trochę łatwiejsze. SnapMirror over-przejażdżki thin provisioning i ustawienie głośności pojawi się na meczu pierwotnego rozmiaru woluminu obiektu, jednak w rzeczywistości podstawowej objętości jest większy i tak może się dynamicznie rozwijać. Jedynym ograniczeniem jest to, że monitorowanie wykorzystania przestrzeni w systemie DR!
@ Chris Kranz
Dzięki za szybką odpowiedź ... i że złe chory skrypt! Masz pomógł mi trochę.
Gdzie należy ten skrypt jest uruchamiany z?
Skrypt został napisany w Linux BASH, więc idealnie chcesz uruchomić go z Linuksa niektóre odmiany. Może działać na innych smaków * NIX, ale nie testowałem tego.