ตัวอย่าง Logrotate ของ Linux

Tawxyang Logrotate Khxng Linux



ข้อมูลบันทึกเป็นส่วนสำคัญของระบบปฏิบัติการในการวินิจฉัยปัญหาของแอปพลิเคชันที่ทำงานอยู่ และรายการบันทึกจะช่วยค้นหาวิธีแก้ไขปัญหา แอปพลิเคชันส่วนใหญ่ของระบบปฏิบัติการ Linux จะสร้างบันทึก และผู้ดูแลระบบจะได้รับข้อมูลที่จำเป็นเกี่ยวกับแอปพลิเคชันจากรายการบันทึก อย่างไรก็ตาม บางครั้งรายการบันทึกจะสร้างปัญหาเนื่องจากขนาดของรายการจะใหญ่ขึ้นเมื่อเวลาผ่านไป ดังนั้นจำเป็นต้องมีรายการบันทึกในการจัดการ

logrotate เป็นเครื่องมือบรรทัดคำสั่งของ Linux เพื่อจัดการรายการบันทึก เครื่องมือนี้ช่วยในการทำงานประเภทต่างๆ ในรายการบันทึกโดยผู้ดูแลระบบ เช่น การจำกัดไฟล์บันทึกที่หมุน การบีบอัดไฟล์บันทึกที่หมุน การลบไฟล์บันทึกที่ไม่จำเป็น การดำเนินการเชลล์สคริปต์เฉพาะตามไฟล์บันทึก เป็นต้น การใช้งาน ของคำสั่ง “logrorate” สำหรับจัดการไฟล์บันทึกในรูปแบบต่างๆ จะแสดงอยู่ในบทช่วยสอนนี้โดยใช้หลายตัวอย่าง

ตรวจสอบเวอร์ชัน Logrotate ที่ติดตั้ง

คำสั่ง 'logrotate' ได้รับการติดตั้งตามค่าเริ่มต้นในระบบปฏิบัติการ Ubuntu เวอร์ชันใหม่ รันคำสั่งต่อไปนี้เพื่อตรวจสอบเวอร์ชันที่ติดตั้งของคำสั่ง “logrotate”:







$ เข้าสู่ระบบ --รุ่น



รายการบันทึกของแอปพลิเคชันต่างๆ จะถูกจัดเก็บไว้ในโฟลเดอร์ “/var/log” ตามค่าเริ่มต้น เนื้อหาที่คล้ายกันต่อไปนี้จะปรากฏขึ้นหากคุณตรวจสอบเนื้อหาของโฟลเดอร์



$ LS / เคยเป็น / บันทึก





ตั้งค่าการกำหนดค่า 'Logrotate'

การตั้งค่า วัตถุประสงค์
รายวัน/รายสัปดาห์/รายเดือน/รายปี มันกำหนดระยะเวลาในการหมุนเวียนบันทึก
หมุนหมายเลข กำหนดจำนวนไฟล์ที่จะถูกเก็บไว้ก่อนที่จะลบไฟล์บันทึกเก่า
บีบอัด มันถูกใช้เพื่อบีบอัดไฟล์บันทึก
บีบอัดcmd ใช้สำหรับตั้งค่าคำสั่ง 'compress' gzip เป็นคำสั่งเริ่มต้น
คลายการบีบอัด cmd ใช้สำหรับตั้งค่าคำสั่ง uncompress gunzip เป็นคำสั่งเริ่มต้น
ความล่าช้าในการบีบอัด มันถูกใช้เพื่อชะลอกระบวนการบีบอัดของไฟล์บันทึก
การแจ้งเตือนว่างเปล่า ใช้เพื่อไม่ให้หมุนไฟล์ว่าง
ฉันกำลังคิดถึง หากตั้งค่าไว้ จะไม่มีการสร้างข้อผิดพลาดสำหรับไฟล์บันทึกที่หายไป
ขนาด ใช้เพื่อกำหนดขีดจำกัดในการเริ่มหมุนไฟล์บันทึก
วันที่ข้อความ มันถูกใช้เพื่อเพิ่มค่าวันที่เป็นส่วนต่อท้ายของไฟล์หมุน
คัดลอกตัดทอน มันถูกใช้เพื่อสร้างสำเนาของไฟล์ต้นฉบับ
กำหนดไว้ล่วงหน้า มันถูกใช้เพื่อรันสคริปต์ก่อนที่จะหมุนไฟล์บันทึก
หลังการหมุน มันถูกใช้เพื่อรันสคริปต์หลังจากหมุนไฟล์บันทึก
สร้าง มันถูกใช้เพื่อสร้างไฟล์บันทึกที่มีสิทธิ์รูท

