LINUX.ORG.RU
ФорумAdmin

Логи


0

2

Всем доброго времени. Я в линуксе новичек. Подскажите как мне собрать всё содержимое лог файлов (лог файлы кстати находятся в соседних директориях) и очистить их разом. пользуюсь командой find ./ -type f -name «*log*» -size +20M -exec ls -lh {} \; далее захожу по каждому пути и удоляю вручную - это ад. в ручную это жесть. хочется как то одним скриптом это все делать. подскажите как закончить этот адский ежедневный процесс.

p.s. Если можно то поподробнее расскажите мне как это устроено. Просто кое ких фич в линукче я могу не знать.


Ответ на: комментарий от thesis

очень прошу подробно все объяснить мне.

прошу короткие сообшения не писать. непонимаю я их. поподробнее можно со мной побеседывать.

upzap ()

подскажите как закончить этот адский ежедневный процесс

Написать в exec удаление, а не печать пути?

ymn ★★★★★ ()
Ответ на: комментарий от dvrts

а этот раздел простите как связан со мной?

насколько я понял там поиск и предложения работы, связанной с Linux/Unix

upzap ()
Ответ на: комментарий от upzap

Совершенно верно.

Или задавай конкретные вопросы - получай конкретные ответы, или плати деньги человеку за то, что он потратит на тебя свое время

dvrts ★★★ ()
Ответ на: комментарий от upzap
find ./ -type f -name «*log*» -size +20M -exec ls -lh {} \;

А что делает секция exec? Что мешает написать туда удаление файла, а не печать пути до него?

ymn ★★★★★ ()
Ответ на: комментарий от ymn

удолять эти файлы нельзя. ибо зада стоит ТОЛЬКО очистить содержимое этих файлов. имя лог файлов кстати тоже нельзя менять.

upzap ()
Ответ на: комментарий от dvrts

спасибо. на мой конкртный вопрос вы конкретно уже ответили. обязательно в jobs обращюсь.

upzap ()

logrotate - специальное средство для управления «классическими» логами.
Ставишь, куришь руководство, смотришь образцы конфигураций, на их основе пишешь конфигурацию для своих логов. Там все просто.
Тупо же удалять логфайл целиком, включая свежие данные - идиотизм.

thesis ★★★★★ ()
Ответ на: комментарий от upzap

удолять эти файлы нельзя. ибо зада стоит ТОЛЬКО очистить содержимое этих файлов

Я уже не знаю, как еще намекнуть тебе, что в exec можно запилить что угодно. И выше уже сказали про логротейт. Оно специально придумано для подобных вещей.

ymn ★★★★★ ()
Ответ на: комментарий от thesis

ну немогу я поставить. нет доступа у меня. понятное дело что руководство выкурить можно и тему неразводить здесь. удолять логи кстати приходится старые. свежие само собой нужны. подскажити скрипт на баше. как прошерстить все файлики.

upzap ()
Ответ на: комментарий от upzap

очистить содержимое этих файлов

find ./ -type f -name «*log*» -size +20M -exec : > {} \;

пробуй

anonymous ()

find ./ -type f -name «*log*» -size +20M -exec ls -lh {} \;

замени ls -lh на rm -Rf
т.е. твоя команда вместо вывода путей будет эти файлы удалять.

dada ★★★★★ ()

замени -exec ls -lh {} \; на -delete

teod0r ★★★★★ ()
Ответ на: комментарий от dada

работает. вбивал так:

your_file

и так: :> your_file

в обоих случаях содержимое лог файла стирается. с этим все класно. НО!

Мне нужно что то универсальное. Я повторюсь ещё раз, о том как происходит весь процесс.

Вбиваю: find ./ -type f -name «*log*» -size +20M -exec ls -lh {} \;

Получаю что то типо: -rw-r--r-- 2 root root 21M Sep 1 03:43./logs/error_log -rw-r--r-- 2 root root 22M Sep 1 03:45./logs/error2_log

Теперь чтобы незоходить по этим путям (./logs/error_log) и необнулять содержимое руками, мне нужен скрип или команда которая будет сама «обнулять» содержимое. Желательно чтобы я мог самостоятельно ей указывать об именах файллов. Например я точно знаю что в error_log и error2_log есть ТОЛЬКО логи и неважно превышают ли они 20 метров или нет. Какой нибудь greр я не знаю. Выж линуксойды должны понять с полуслова. Одним словом ПОМОГИТЕ МНЕ.

upzap ()
Ответ на: уходи алчный! от upzap

Помогают тем, кто хочет сам разобраться, а когда человек требует сделать всё за него, то никто не станет тратить своё время за бесплатно.

pedobear ()
Ответ на: комментарий от upzap

Тебе уже анон предлагал:

find ./ -type f -name «*log*» -size +20M -exec : > {} \;

Вот это место выдачи ссылок, обнулит файлы.

Но вообще что ты делаешь? Зачем удалять логи? Может их лучше жать? Или хоть удалять там, который старше недели.

Woklex ()
Ответ на: увы от upzap

Скопипастил сразу с анона, вроде лишние :

Так должно рабтать:

find ./ -type f -name "*log*" -size +20M -exec > {} \;

Сейчас под рукой нет Linux чтобы проверить, но вроде всё верно.

Woklex ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.