זהו מחלקת הפקודה fai שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
fai-class - הגדר מחלקות באמצעות קבצים וסקריפטים.
תַקצִיר
כיתה פיי [אפשרות] DIRECTORY CLASSFILE
תיאור
פקודה זו נקראת באופן פנימי רק על ידי FAI ולא ישירות על ידי המשתמש.
fai-class מבצע סקריפטים ב-DIRECTORY כדי להגדיר מחלקות. כל השיעורים נכתבים ל
CLASSFILE, כל מחלקה בשורה נפרדת. השתמש בנתיבים מוחלטים עבור שני הארגומנטים. את כל
סקריפטים או קובצי הפעלה התואמים "^[0-9][0-9]*" (הם מתחילים בשתי ספרות) מבוצעים
בסדר אלפבתי. הם יכולים להגדיר מחלקות על ידי כתיבת שמות המחלקות
stdout. ניתן להפריד בין שיעורים ברווחים או לכתוב אחד על שורה. כל השורות שמתחילות
עם "#" הן שורות הערה ומתעלמים מהן.
סקריפטים של מעטפת המסתיימים ב-".sh" מקורם ויכולים להגדיר מחלקות על ידי הגדרת המשתנה
$newclasses. זה שימושי עבור סקריפטים שבהם אינך יכול לשלוט ב-stdout. משתנים שהם
המוגדרים בסקריפטים אלה זמינים לסקריפטים אחרים ב-DIRECTORY, אך הם לא
מיוצא למעטפת שקוראת fai-class. סקריפטים אלה יכולים להגדיר משתנים על ידי כתיבה
הגדרות לקובץ $LOGDIR/additional.var, שמקורו בהמשך
מְשִׁימָה.
כל הסקריפטים יכולים להגדיר מחלקות נוספות על ידי כתיבת המחלקות לקובץ
$LOGDIR/מחלקות נוספות. מחלקות אלו מוגדרות לאחר ביצוע כל הסקריפטים. זֶה
הקובץ הזמני יוסר לאחר השימוש.
סדר השיעורים חשוב כי הוא מגדיר את העדיפות של השיעורים מ
נמוך עד גבוה. ראשית, המחלקה DEFAULT מוגדרת. אז כל הסקריפטים מבוצעים כדי להגדיר
שיעורים. לאחר מכן, המחלקות מהקובץ $LOGDIR/additional-classes מתווספות. לאחר מכן,
כל המחלקות בקובץ עם שם המארח מתווספות. לאחר מכן מחלקות המוגדרות על ידי המשתנה
נעשה שימוש ב-ADDCLASSES. משתנה זה חייב להיות רשימה של מחלקות מופרדות בפסיקים. אתה יכול
הגדר את המשתנה הזה בשורת הפקודה של הליבה.
לבסוף, הכיתה עם שם המארח ו-LAST מוגדרות.
חשוב שכל שורה בקובץ המכילה שם מחלקה תסתיים בשורה חדשה. אם ה
שורה חדשה חסרה בשורה האחרונה של קובץ, לא ניתן להוסיף מחלקה זו.
קוד היציאה של כל סקריפט נכתב לקובץ status.log ב-LOGDIR.
אפשרויות
-d צור פלט ניפוי באגים.
-h הצג עזרה, גרסה וסיכום אפשרויות.
-T בדוק אם מחלקות ב-CLASSFILE מוגדרות מספר פעמים. זה לא אמור לקרות לעולם.
הבדיקה מתבצעת לאחר הגדרת השיעורים.
-t tmpdir
הקובץ additional-classes נקרא מהספרייה tmpdir. ערך ברירת המחדל הוא
/tmp/fai/.
-v צור פלט מילולי.
דוגמאות
ב-FAI, נעשה שימוש ב-fai-class בצורה הבאה:
# fai-class /fai/class /tmp/fai/FAI_CLASSES
לאחר מכן, רשימת כל המחלקות מוקצית למחלקות המשתנות.
classes=`cat /tmp/fai/FAI_CLASSES`
דוגמאות עבור סקריפטים
זה הסקריפט 01alias:
#! / Bin / sh
catnc() { # cat אבל אין שורות הערה
grep -v "^#" $1
}
# ארכיטקטורת הד באותיות גדולות
dpkg --print-architecture | tr /az/ /AZ/
uname -s | tr /az/ /AZ/
# כל המארחים בשם נמלה?? השתמש בשיעורים בקובץ anthill
מקרה $HOSTNAME ב
נמלה??) catnc anthill ;;
esac
# אשכול Beowulf; כל הצמתים מלבד הצומת הראשי
# השתמש במחלקות ממחלקת קבצים/אטומים
מקרה $HOSTNAME ב
atom00) echo BEOWULF_MASTER ;;
atom??) catnc atoms ;;
esac
# אם המארח שייך לרשת המשנה מסוג C 123.45.6.0 השתמש במחלקה NET_6
מארז $IPADDR ב
123.45.6.*) echo NET_6 ;;
esac
דוגמה אחרת:
התסריט 24ניס:
#! / Bin / sh
# הוסף את NIS ואת שם הדומיין NIS אם מוגדר YPDOMAIN
if [ -n "$YPDOMAIN" ]; אז
echo "NIS $YPDOMAIN" | tr /.az-/ /_A-Z_/
אחר
הד NONIS
fi
אתה יכול להגדיר מחלקות בשורת הפקודה של הליבה על ידי הוספה של זה לליבה:
ADDCLASSES=CLASS1,CLASSX,CLASS3
אורים
יש לכתוב את כל שמות המחלקות באותיות גדולות (למעט המחלקה של שם המארח).
אל תשתמש במקף, השתמש בקו תחתון. נעשה שימוש רק בסקריפטים הניתנים להפעלה ב-DIRECTORY.
CLASSFILE מוסר לפני הכתיבה אליו. סקריפטים לא צריכים לכתוב ישירות ל-CLASSFILE.
LOGDIR לא אמור להיות ניתן לכתיבה עבור כולם.
השתמש ב-fai-class מקוון באמצעות שירותי onworks.net