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

Тема в разделе "Linux", создана пользователем TolikCorp, 4 авг 2013.

  1. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    Решил поделиться простым скриптом, который очищает сервер от устаревших лог-файлов, демо-записей средствами 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  +-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  +-exec rm {} \;  -print >> cleaning_logs_${date}.log
       fi
    ####################################################
    # Очистка логов Server
       
    if [ "$clean_server_logs-eq "1" ]; then
          find 
    ./$game_mod/logs -mtime  +-exec rm {} \;  -print >> cleaning_logs_${date}.log
       fi
    ####################################################
    # Авто-Удаление логов очистики
       
    find ./ -maxdepth 1 -mtime  +-name "cleaning_logs_*" -exec rm {} \;  -print 
    ####################################################
    Запуск через планировщик:
    crontab -e
    Далее, в конец вписываем:
    PHP:
    30 6 * * * cd /home/css_1 && bash ПУТЬ_ДО_СКРИПТА
    Т.Е. каждый день в 6:30 по серверному времени будет выполняться скрипт
     
    Последнее редактирование: 24 авг 2013
    BMW M6, ★Сириус★, rik1 и 6 другим нравится это.
  2. pihmih

    pihmih

    Сообщения:
    518
    Симпатии:
    23
    Как правильно запустить этот скрипт через крон?
     
    Dmitry Bannik нравится это.
  3. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    crontab -e
    Далее, в конец вписываем:
    30 6 * * * cd /home/css_1 && bash ПУТЬ_ДО_СКРИПТА
     
    pihmih нравится это.
  4. zlodeyoleg

    zlodeyoleg

    Сообщения:
    17
    Симпатии:
    7
  5. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    Ты меня извини за грубость, засунь этот метод себе знаешь куда, ну ты понял.

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

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

    pihmih

    Сообщения:
    518
    Симпатии:
    23
    Что то cleaning_logs у меня не удаляются.
     
  7. TolikCorp

    TolikCorp

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

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

    pihmih

    Сообщения:
    518
    Симпатии:
    23
    Конечно старее, тем более я на 3 изменил.
     
  9. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    может быть свяжемся по скайпу, помогу
     
  10. pihmih

    pihmih

    Сообщения:
    518
    Симпатии:
    23
    скайп отправил в сообщения.
     
  11. TolikCorp

    TolikCorp

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

    zanoza73

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

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

    Tallanvor Красноглазый

    Сообщения:
    1.107
    Симпатии:
    317
    zanoza73,
     
    zanoza73 нравится это.
  14. zanoza73

    zanoza73

    Сообщения:
    348
    Симпатии:
    74
    сделал спс
     
    Последнее редактирование: 23 апр 2014
  15. zanoza73

    zanoza73

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

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

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    ну, окей, пусть будет срач из миллионов файлов логов удаления
     
  17. zanoza73

    zanoza73

    Сообщения:
    348
    Симпатии:
    74
    убрать их вообще, как я сделал:) зачем лишний лог?
    #!/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
    ####################################################
     
    Последнее редактирование: 25 май 2014
  18. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    Вот так - ок. А то создание чего-то без своевременного удаления - не ок)
     
  19. zanoza73

    zanoza73

    Сообщения:
    348
    Симпатии:
    74
    я просто подумал не зачем лишние логи создавать:-D
     
  20. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    Попробуй еще BACKUP скрипт (в соседней теме)
     
    zanoza73 нравится это.