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 ให้ข้อมูลอย่างครอบคลุม.