ไวยากรณ์:

ไวยากรณ์ของคำสั่ง 'logrotate' จะได้รับดังนี้:



เข้าสู่ระบบ [ ตัวเลือก ] config_file_path

ตัวเลือกประเภทต่างๆ สามารถใช้เพื่อวัตถุประสงค์ที่แตกต่างกันได้ด้วยคำสั่ง 'logrotate'

ตัวเลือก Logrotate

ตัวเลือกที่มีประโยชน์ของคำสั่ง 'logrotate' มีการกล่าวถึงดังต่อไปนี้:

-f, –บังคับ ใช้สำหรับหมุนแรงเมื่อจำเป็น
-d, –ดีบั๊ก ใช้เพื่อเปิดใช้งานโหมดแก้ไขข้อบกพร่องระหว่างการหมุน
-m, –เมล <คำสั่ง> มันถูกใช้เพื่อส่งอีเมลในระหว่างการหมุนเวียน
-s, –สถานะ ใช้สำหรับไฟล์สถานะทางเลือก
–การใช้งาน ใช้สำหรับพิมพ์ข้อมูลการใช้งาน
-?, -ช่วย ใช้สำหรับพิมพ์ข้อความช่วยเหลือ
-v, –คำฟุ่มเฟือย ใช้ในการพิมพ์ในโหมดรายละเอียด

Logrotate ไฟล์การกำหนดค่า

ไฟล์การกำหนดค่า logrotate หลักอยู่ที่ตำแหน่ง “/etc/logrotate.conf” เรียกใช้คำสั่งต่อไปนี้เพื่อเปิดไฟล์ในตัวแก้ไขนาโน:

$ นาโน / ฯลฯ / logrotate.conf

การตั้งค่าเริ่มต้นของคำสั่ง “logrotate” จะแสดงอยู่ในไฟล์ “logrotate.conf” คำสั่ง 'รวม' ใช้ในไฟล์เพื่อดึงข้อมูลการกำหนดค่าที่อยู่ในไดเร็กทอรี '/etc/logrotate.d'

ตัวอย่างที่ 1: สร้างไฟล์การกำหนดค่า Logrotate อย่างง่าย

สร้างไฟล์บันทึกตัวอย่างชื่อ “/var/log/test.log” พร้อมด้วยข้อมูลบันทึกตัวอย่าง เรียกใช้คำสั่งต่อไปนี้เพื่อเปิดตัวแก้ไข nano เพื่อสร้างไฟล์ “logrotate.conf” ใหม่ในตำแหน่งโฟลเดอร์ “/etc/tmp” สร้างโฟลเดอร์ “/tmp” ด้วยสิทธิ์รูท หากไม่เคยสร้างมาก่อน

$ นาโน / ฯลฯ / ทีเอ็มพี / logrotate.conf

เพิ่มเนื้อหาต่อไปนี้ลงในไฟล์สำหรับไฟล์ “/var/log/test.log” ตามการตั้งค่า ไฟล์ 'test.log' จะถูกหมุนทุกวันหากขนาดไฟล์เกิน 5K:

/ เคยเป็น / บันทึก / ทดสอบ.log {

รายวัน

ขนาด 5ก

ของเขา ผู้ดูแลระบบราก

}

รันคำสั่งต่อไปนี้เพื่อตรวจสอบขนาดของไฟล์บันทึก:

$ LS -ล / เคยเป็น / บันทึก / ทดสอบ.log

เรียกใช้คำสั่ง 'logrotate' หลังจากสร้างไฟล์กำหนดค่า

$ ซูโดะ เข้าสู่ระบบ / ฯลฯ / ทีเอ็มพี / logrotate.conf

รันคำสั่งต่อไปนี้อีกครั้งเพื่อตรวจสอบขนาดของไฟล์บันทึกหลังจากดำเนินการคำสั่ง “logrotate”:

$ LS -ล / เคยเป็น / บันทึก / ทดสอบ.log

ขนาดของไฟล์ “test.log” คือ 1K+ ดังนั้นจึงไม่มีการหมุนตามการตั้งค่าที่กำหนด

