Сценарій для видалення файлів старше 6 місяців


12

Налаштування роботи cron один раз на місяць для запуску сценарію.

сценарій полягає в тому, щоб обертати файл щомісяця, оскільки він стає занадто великим і перейменувати старий. коли файл старше півроку, я хотів би його видалити.

Шукаєте запускати цей сценарій раз на місяць. Чи можливо видалити старий?

Будь ласка, дайте мені знати, якщо це недостатньо ясно.


11
Чому б просто не використовувати logrotate?
Майкл Хемптон

@scottmarriott Так, право містер Хемптон, функціонал, який ви описали, - це в основному саме те, що робить логротат.
Братчлі

Так, я просто добре роздивився логротат, має сенс усього
привіт

@MichaelHampton ви повинні зробити цю відповідь.
зол

Відповіді:


20

Ви можете почати з цього:

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

Де +182кількість днів.


Дякую за це, можливо, зіграйте з нею, але я, можливо, логротат може бути найкращим варіантом
scott marriott

@jordanm якісь ідеї, чому це може не спрацювати?
scott marriott

ApplicationServer / logs / TestClone01 $ ls -ltr всього 3320 1048458 13 грудня 09:46 SystemOut_12.12.13_09.46.29.log 28 травня 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 / logs / TestClone01 $ find SystemOut.log -mtime +1 - exec rm {} + find: 0652-083 Неможливо виконати :: Файл або каталог у назві шляху не існує.
scott marriott

Я змінив кількість днів на 1
scott marriott

@scottmarriott Не всі версії findпідтримки +/-для -mtime. Яка ОС та версія у findвас є?
Йорданм

2

Можна просто використовувати logrotate. Він уже доступний у більшості систем Linux, і для багатьох пакетів уже є попередньо налаштовані логротетні сценарії, або ви можете налаштувати їх або написати власні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.