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 ทราบการใช้คำสั่งและจัดการไฟล์บันทึกอย่างเหมาะสม