[СКРИПТ] Очистка Демо-Записей, логов SourceMod, логов сервера

TolikCorp

Участник
Сообщения
874
Реакции
334
Решил поделиться простым скриптом, который очищает сервер от устаревших лог-файлов, демо-записей средствами Linux.

Запускать в каталоге с сервером.
game_mod - это папка с самим модом игры. Например, cstrike, tf и т.д.

PHP:
#!/bin/sh/
####################################################
   date=`date +%F`
# Папка с модом игры
   game_mod="cstrike"
   clean_demos="1"
   clean_sourcemod_logs="1"
   clean_server_logs="1"
####################################################
# Очистка Демо-Записей
   if [ "$clean_demos" -eq "1" ]; then
      find ./$game_mod -maxdepth 1 -mtime  +7 -name ".dem" -exec rm {} \;  -print > cleaning_logs_${date}.log
   fi
####################################################
# Очистка логов SourceMod
   if [ "$clean_sourcemod_logs" -eq "1" ]; then
      find ./$game_mod/addons/sourcemod/logs -mtime  +7 -exec rm {} \;  -print >> cleaning_logs_${date}.log
   fi
####################################################
# Очистка логов Server
   if [ "$clean_server_logs" -eq "1" ]; then
      find ./$game_mod/logs -mtime  +7 -exec rm {} \;  -print >> cleaning_logs_${date}.log
   fi
####################################################
# Авто-Удаление логов очистики
   find ./ -maxdepth 1 -mtime  +7 -name "cleaning_logs_*" -exec rm {} \;  -print 
####################################################

Запуск через планировщик:
crontab -e
Далее, в конец вписываем:
PHP:
30 6 * * * cd /home/css_1 && bash ПУТЬ_ДО_СКРИПТА
Т.Е. каждый день в 6:30 по серверному времени будет выполняться скрипт
 
Последнее редактирование:

pihmih

Участник
Сообщения
512
Реакции
23
Как правильно запустить этот скрипт через крон?
 

TolikCorp

Участник
Сообщения
874
Реакции
334
crontab -e
Далее, в конец вписываем:
30 6 * * * cd /home/css_1 && bash ПУТЬ_ДО_СКРИПТА
 

TolikCorp

Участник
Сообщения
874
Реакции
334
Ты меня извини за грубость, засунь этот метод себе знаешь куда, ну ты понял.

1) Тема расположена в разделе Linux
2) В начале первого сообщения я указал, что очистка СРЕДСТВАМИ LINUX

Ах да, этот скрипт можно легко вшить в скрипт запуска каждого сервера. И сервер будет очищаться от ненужных файлов при запуске. А плагин сурсмода тратит N оперативной памяти, да и нагружает сервер. Особенно те, у кого ДМ на 64 человека есть - там каждый плагин на счету.
 
Последнее редактирование:

pihmih

Участник
Сообщения
512
Реакции
23
Что то cleaning_logs у меня не удаляются.
 

TolikCorp

Участник
Сообщения
874
Реакции
334
А он у тебя уже старше 7 дней?
Расшифрую немного:
find ./ -maxdepth 1 -mtime +7 -name "cleaning_logs_" -exec rm {} \; -print

"-mtime +7" Условие отбора файла, а именно Изменен Более 7 дней назад
 

pihmih

Участник
Сообщения
512
Реакции
23
А он у тебя уже старше 7 дней?
Расшифрую немного:
find ./ -maxdepth 1 -mtime +7 -name "cleaning_logs_" -exec rm {} \; -print

"-mtime +7" Условие отбора файла, а именно Изменен Более 7 дней назад
Конечно старее, тем более я на 3 изменил.
 

TolikCorp

Участник
Сообщения
874
Реакции
334
может быть свяжемся по скайпу, помогу
 

TolikCorp

Участник
Сообщения
874
Реакции
334
Исправили баг неудаления самих логов очистки:
Должно быть так: find ./ -maxdepth 1 -mtime +7 -name "cleaning_logs_*" -exec rm {} \; -print
 

zanoza73

Участник
Сообщения
345
Реакции
75
вот что ваш скрипт выдаёт:
find: `./cstrike': Нет такого файла или каталога
find: `./cstrike/addons/sourcemod/logs': Нет такого файла или каталога
find: `./cstrike/logs': Нет такого файла или каталога

как это исправить?
 

zanoza73

Участник
Сообщения
345
Реакции
75
# Авто-Удаление логов очистики
find ./ -maxdepth 1 -mtime +7 -name "cleaning_logs_*" -exec rm {} \; -print
####################################################

вот эта строчка по сути не нужна.
 

TolikCorp

Участник
Сообщения
874
Реакции
334
ну, окей, пусть будет срач из миллионов файлов логов удаления
 

zanoza73

Участник
Сообщения
345
Реакции
75
ну, окей, пусть будет срач из миллионов файлов логов удаления

убрать их вообще, как я сделал:) зачем лишний лог?
#!/bin/sh/
####################################################
date=`date +%F`
# Папка с модом игры
game_mod="cstrike"
clean_demos="1"
clean_sourcemod_logs="1"
clean_server_logs="1"
####################################################
# Очистка Демо-Записей
if [ "$clean_demos" -eq "1" ]; then
find ./$game_mod -maxdepth 1 -mtime +3 -name ".dem" -exec rm {} \;
fi
####################################################
# Очистка логов SourceMod
if [ "$clean_sourcemod_logs" -eq "1" ]; then
find ./$game_mod/addons/sourcemod/logs -mtime +3 -exec rm {} \;
fi
####################################################
# Очистка логов Server
if [ "$clean_server_logs" -eq "1" ]; then
find ./$game_mod/logs -mtime +3 -exec rm {} \;
fi
####################################################
 
Последнее редактирование:

TolikCorp

Участник
Сообщения
874
Реакции
334
Вот так - ок. А то создание чего-то без своевременного удаления - не ок)
 
Сверху Снизу