Bash:
การบันทึก
วิธีการ:
ใน Bash, การบันทึกสามารถทำได้ง่ายๆ โดยการเปลี่ยนทิศทางหรือเพิ่มเอาต์พุตไปยังไฟล์ นี่คือตัวอย่างพื้นฐาน:
echo "กำลังเริ่มสคริปต์..." >> script.log
# คำสั่งสคริปต์ของคุณที่นี่
echo "สคริปต์เสร็จสิ้นเมื่อ $(date)" >> script.log
สำหรับทางเลือกที่ซับซ้อนกว่า, คุณสามารถรวม syslog สำหรับการบันทึกทั่วระบบได้:
logger "ข้อความที่กำหนดเองจากสคริปต์ของฉัน"
logger
ส่งข้อความบันทึกไปยังบริการ syslog ซึ่งจากนั้นจะจัดการตามการตั้งค่า syslog ของระบบ
ตัวอย่างเอาต์พุตที่บันทึกใน script.log
:
กำลังเริ่มสคริปต์...
สคริปต์เสร็จสิ้นเมื่อ Tue Mar 23 09:26:35 PDT 2021
ศึกษาเพิ่มเติม
ตามประวัติศาสตร์ในระบบที่คล้าย Unix, การบันทึกได้รับการอำนวยความสะดวกโดยบริการ syslog, ซึ่งช่วยให้แอปพลิเคชันและส่วนต่างๆ ของระบบสามารถบันทึกข้อความได้แบบกลาง เป็นที่มาของการใช้กลไกการบันทึกแบบมาตรฐานทั่วทั้งระบบ
เมื่อพูดถึงทางเลือก, บางคนอาจมองหาการใช้ syslog-ng
หรือ rsyslog
สำหรับคุณสมบัติการบันทึกขั้นสูง หรือการบันทึกบันทึกลงในฐานข้อมูลที่มีลำดับเวลาเพื่อวัตถุประสงค์ทางการวิเคราะห์ สำหรับแอปพลิเคชันที่มีความซับซ้อนระดับสูง, การใช้ไลบรารีหรือแอปพลิเคชันบันทึกเฉพาะกิจ เช่น Log4j (ในระบบนิเวศ Java) หรือ Monolog (ใน PHP), ซึ่งสามารถให้ตัวเลือกการบันทึกที่มีโครงสร้างและสามารถกำหนดการตั้งค่าได้, อาจจะเหมาะสมแม้กระทั่งสำหรับภาษาสคริปต์เช่น Bash
วิธีการที่คุณใช้ในการบันทึกขึ้นอยู่กับความต้องการของแอปพลิเคชั่นของคุณอย่างมาก หากคุณเพียงต้องการเอาต์พุตง่ายๆ เพื่อติดตามความคืบหน้าของสคริปต์, การเพิ่มข้อความเข้าไปในไฟล์นั้นง่ายและสะดวก อย่างไรก็ตาม, สำหรับการบันทึกที่เป็นระบบและทนทานมากขึ้น, คุณจะต้องการผสานรวมกับระบบการบันทึกที่รองรับคุณสมบัติเช่นการหมุนเวียนบันทึก, ระดับบันทึก, และการบันทึกจากระยะไกล
ดูเพิ่มเติม
- หน้า
man
สำหรับฟังก์ชันlogger
และsyslog
นั้นเป็นที่ปรึกษาที่ดีของคุณเสมอ, ลองใช้man logger
หรือman syslog
. - เพื่อศึกษาการบันทึกข้อมูลระบบอย่างลึกซึ้ง, พิจารณาอ่านเอกสารของ
rsyslog
และsyslog-ng
. - หากต้องการทราบเพิ่มเติมเกี่ยวกับบริบทประวัติศาสตร์และหลักการที่อยู่เบื้องหลังการบันทึกในระบบที่คล้าย Unix, โปรโตคอล
Syslog
ที่เอกสารใน RFC 5424 ให้ข้อมูลอย่างครอบคลุม.