Administration Automation
เขียนงานดูแลระบบอัตโนมัติ
สคริปต์ดูแลระบบทำงานกับทรัพยากรจริง จึงต้องรู้ข้อมูลที่รับ สิทธิ์ และการบันทึกผล
หัวข้อในบทนี้
ศัพท์ในบทนี้ · กดคำที่ขีดเส้นใต้ในเนื้อหาเพื่อดูความหมายได้ด้วย
- CPU
- หน่วยประมวลผลที่ทำตามคำสั่งของโปรแกรม
- API
- ข้อตกลงวิธีที่โปรแกรมเรียกความสามารถหรือข้อมูลของอีกโปรแกรม
pipeline มีชนิดข้อมูลและตัวตนของงาน
PowerShell cmdlets จำนวนมากส่ง objects ที่มี properties ไม่ใช่แค่ข้อความหน้าจอ Bash เชื่อมเครื่องมือที่มักใช้ streams ของข้อความ ส่วน Python เหมาะกับการจัดข้อมูลและเรียก เลือกภาษาตามระบบ input และงาน ไม่เลือกเพราะต้องเขียนทุกอย่างด้วยภาษาเดียว
- Collect
PowerShell Get-Process คืน objects ส่วน output ของ native command อาจเป็นข้อความ
- Filter
Where-Object อ่าน property เช่น CPU การกรองหลัง Format-Table ทำงานกับวัตถุสำหรับแสดงผลแทนต้นฉบับได้
- Transform
Select-Object เลือก properties หรือ Python แปลง schema ส่งข้อมูลตามสัญญาปลายทาง
- Schedule
บัญชี พาธ environment timeout และ overlap ของ task ต้องกำหนด
- Record
เก็บสิ่งที่ทำ ผลและ error อย่างพอใช้ตรวจ โดยไม่เปิดเผยกุญแจหรือข้อมูลเกินจำเป็น
| ช่วง | ข้อมูลที่ส่งต่อ | สิ่งที่ยังทำได้ |
|---|---|---|
| Get-Process | Process objects | อ่าน properties ที่มี |
| Where-Object | Objects ที่ผ่าน predicate | คำนวณและเลือก properties ต่อ |
| Select-Object | Objects ของ properties ที่เลือก | ส่งออกข้อมูลตามที่ต้องการ |
| Format-Table | Formatting information | เหมาะกับปลายทางแสดงผล ไม่แทน process object เดิม |
ตัวอย่างเป็นแนวคิด pipeline ไม่ใช่คำสั่งพร้อมรัน ส่วน ... ต้องเลือก predicate และ properties ของงานจริง Native command ใน PowerShell อาจส่งข้อความ ไม่ใช่ object แบบ cmdlet
จัดรูปแบบไว้ท้าย pipeline เมื่อทำงานกับ objects งานตามเวลาที่รันพร้อมกันอาจชนไฟล์หรือเปลี่ยนข้อมูลซ้ำ Secrets ต้องมีวิธีอ่านที่จำกัดสิทธิ์และหมุนตามระบบ Logging ไม่เท่ากับ print ทุกค่า และ exit code ต้องสะท้อนผลที่ผู้เรียกใช้ตัดสินได้
ออบเจ็กต์และสคริปต์พาวเวอร์เชลล์PowerShell Objects and Scripts · 14.1.1
PowerShell ส่งต่อออบเจ็กต์ที่มี properties จึงกรองตามคุณสมบัติได้
PowerShell ส่ง object ใน pipeline ไม่ใช่เฉพาะข้อความ Property คือข้อมูลของ object cmdlet จัดการ object และ script ประสานหลายขั้น การ format เพื่อแสดงผลควรอยู่ท้ายเพราะเปลี่ยน object ให้เป็นรูปแบบการแสดง
ข้อมูลมี property
ส่ง object ไป cmdlet ถัดไป
จัดรูปแบบหรือ export ตอนท้าย
Get-Process | Where-Object -gt 10 | Select-Object Name,CPU เลือก process ตาม property แล้วเลือกคอลัมน์ CPU ตรงนี้คือเวลาสะสม CPU ไม่ใช่เปอร์เซ็นต์ปัจจุบัน อ่านความหมาย property ก่อนใช้ตัดสิน
Get-Process |
Where-Object CPU -gt 10 |
Select-Object Name,CPUWhere-Object กรองจาก property แล้ว Select-Object เลือก property ผลยังเป็น object ใช้ Get-Member ดูโครงสร้างได้ ค่า CPU เป็นเวลาสะสมไม่ใช่ CPU percent ตอนนี้
ที่มาของหัวข้อนี้ · 1 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- Operating Systems and You: Becoming a Power User · Module 1: Navigating the SystemVideo: Windows PowershellIT3.M1.V25
เอกสารหลักที่ใช้ตรวจแนวคิดเพิ่มเติม
เขียนสคริปต์แบชBash Scripting · 14.1.2
Bash รวมคำสั่งและควบคุมลำดับ ต้องระวัง quoting และ exit status
Bash ประสาน command ผ่าน text stream ใช้ variable, condition และ loop พร้อม quoting เพื่อรักษาค่าที่มี space หรืออักขระพิเศษ exit status บอกผลสำเร็จตาม contract ของแต่ละ command
ค่าที่ส่งให้โปรแกรม
stdin stdout stderr
ผลตามที่โปรแกรมกำหนด
ใช้ "$path" เมื่อส่งตัวแปร path เพื่อไม่ให้ split คำเป็นหลาย argument Pipeline ต้องรู้ว่าผลแต่ละขั้นผิดได้อย่างไร อย่าใช้การต่อคำสั่งจาก input ผู้ใช้เมื่อส่งค่าผ่าน argument ได้
path="/home/user/My Documents"
printf '%s\n' "$path"double quote ทำให้ path ที่มี space เป็นค่าเดียว printf แสดงข้อความ ไม่ใช้ eval ที่จะตีความค่าเป็น code
ที่มาของหัวข้อนี้ · 2 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- Tools of the Trade: Linux and SQL · Module 3: Linux commands in the Bash shellVideo: Linux commands via the Bash shellCY4.M3.V2
- Technical Support Fundamentals · Module 5: SoftwareReading: Common Scripting SolutionsIT1.M5.R1
เอพีไอและจัดการข้อผิดพลาดไพธอนPython APIs and Error Handling · 14.1.3
Python ช่วยเชื่อม API และประมวลผลข้อมูล แต่ต้องจัด timeout และข้อผิดพลาด
Python เหมาะกับการแปลงข้อมูลและเรียก แบบมีโครงสร้าง งาน automation ต้องแยก acquisition validation decision และ write เพื่อให้เห็นจุดผิดกับผลกระทบ
รับและตรวจข้อมูล
สร้างรายการเปลี่ยน
เขียนตาม scope และบันทึกผล
ก่อนปิดบัญชีจากรายการ ให้ตรวจข้อมูลครบและตรงองค์กร แล้วสร้าง preview การเปลี่ยน Token ต้องให้สิทธิ์น้อยพอและมี timeout ข้อผิดพลาดระหว่างดึงข้อมูลต้องไม่ถูกตีความว่าไม่มีบัญชีทั้งหมด
ที่มาของหัวข้อนี้ · 1 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- Automate Cybersecurity Tasks with Python · Module 4: Python in practiceReading: Explore debugging techniquesCY7.M4.R6
ตั้งเวลา ความลับ และบันทึกงานScheduling, Secrets and Logging · 14.1.4
Scheduled job ต้องมีตัวตนที่ใช้รัน วิธีจัด secrets และ log ที่สืบย้อนเหตุได้
Scheduled job ต้องกำหนด identity, working directory, environment, timeout และการกันรันซ้อน Secrets ควรมาจากช่องทางเก็บที่เหมาะ ส่วน log ต้องพอวิเคราะห์แต่ไม่เปิดเผยรหัสผ่าน token หรือข้อมูลเกินจำเป็น
บัญชีและ environment
ข้อมูลรับรองตามสิทธิ์
ผล เวลา และข้อผิดพลาด
สคริปต์รันมือได้แต่ scheduled task ไม่ได้อาจเพราะบัญชีหรือ path ต่าง ใช้ absolute path และดู exit result กับ log กำหนดการแจ้งเตือนเมื่อ job หยุด เพื่อไม่ถือว่าความเงียบแปลว่าสำเร็จ
ที่มาของหัวข้อนี้ · คำอธิบายต่อยอด
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
เป็นส่วนต่อยอดที่เขียนเพื่อเชื่อมความเข้าใจ ไม่มีชื่อ Video/Reading เฉพาะที่ยืนยันจาก inventory เดิม
นำศัพท์มาเชื่อมกับงาน
งานตามเวลารันไม่ผ่านอาจเพราะใช้บัญชีหรือ PATH ต่างจากตอนรันด้วยมือ
สิ่งที่บทนี้เชื่อมไว้
สคริปต์ดูแลระบบทำงานกับทรัพยากรจริง จึงต้องรู้ข้อมูลที่รับ สิทธิ์ และการบันทึกผล
ใช้ภาพกับตัวอย่างด้านบนเชื่อมหน้าที่ของแต่ละส่วน แล้วตรวจความเข้าใจด้วยการอธิบายเหตุผลของผลที่เห็น ก่อนเปิดบทถัดไป
บทเรียนที่เกี่ยวข้องและที่มาของบทอ่าน
คำอธิบายหน้านี้เขียนใหม่ตามหัวข้อใน Atlas รายการด้านล่างเป็นชื่อ Video/Reading ที่เคยจับคู่ไว้ แสดงไว้ให้ตรวจที่มาของชื่อหัวข้อ และไม่รับรองว่าคอร์สสอนทุกส่วนของคำอธิบายนี้