סקריפטים בהתאמה אישית במסוף לניהול מכשירים

כשמגדירים תהליך העבודה Backup and DR של LiveClone שמבצע ניקוי מראש, אפשר לבחור בין הסתרת מידע אישי באמצעות Optim לבין סקריפטים בהתאמה אישית.

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

  • מציינים סקריפט מקדים לפי הצורך. הסקריפט המקדים משמש להגדרת הסביבה לפני הטעינה או הביטול של הטעינה של האפליקציה. הסקריפט הזה צריך להיות בתיקייה בשם /act/scripts בשרת שמארח את הגיבוי שנטען.
  • בשדה Timeout in Seconds, מציינים את הזמן שנדרש להשלמת הסקריפט.
  • אם צריך, מציינים פוסט-סקריפט. הסקריפט שמשמש לביצוע פעולה על הנתונים אחרי שהם נטענים או מנותקים. הסקריפט הזה צריך להיות בתיקייה בשם /act/scripts בשרת שמארח את הגיבוי שנטען.
  • בשדה Timeout in Seconds, מציינים את הזמן שנדרש להשלמת הסקריפט.

סקריפטים לפני ואחרי תהליך העבודה של Backup and DR

תהליכי העבודה של Backup and DR טוענים ומבטלים טעינה של גיבויים לפי לוח זמנים או על פי דרישה. בתהליך Backup and DR, אפשר להפעיל את הפעולות הבאות:

  • סקריפט מקדים שפועל לפני שגיבוי נטען או מנותק
  • סקריפט שפועל אחרי שהגיבוי מחובר או מנותק

היכולת להריץ סקריפט לפני ואחרי טעינה או ביטול טעינה של נתונים מאפשרת לכם:

  • הסרת מידע רגיש
  • יצירת דוחות
  • נתוני מחסן, במיוחד לפעולות חילוץ, טרנספורמציה וטעינה (ETL)

הסקריפטים צריכים להיות בתיקייה בשם /act/scripts בשרת שמארח את הגיבוי של תהליך העבודה Backup and DR.

משתני סביבה

משתני סביבה מאפשרים להפעיל פקודות שחלות על משימות, סוגי העבודה או אפליקציות ספציפיות. משתני הסביבה מתחילים בקידומת ACT_. לדוגמה, משתנה סביבה של מסד נתונים יכול להיראות כך:

    [$ACT_APPNAME =="productiondb"]

או משתנה סביבה לפעולת טעינה יכול להיראות כך:

    [$ACT_JOBTYPE == "mount"]

ברשימה הבאה מפורטים משתני סביבה נפוצים עם ערכים לדוגמה:

  • ‫JOBNAME: שם המשימה, לדוגמה Job_0123456.
  • ‫APPID: מזהה האפליקציה, לדוגמה 4186.
  • ‫APPNAME: שם האפליקציה, לדוגמה My-DB.
  • ‫HOSTNAME: שם המארח שהוא היעד של המשימה הזו, לדוגמה Jupiter.
  • ‫SOURCEHOST: שם המארח שהיה המקור לאפליקציה הזו, לדוגמה Saturn.
  • ‫JOBTYPE: גרסת טקסט של מחלקת המשימה, למשל mount או unmount.
  • ‫PHASE: מחרוזת טקסט שמתארת את שלב המשימה, למשל pre או post.
  • ‫TIMEOUT: מגדירים את משך הזמן שהסקריפט יכול לפעול.
  • ‫OPTIONS: אפשרויות המדיניות שחלות על המשימה הזו.

סקריפט לדוגמה

הסקריפט לדוגמה הבא משתמש בשלושה משתני סביבה:

  • ‫ACT_JOBTYPE: מציין אם המשימה היא פעולת טעינה או פריקה.
  • ‫ACT_PHASE: מציין אם השלב הוא לפני או אחרי.
  • ‫ACT_MULTI_END: משמש רק אם גם מסד הנתונים וגם היומן שלו נטענים. כשהערך הוא True, אפשר לגשת למסד הנתונים.

    ```sh
    #!/bin/sh
    set +x
    echo "*** Running user script: Job - $ACT_JOBNAME Type - $ACT_JOBTYPE Phase - $ACT_PHASE***"
    
    #Use the first if clause to perform application specific operations during mount and in this example scrub-mount operation.
    
    #Use the second if clause to perform any application specific operation during unmount and in this example, #scrub-unmount operation.
    
    #if [[ $ACT_JOBTYPE == "mount" ]] || [[ $ACT_JOBTYPE == "scrub-mount" ]]; then
    if [[ $ACT_JOBTYPE == "unmount" ]] || [[ $ACT_JOBTYPE == "scrub-unmount" ]]; then
        echo "NO-OP for job type $ACT_JOBTYPE"
        exit 0
    fi
    
    #Use the first if clause to perform application specific operations during the pre phase.
    
    #Use the second if clause to perform application specific operations during the post phase.
    
    #if [[ $ACT_PHASE == "post" ]]; then
    if [[ $ACT_PHASE == "pre" ]]; then
        echo "NO-OP for phase $ACT_PHASE"
        exit 0
    fi
    
    #For multi-phase jobs (database and logs) check if the database has been mounted and the logs applied then #skip logs.
    
    #If the operation needs to be performed in phases other than the last phase, modify the clause.
    
    if [[ -z "$ACT_MULTI_END" ]] && [[ $ACT_MULTI_END != "true" ]]; then
        echo "NO-OP for multi-phase operation"
        exit 0
    fi
    
    cd /act/scripts
    
    echo "**** Running application specific logic: Job - $ACT_JOBNAME Type - $ACT_JOBTYPE Phase - $ACT_PHASE *"
    
    Any application specific commands will go here
    
    echo "** Finished running application specific logic : Job - $ACT_JOBNAME Type - $ACT_JOBTYPE Phase - $ACT_PHASE*"
    exit $?
    ```