SnapMirror סקריפט ההתקנה
היה לי את המשימה של שכפול filer הלקוחות הקיימים למערכת החדשה DR שלהם. זה היה די במערכת גדולה, ככל יצירת SnapMirrors אינה מורכבת במיוחד, זה זמן רב. אז כמו עם הרבה דברים שאני עושה, כתבתי תסריט לעזור לי להשיג את המשימה מהר יותר, וללכת יש עוד קפה.
תצטרך משותף מראש מפתחות ההתקנה (כמו תמיד), אבל כל השאר הוא מתבקש. אין אימות נתונים (לא מפתיע). התסריט יהיה הפלט 4 קבצי טקסט, אחד ליצירת / להגביל כל הכרכים, אחד עבור "snapmirror.conf", על מנת לשמש במקום "snapmirror.conf" בזמן שאתה עושה את האתחול הבסיס, ולבסוף אחד למעשה לאתחל את snapmirrors. אין אינטליגנציה סביב זרמים בו זמנית, כך אתחול עדיין קצת משחק ג'אגלינג לפעול ומחכה.
אנא הודע לי אם אתה מוצא את זה שימושי.
based on 5 ratings#! / Bin / bash
הד "אנא הכנס את שם filer הראשוני:"
לקרוא PRI_FILERהד "אנא הכנס את שם filer DR:"
לקרוא 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.confעבור AGGR ב `$ {$} ConnectString PRI_FILER" aggr מעמד "|"! 2 $ ~ / מדינה / {print $ 1} 'awk `
לעשות
= `$ {$} ConnectString PRI_FILER" df-אה $ AGGR "מידות | 's / \ ([0-9] [KMGT] \) B / \ 1 / g' sed |!. Awk '$ 1 ~ / תמונה | צבירה / {print $ 2} '`
עבור כרך ב `$ {ConnectString} $ PRI_FILER" aggr show_space $ AGGR "| awk '$ 1 ~ / שטח / {print $ 0}!" | awk' $ 4 ~ / נפח | קובץ | אף אחד / {print $ 1} '`
לעשות
echo "$ {כרך ליצור VOL-s} $ {$} AGGR אף {SIZE}">> $ {} DR_FILER _filer_volumes.txt
הד "כרך להגביל $ {כרך}">> $ {} DR_FILER _filer_volumes.txt
הד "SnapMirror לאתחל-S $ {PRI_FILER}: $ {כרך} $ {DR_FILER}: $ {כרך}">> $ {} DR_FILER _sm_initialize.txt
echo "$ {PRI_FILER}: $ {כרך} $ {DR_FILER}: $ {כרך} - $ {SnapMirrorMinute} $ {SnapMirrorHour} *">> $ {} DR_FILER _snapmirror.conf
echo "$ {PRI_FILER}: $ {כרך} $ {DR_FILER}: $ {כרך} - - - - -">> $ {} DR_FILER _snapmirror_init.confSnapMirrorMinute = `expr $ + $ SnapMirrorMinute SnapMirrorStagger`
אם [$ SnapMirrorMinute GT-58]
אז
SnapMirrorMinute = 0
SnapMirrorHour = `expr $ SnapMirrorHour + 1`
fi
אם [$ SnapMirrorHour GT-23]
אז
SnapMirrorHour = 0
fi
נעשה
נעשה










































תסריט מדהים. זהו בדיוק הדבר שאנו צריכים ... את הפקודות המדויק מקבל ולהפעלתו מהר ככל האפשר.
זו הפעם הראשונה שאני להגדיר SnapMirror ויש לי שאלה אחת. כאשר אתה מפעיל דרך הלולאה כדי לאכלס את הקובץ '$ {} DR_FILER _filer_volumes.txt "זה נראה כאילו אתה הולך ליצור עם כל נפח גודל של ההורה $ {AGGR} על $ {PRI_FILER}. האם זה נכון?
לדוגמה, $ שלי} {PRI_FILER יש אחד aggr_sas שכותרתו המצרפי בגודל של 2850G. (יש מדף מחובר אליו עם aggr שכותרתו aggr_sata אבל זה לא הולך להיות חלק של הנתונים מראה.) יש לי 5 כרכים: vol0 (OS), vol_swap, vol_win2003, vol_win2008 ו vol_linux. אם אני קורא את התסריט שלך כמו שצריך, כל הכרכים הללו יתווספו $} {DR_FILER _filer_volumes.txt עם גודל של 2850G.
האם זה נכון?
כן, בעצם מה שקורה הוא מקבל נפח אספקה דק בגודל של המצרף (התסריט עושה "כרך ליצור -S אף אחד "אשר קובע את מרחב נפח הסתייגות none). זה מאפשר לו לגדול באופן דינמי כפי שאתה לגדול הכרכים הראשוני, כך עושה את החיים שלכם לקלים יותר. SnapMirror יתר רוכב הגדרת הקצאה חכמה ונפח יופיע כדי להתאים את גודל העיקרי נפח האתר, אולם במציאות נפח הבסיס הוא גדול ולכן יכול לגדול באופן דינמי. האזהרה היחידה היא שאתה לפקח על השימוש בחלל במערכת DR!
@ כריס קרנץ
תודה על התשובה המהירה שלך ... וזה תסריט חולה רשע! עזרת לי לא מעט.
איפה התסריט הזה צריך לברוח?
התסריט נכתב לינוקס BASH, ולכן אידיאלי היית להפעיל אותו מתיבת לינוקס של מגוון קצת. זה יכול לעבוד על טעמים אחרים * ניקס, אבל אני לא צריך לבדוק את זה.