นี่คือคำสั่ง fai-class ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
fai-class - กำหนดคลาสโดยใช้ไฟล์และสคริปต์
เรื่องย่อ
ไฟคลาส [OPTION] DIRECTORY คลาสไฟล์
DESCRIPTION
คำสั่งนี้เรียกภายในโดย FAI เท่านั้น ไม่ใช่โดยผู้ใช้โดยตรง
fai-class รันสคริปต์ใน DIRECTORY เพื่อกำหนดคลาส ชั้นเรียนทั้งหมดเขียนถึง
CLASSFILE แต่ละชั้นเรียนในบรรทัดแยกกัน ใช้เส้นทางที่แน่นอนสำหรับอาร์กิวเมนต์ทั้งสอง ทั้งหมด
สคริปต์หรือไฟล์เรียกทำงานที่ตรงกับ "^[0-9][0-9]*" (เริ่มต้นด้วยตัวเลขสองหลัก)
ตามลำดับตัวอักษร พวกเขาสามารถกำหนดคลาสโดยการเขียนชื่อของคลาสถึง
มาตรฐาน ชั้นเรียนสามารถคั่นด้วยช่องว่างหรือเขียนทีละบรรทัด ทุกบรรทัดที่ขึ้นต้น
ด้วย "#" เป็นบรรทัดความคิดเห็นและจะถูกละเว้น
เชลล์สคริปต์ที่ลงท้ายด้วย ".sh" เป็นแหล่งที่มาและสามารถกำหนดคลาสโดยการตั้งค่าตัวแปร
$newclasses. สิ่งนี้มีประโยชน์สำหรับสคริปต์ที่คุณไม่สามารถควบคุม stdout ได้ ตัวแปรที่เป็น
ที่กำหนดไว้ในสคริปต์เหล่านี้มีให้สำหรับสคริปต์อื่นใน DIRECTORY แต่ไม่ใช่
ส่งออกไปยังเชลล์ที่เรียก fai-class สคริปต์เหล่านั้นสามารถกำหนดตัวแปรโดยการเขียน
คำจำกัดความของไฟล์ $LOGDIR/additional.var ซึ่งจะมีแหล่งที่มาดังต่อไปนี้
งาน.
สคริปต์ทั้งหมดสามารถกำหนดคลาสเพิ่มเติมโดยการเขียนคลาสลงในไฟล์
$LOGDIR/คลาสเพิ่มเติม คลาสเหล่านี้ถูกกำหนดหลังจากรันสคริปต์ทั้งหมด นี้
ไฟล์ชั่วคราวจะถูกลบออกหลังการใช้งาน
ลำดับของคลาสมีความสำคัญเพราะเป็นตัวกำหนดลำดับความสำคัญของคลาสจาก
ต่ำไปสูง ขั้นแรกให้กำหนดคลาส DEFAULT จากนั้นสคริปต์ทั้งหมดจะถูกดำเนินการเพื่อกำหนด
ชั้นเรียน หลังจากนั้น เพิ่มคลาสจากไฟล์ $LOGDIR/additional-classes แล้ว,
เพิ่มคลาสทั้งหมดในไฟล์ที่มีชื่อโฮสต์ จากนั้นคลาสที่กำหนดโดยตัวแปร
ใช้ ADDCLASSES ตัวแปรนี้ต้องเป็นรายการคลาสที่คั่นด้วยเครื่องหมายจุลภาค คุณสามารถ
กำหนดตัวแปรนี้บนบรรทัดคำสั่งเคอร์เนล
สุดท้าย มีการกำหนดคลาสที่มีชื่อโฮสต์และ LAST
สิ่งสำคัญคือแต่ละบรรทัดในไฟล์ที่มีชื่อคลาสลงท้ายด้วยการขึ้นบรรทัดใหม่ ถ้า
ขึ้นบรรทัดใหม่หายไปในบรรทัดสุดท้ายของไฟล์ ไม่สามารถเพิ่มคลาสนี้ได้
รหัสออกของทุกสคริปต์ถูกเขียนไปยังไฟล์ status.log ใน LOGDIR
OPTIONS
-d สร้างเอาต์พุตการดีบัก
-h แสดงวิธีใช้ เวอร์ชัน และสรุปตัวเลือก
-T ทดสอบว่าคลาสใน CLASSFILE ถูกกำหนดหลายครั้งหรือไม่ สิ่งนี้ไม่ควรเกิดขึ้น
การทดสอบจะดำเนินการหลังจากกำหนดคลาสแล้ว
-t tmpdir
ไฟล์คลาสเพิ่มเติมถูกอ่านจากไดเร็กทอรี tmpdir ค่าเริ่มต้นคือ
/tmp/ฝ้าย/.
-v สร้างเอาต์พุตแบบละเอียด
ตัวอย่าง
ใน FAI fai-class ถูกใช้ในลักษณะต่อไปนี้:
# ฝ้ายคลาส /fai/class /tmp/fai/FAI_CLASSES
จากนั้นรายการของคลาสทั้งหมดจะถูกกำหนดให้กับคลาสตัวแปร
class=`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 จอมปลวก ;;
ว่า C
# คลัสเตอร์เบวูลฟ์; โหนดทั้งหมดยกเว้นโหนดหลัก
# ใช้คลาสจากไฟล์คลาส/อะตอม
กรณี $HOSTNAME ใน
atom00) เสียงสะท้อน BEOWULF_MASTER ;;
อะตอม??) อะตอม catnc ;;
ว่า C
# ถ้าโฮสต์เป็นของซับเน็ตคลาส C 123.45.6.0 ให้ใช้คลาส NET_6
กรณี $IPADDR ใน
123.45.6.*) ก้อง NET_6 ;;
ว่า C
ตัวอย่างอื่น:
สคริปต์ 24nis:
#! bin / sh /
# เพิ่ม NIS และชื่อโดเมน NIS ถ้า YPDOMAIN ถูกกำหนด
ถ้า [ -n "$YPDOMAIN" ];แล้ว
echo "NIS $YPDOMAIN" | tr /.az-/ /_A-Z_/
อื่น
ก้อง
fi
คุณสามารถกำหนดคลาสบนบรรทัดคำสั่งเคอร์เนลโดยผนวกสิ่งนี้เข้ากับเคอร์เนล:
ADDCLASSES=CLASS1,CLASSX,CLASS3
หมายเหตุ
ชื่อคลาสทั้งหมดควรเขียนด้วยอักษรตัวพิมพ์ใหญ่ (ยกเว้นคลาสของชื่อโฮสต์)
ห้ามใช้ขีดกลาง ใช้ขีดล่าง ใช้เฉพาะสคริปต์ปฏิบัติการใน DIRECTORY
CLASSFILE จะถูกลบออกก่อนที่จะเขียน สคริปต์ไม่ควรเขียนโดยตรงไปยัง CLASSFILE
LOGDIR ไม่ควรเขียนได้สำหรับทุกคน
ใช้ fai-class ออนไลน์โดยใช้บริการ onworks.net