Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Скрипт удаления логов сервера

Статус пользователя Paster
сообщение 27.5.2012, 22:55
Сообщение #1


Стаж: 19 лет

Сообщений: 491
Благодарностей: 64
Полезность: 139

Всем привет!
Устал удалять логи с сервера, особенно когда среверов более 10.
Интересует скрипт для удаления логов к примеру раз в месяц в папках:
Код
hlds/cstrike/logs
hlds/cstrike/addons/amxmodx/logs


Скрипт можно поставить в кронтаб, но как сделать чтоб логи удалялись только с датой пройденого месяца, новые логи чтоб не удалял...?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя voloxastik
сообщение 27.5.2012, 23:03
Сообщение #2
Стаж: 15 лет

Сообщений: 27
Благодарностей: 6
Полезность: 170

#!/bin/bash
# скрипт очистки логов для серверов
# чистит логи старше 7 дней
# запуск в кроне в 12 часов ночи каждый день
find /home/hlds/CSDM/cstrike/addons/amxmodx/logs -type f -ctime +7 -exec rm {} \;
find /home/hlds/CSDM/cstrike/logs -type f -ctime +7 -exec rm {} \;
find /home/hlds/hlds/cstrike/addons/amxmodx/logs -type f -ctime +7 -exec rm {} \;
find /home/hlds/hlds/cstrike/logs -type f -ctime +7 -exec rm {} \;

Отредактировал: voloxastik, - 27.5.2012, 23:04
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Paster
сообщение 28.5.2012, 8:56
Сообщение #3


Стаж: 19 лет

Сообщений: 491
Благодарностей: 64
Полезность: 139

Спасибо, то что надо thank_you2.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя нуб2
сообщение 28.5.2012, 9:18
Сообщение #4


Стаж: 14 лет

Сообщений: 2367
Благодарностей: 1209
Полезность: 1014

Я все понипю, но почему бы не юзать

Код
sv_log_onefile 1


а потом просто зачищать его до x последних строк?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя meloman_rus
сообщение 28.5.2012, 10:31
Сообщение #5


Стаж: 14 лет

Сообщений: 228
Благодарностей: 9
Полезность: 49

Цитата(voloxastik @ 28.5.2012, 0:03) *
#!/bin/bash
# скрипт очистки логов для серверов
# чистит логи старше 7 дней
# запуск в кроне в 12 часов ночи каждый день
find /home/hlds/CSDM/cstrike/addons/amxmodx/logs -type f -ctime +7 -exec rm {} \;
find /home/hlds/CSDM/cstrike/logs -type f -ctime +7 -exec rm {} \;
find /home/hlds/hlds/cstrike/addons/amxmodx/logs -type f -ctime +7 -exec rm {} \;
find /home/hlds/hlds/cstrike/logs -type f -ctime +7 -exec rm {} \;

Куда это писать? В server.cfg?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Саша
сообщение 28.5.2012, 11:20
Сообщение #6


Стаж: 16 лет

Сообщений: 1082
Благодарностей: 441
Полезность: 828

Цитата(meloman_rus @ 28.5.2012, 11:31) *
Куда это писать? В server.cfg?

В amxx.cfg
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя voloxastik
сообщение 28.5.2012, 13:06
Сообщение #7
Стаж: 15 лет

Сообщений: 27
Благодарностей: 6
Полезность: 170

Добавляется в Задания по расписанию (cron)
Подробнее Cron в Ubuntu

1)Редактируйте под спойлером под свои нужды и копируете все, например, в файл clear_logs.sh
clear_logs.sh
#!/bin/bash
# скрипт очистки логов для серверов
# чистит логи старше 7 дней
# запуск в кроне в 12 часов ночи каждый день
find /home/user/hlds/cstrike/addons/amxmodx/logs -type f -ctime +7 -exec rm {} \;
find /home/user/hlds/cstrike/logs -type f -ctime +7 -exec rm {} \;

2) Теперь нам надо чтобы этот скрипт запускался, ну допустим, в 12 часов ночи каждый день. Для этого введём команду
Код
crontab -e

Этой командой мы открываем для редактирования файл crontab для данного пользователя, в моём случае это user. Если нашему скрипту нужны права супер пользователя, то нужно редактировать crontab суперпользователя. Делается это командой
Код
sudo crontab -u root -e

Ну и если заменить root а логин другого пользователя, мы будем редактировать его crontab.
Сразу напишу, чтобы посмотреть файл crontab введите команду.
Код
crontab -l

Файл crontab имеет следующую структуру:
поле1 поле2 поле3 поле4 поле5 команда
Значения первых пяти полей:
1.минуты— число от 0 до 59
2.часы — число от 0 до 23
3.день месяца — число от 1 до 31
4.номер месяца в году — число от 1 до 12
5.день недели — число от 0 до 7 (0-Вс,1-Пн,2-Вт,3-Ср,4-Чт,5-Пт,6-Сб,7-Вс)
Все поля обязательны для заполнения. Не сложно догадаться что первые 5 отвечают за определения периодичности запуска команды, а последняя собственно команда или полный путь к скрипту. Таким образом, чтобы запустить наш скрипт очистки логов надо вписать следующую строчку.
Код
01 00 * * * /home/user/clear_logs.sh


Отредактировал: voloxastik, - 28.5.2012, 13:09
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: