Scrip เพื่อลบไฟล์ที่เก่ากว่า 6 เดือน


12

การตั้งค่างาน cron เดือนละครั้งเพื่อเริ่มสคริปต์

สคริปต์คือการหมุนไฟล์ในแต่ละเดือนเนื่องจากไฟล์มีขนาดใหญ่เกินไปและเปลี่ยนชื่อไฟล์เก่า เมื่อไฟล์เก่ากว่าหกเดือนฉันต้องการลบมัน

ต้องการเรียกใช้สคริปต์นี้เดือนละครั้ง เป็นไปได้ไหมที่จะลบอันเก่าออก

โปรดแจ้งให้เราทราบหากยังไม่ชัดเจนเพียงพอ


11
ทำไมไม่ใช้เพียงlogrotate?
Michael Hampton

@scottmarriott ใช่ใช่นายแฮมป์ตันฟังก์ชั่นที่คุณอธิบายนั้นเป็นสิ่งที่ logrotate แน่นอน
Bratchley

ใช่ฉันเพิ่งได้ดูดีที่ logrotate ทำให้รู้สึกไชโยทั้งหมด
scott marriott

@MichaelHampton คุณควรตอบคำถามนั้น
evilsoup

คำตอบ:


20

คุณสามารถเริ่มต้นด้วยสิ่งนี้:

find /your/file -mtime +182 -exec rm {} +

+182ปริมาณวันอยู่ที่ไหน


ขอบคุณสำหรับการที่อาจมีการเล่นกับมัน แต่ฉันอาจ logrotate อาจเป็นตัวเลือกที่ดีที่สุด
scott marriott

@jordanm ความคิดใด ๆ ว่าทำไมสิ่งนี้อาจไม่ทำงาน
กอตต์ marriott

ApplicationServer / logs / TestClone01 $ ls -ltr รวม 3320 1048458 13 Dec 09:46 SystemOut_12.12.13_09.46.29.log 28 May 12:44 SystemOut.log.2013-05-28-12: 44: 52 71 30 พฤษภาคม 08: 57 SystemOut.log.2013-05-30-08: 57: 22 48432 30 พฤษภาคม 09:16 SystemOut.log no_env): / usr / websphere6 / was61TE_LV2 / ApplicationServer / บันทึก / TestClone01 $ find SystemOut.log -mtime +1 - exec rm {} + find: 0652-083 ไม่สามารถดำเนินการ :: ไฟล์หรือไดเรกทอรีในชื่อพา ธ ไม่มีอยู่
กอตต์ marriott

ฉันเปลี่ยนจำนวนวันเป็น 1
กอตต์ marriott

@scottmarriott ไม่ทุกรุ่นของfindการสนับสนุนสำหรับ+/- -mtimeคุณมีระบบปฏิบัติการและเวอร์ชั่นfindอะไร
จอร์แดน

2

logrotateคุณก็สามารถใช้ มีอยู่แล้วในระบบ Linux ส่วนใหญ่และแพ็คเกจจำนวนมากมีสคริปต์ logrotate ที่กำหนดค่าไว้ล่วงหน้าหรือคุณสามารถปรับแต่งหรือเขียนเอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.