เปลี่ยนค่าขนาดเป็น 1K ในไฟล์ “/etc/tmp/logrotate.conf” และรันคำสั่ง “ls” อีกครั้งเพื่อตรวจสอบขนาดไฟล์ของ “/var/log/test.log” ตามเอาต์พุต ไฟล์บันทึกจะถูกหมุนและลบเนื่องจากเกินขีดจำกัดขนาด

ตัวอย่างที่ 2: การใช้ Logrotate Copytruncate

สร้างหรือแก้ไขไฟล์ “/etc/tmp/logrotate.conf” ด้วยการตั้งค่าต่อไปนี้เพื่อแสดงการใช้ copytruncate ตามการตั้งค่าใหม่ logrotate จะสร้างสำเนาของไฟล์ต้นฉบับโดยทำให้ขนาดไฟล์ต้นฉบับเป็นศูนย์

/ เคยเป็น / บันทึก / ทดสอบ.log {

หมุน 5

ขนาด 1 ก

คัดลอกตัดทอน

ของเขา ผู้ดูแลระบบราก

}

รันคำสั่งต่อไปนี้เพื่อตรวจสอบขนาดของไฟล์ “test.log”:

$ LS -ล / เคยเป็น / บันทึก / ทดสอบ.log

เรียกใช้คำสั่ง 'logrotate' หลังจากสร้างไฟล์กำหนดค่า

$ ซูโดะ เข้าสู่ระบบ / ฯลฯ / ทีเอ็มพี / logrotate.conf

รันคำสั่งต่อไปนี้อีกครั้งเพื่อตรวจสอบขนาดของไฟล์ “test.log” หลังจากรันคำสั่ง “logrotate”:

$ LS -ล / เคยเป็น / บันทึก / ทดสอบ.log

ขนาดไฟล์ต้นฉบับกลายเป็น 0 หลังจากดำเนินการคำสั่ง 'logrotate' สำหรับการตั้งค่า copytruncate

ตัวอย่างที่ 3: การใช้ Logrotate Compress

สร้างหรือแก้ไขไฟล์ “/etc/tmp/logrotate.conf” ด้วยการตั้งค่าต่อไปนี้เพื่อแสดงการใช้การบีบอัด ตามการตั้งค่าใหม่ logrotate จะสร้างไฟล์บีบอัดของไฟล์ต้นฉบับ

/ เคยเป็น / บันทึก / ทดสอบ.log {

หมุน 5

ขนาด 1 ก

บีบอัด

สร้าง 770 ผู้ดูแลระบบราก

}

รันคำสั่งต่อไปนี้เพื่อตรวจสอบรายการไฟล์และโฟลเดอร์ของ “/var/log”:

$ LS / เคยเป็น / บันทึก /

เรียกใช้คำสั่ง 'logrotate' หลังจากสร้างไฟล์กำหนดค่า

$ ซูโดะ เข้าสู่ระบบ / ฯลฯ / ทีเอ็มพี / logrotate.conf

รันคำสั่งต่อไปนี้อีกครั้งเพื่อตรวจสอบรายการไฟล์และโฟลเดอร์ของ “/var/log”:

$ LS / เคยเป็น / บันทึก /

ไฟล์บีบอัดของไฟล์ “test.log” ถูกสร้างขึ้นในชื่อ “test.log.1.gz” และไฟล์ต้นฉบับจะถูกลบออก

ตัวอย่างที่ 4: การใช้ Logrotate Dateext

สร้างหรือแก้ไขไฟล์ “/etc/tmp/logrotate.conf” ด้วยการตั้งค่าต่อไปนี้เพื่อแสดงการใช้ dateext ตามการตั้งค่าใหม่ logrotate จะสร้างไฟล์บีบอัดของไฟล์ต้นฉบับพร้อมค่าวันที่

เคยเป็น / บันทึก / ทดสอบ.log {

ของเขา ผู้ดูแลระบบราก

หมุน 5

ขนาด 1 ก

บีบอัด

สร้าง 770 ผู้ดูแลระบบราก

วันที่ข้อความ

}

เรียกใช้คำสั่ง 'logrotate' หลังจากสร้างไฟล์กำหนดค่า

$ ซูโดะ เข้าสู่ระบบ / ฯลฯ / ทีเอ็มพี / logrotate.conf

รันคำสั่งต่อไปนี้เพื่อตรวจสอบรายการไฟล์และโฟลเดอร์ของ “/var/log”:

$ LS -ล / เคยเป็น / บันทึก /

ไฟล์บีบอัดของไฟล์ “test.log” ถูกสร้างขึ้นในชื่อ “test.log.20240129.gz” และไฟล์ต้นฉบับจะถูกลบออก

ตัวอย่างที่ 5: การใช้ Logrotate Maxage

สร้างหรือแก้ไขไฟล์ “/etc/tmp/logrotate.conf” ด้วยการตั้งค่าต่อไปนี้เพื่อแสดงการใช้ Maxage ตามการตั้งค่า logrotate จะเก็บรายการบันทึกห้ารายการหากขนาดของไฟล์บันทึกเกิน 1K หลังจากผ่านไปหนึ่งวัน

/ เคยเป็น / บันทึก / ทดสอบ.log {

ของเขา ผู้ดูแลระบบราก

หมุน 5

ขนาด 1 ก

บีบอัด

สูงสุด 1

}

เรียกใช้คำสั่ง 'logrotate' ต่อไปนี้เพื่อจัดเก็บเอาต์พุตในไฟล์บันทึกอื่นชื่อ 'out.log':

$ ซูโดะ เข้าสู่ระบบ -ส = / เคยเป็น / บันทึก / ออก.log / ฯลฯ / ทีเอ็มพี / logrotate.conf

ตามผลลัพธ์ต่อไปนี้ ไฟล์ 'out.log' จะถูกสร้างขึ้นหลังจากดำเนินการคำสั่ง 'logrotate':

ตัวอย่างที่ 6: การใช้ Logrotate Missingok

สร้างหรือแก้ไขไฟล์ “/etc/tmp/logrotate.conf” ด้วยการตั้งค่าต่อไปนี้ ที่นี่ไม่มีไฟล์บันทึก 'testfile.log' ในโฟลเดอร์ '/var/log'

/ เคยเป็น / บันทึก / testfile.log {

ของเขา ผู้ดูแลระบบราก

หมุน 5

ขนาด 1 ก

บีบอัด

}

ข้อความแสดงข้อผิดพลาดจะถูกพิมพ์หลังจากดำเนินการคำสั่ง 'logrotate'

เพิ่มการตั้งค่า 'missingok' ในไฟล์กำหนดค่า logrotate และเรียกใช้คำสั่ง 'logrotate' อีกครั้ง ไม่มีการพิมพ์ข้อผิดพลาดสำหรับไฟล์บันทึกที่หายไป

ตัวอย่างที่ 7: การใช้ Logrotate Prerotate

สร้างไฟล์ Bash ชื่อ 'test.sh' ด้วยสคริปต์ต่อไปนี้ที่พิมพ์ข้อความง่ายๆ ไฟล์นี้ใช้ในตัวอย่าง logrotate นี้เพื่อแสดงการใช้ prerotate ในไฟล์คอนฟิกูเรชัน logrotate

ทดสอบ.ช



#!/bin/bash

เสียงสะท้อน 'ตัวอย่าง logrotate...'

หลังจากสร้างไฟล์แล้ว ให้รันคำสั่งต่อไปนี้เพื่อตั้งค่าสิทธิ์ในการดำเนินการของไฟล์นี้สำหรับผู้ใช้ทั้งหมด:

$ โครโมด ก+เอ็กซ์ / บ้าน / ความเข้าใจ / ทดสอบ.ช

ตอนนี้ให้สร้างหรือแก้ไขไฟล์ “/etc/tmp/logrotate.conf” ด้วยการตั้งค่าต่อไปนี้ ตามการตั้งค่า logrotate จะเก็บรายการบันทึกห้ารายการหากขนาดของไฟล์บันทึกเกิน 1K และไฟล์ 'test.sh' จะถูกดำเนินการก่อนการหมุน

/ เคยเป็น / บันทึก / ทดสอบ.log {

ของเขา ผู้ดูแลระบบราก

หมุน 5

ขนาด 1 ก

กำหนดไว้ล่วงหน้า

/ บ้าน / ความเข้าใจ / ทดสอบ.ช

บทลงท้าย

}

ผลลัพธ์ของไฟล์ “test.sh” จะปรากฏขึ้นหลังจากดำเนินการคำสั่ง “logrotate”:

บทสรุป

การใช้งานต่างๆ ของคำสั่ง “logrotate” จะแสดงอยู่ในบทช่วยสอนนี้โดยใช้ตัวอย่างต่างๆ ที่จะช่วยให้ผู้ใช้ Linux ทราบการใช้คำสั่งและจัดการไฟล์บันทึกอย่างเหมาะสม