יצירת גיבוי VSS לשמירת קבצים פתוחים בעזרת Vshadow

במאמר זה אסביר מזה VSHADOW
ואיך נוכל לנצל קובץ זה כדי לעשות גיבויים לקבצים פתוחים (סטורים של Exchange , קבצי SQL וקבצי PST) וגם קבצים רגילים שהמשתמש השאיר פתוחים וכל זאת ללא עזרה של תוכנות צד שלישי .

מצורף למאמר זה קובץ עם כל גירסאות הVshadow שמצאתי + Dosdev + סקריפט.

לינק לקובץ

הסבר:
מזה Vshadow?
זהו בעצם כלי לשורת הפקודה שמשוחרר על ידי מיקרוסופט
שבעצם יודע לעבוד כמו תוכנות הגיבוי מול ה-API של VSS
ויכול ליצור ולנהל Volume Shadow Copies
כלי זה מגיע עם ה-SDK של כל מערכת הפעלה וניתן להשתמש בו לפי גרסת המערכת

לכלי הזה יש המון אפשרויות וסוויטצ'ים, אני אראה במה אני משתמש ליצירת גיבוים

ניתן ללמוד את האופציות הנוספות שלו דרך האתר:
http://msdn.microsoft.com/en-us/library/bb530725%28v=vs.85%29.aspx

קודם כל צריך לוודאות שמשתמשים ב-VSHADOW המתאים למערכת ההפעלה בשביל פעולה תקינה.
(בקובץ שנתתי זה מסודר לפי גירסאות וצריך לעשות Rename ל-Vshadow או לערוך את הסקריפט בהתאם)

צעד ראשון:
נבנה ספרייה עם כל הקבצים (למשל VSS)
להעתיק לתוך הספרייה את הקבצים הבאים (הקבצים נמצאים בקובץ שהוזכר קודם):
vshadow.exe
dosdev.exe
vss-exec.cmd

הסבר:
vshadow – מייצר את הVSS
Dosdev – תוכנה שמיועדת ליצור אות כונן ל-Device מיוחדים.
Vss-exec.cmd – סקריפט שמכיל פקודות מה לעשות עם ה-shadow copy שנוצר

כברירת מחדל vshadow יוצר את הVSS ומיד מוחק אותו לאחר פעולה
אפשר להוסיף לסקריפט של ה-VSS סוויץ' שישאר קבוע (על ידי סוויטץ' P)

מיותר לדעתי, אבל ניתן להשתמש בזה אם רוצים גישה קבועה ל-VSS שיצרנו (פירוט בהמשך)

הפקודה שמריצים היא זו (שניתן להכניס אותה לקובץ BATCH ולהריץ עם משימה מתוזמנת)

vshadow -nw -script=vss-setvar.cmd -exec=vss-exec.cmd c:

אות הכונן שאנו רוצים לגבות (בדוגמא כונן C)

הערה:
אם רוצים שהסקריפט ירוץ מכל מקום במחשב ולא רק מספריית VSS ניתן להעתיק את הקבצים vshadow ו-dosdev לספריית system32 של מערכת ההפעלה.
אבל צריך לזכור שבפקודה צריך לכוון את הסקריפט אל המיקום המדוייק שלו למשל

-exec="d:vssvss-exec.cmd"

הסבר הפקודה:

-nw
No Writer
שלא יכתב כלום בנוגע לעותק שנוצר בשום לוג
(עבר גיבוי או לא למשל)

Vshadow –script=vss-setvar.cmd
הסוויטץ' יוצר קובץ עם משתנים לגבי ה-VSS
כך שניתן להשתמש בכתובות שלו לאחר מכן

-exec=vss-exec.cmd

מפעיל סקריפט גיבוי

פירוט הסקריפט גיבוי :

call vss-setvar.cmd – קורא לקובץ עם נתוני ה-VSS

@ECHO OFF

dosdev Y: %SHADOW_DEVICE_1% – קובע ש-VSS ישתמש בכונן Y
(או כל אות שתרצו)

ועכשיו ניתן להריץ פקודות למשל

robocopy /e "y: est" "d:eran"

(ניתן להשתמש בכל פקודת/תוכנת גיבוי כמו richcopy , xcopy, deltacopy )
(חשוב שהמיקום יהיה בגרשיים מכיוון שזה רץ ב-CMD ואם יש רווחים זה לא נקרא נכון)

ניתן לקחת הכל או רק סיפריות בודדות (לדוגמא PST ממחשב מסוים)

dosdev -r -d y: – מוחק את המיפוי כונן

וזהו
אחרי ש-vshadow מסיים לרוץ, הגיבוי שנוצר נמחק.

הערה:
אות הכונן Y לא תהיה גלויה בזמן הרצת הסקריפט אבל אם תנסו לגשת דרך CMD
ניתן יהיה להגיע לכונן.

יצירת VSS עם אות כונן קבועה (לא זמין בחלונות XP)

אם רוצים שתהיה גישה קבועה לכונן שמכיל את גיבוי ה-VSS
ניתן על ידי שינוי הסקריפט שתהיה אות קבועה במערכת
(כדי שיהיה ניתן לגשת לכונן בעזרת תוכנה אחרת או בזמן אחר)
הכונן ישאר גלוי עד שימחק ה-shadow copy
הפקודה שנריץ היא:

vshadow -p -nw -script=vss-setvar.cmd -exec=vss-exec.cmd c:

p- יגרום ל-VSS להשאר קבוע

והסקריפט לקבוע אותו כאות כונן יראה כך

call vss-setvar.cmd

@ECHO OFF

:vshadow -el=%SHADOW_ID_1%,x

מה שיגרום שאות כונן X תישאר קבועה במחשב
עד שימחק ה-VSS

(ניתן לבצע את הפעולה גם ידנית ללא סקריפט)

בשביל למחוק את ה-VSS ידנית
נרשום
Vshadow –q
זה יציג לנו את כל ה-VSS שקיימים

נחפש את אלה שמופיע בסוף שלהם

Attributes: No_Auto_Release Persistent Differential

נימצא את ה-ID שלו
ונכניס לפקודה הבאה:

vshadow -ds={3be11ab4-fa47-4a6c-89d2-2644ea5af97d}

שבעצם ימחק את הVSS ואות הכונן תעלם

נכתב על ידי ערן סבן

כתיבת תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת /  לשנות )

תמונת גוגל

אתה מגיב באמצעות חשבון Google שלך. לצאת מהמערכת /  לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת /  לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת /  לשנות )

מתחבר ל-%s

%d בלוגרים אהבו את זה: