File Cleanup

File Cleanup 1.0.3

Нет прав для скачивания

Kruzya

[Server Monitor] Core: maybe 70%
Команда форума
Сообщения
8,986
Реакции
7,201
Крузяра submitted a new resource:

File Cleanup - Небольшой чистильщик "мусорных" файлов

Небольшой плагин-ответвление, основывающийся на плагине подобного же характера из одной из тем на форуме, который удалял демки.
Теперь с конфигом для возможности настройки, что и где удалять.
Read more about this resource...
 

Kruzya

[Server Monitor] Core: maybe 70%
Команда форума
Сообщения
8,986
Реакции
7,201
@pentaxist, если на скриншоте время файла запечатлено по Московскому часовому поясу - всё правильно. 7 часов ведь ещё не прошло. Только 4.5 часа.
 

Kruzya

[Server Monitor] Core: maybe 70%
Команда форума
Сообщения
8,986
Реакции
7,201
@pentaxist, когда потерял счёт времени.
Дискорд есть? Проще там сначала разобраться, потом выкатывать обновление (если баг действительно есть).
 
Сообщения
59
Реакции
2
@Крузяра, в чём ошибка?
/**
* Configuration file for [ANY] File Cleanup.
*/

// Root section. DON'T TOUCH THIS!
"FileCleanup"
{
/**
* Here you can create your own sections.
* For example:
* -> Here we're clean all logs in default game directory.
* -> We're described ALL AVAILABLE parameters (include OPTIONALS).
*
* Section name can be used for rendering in error logs if you something fill incorrect.
*/
"Game Logs"
{
/**
* Path to directory where we should find all files.
* NOTE: path surely should ends with backslash ("/")!
*/
"path" "logs/"

/**
* Life time for file.
* Get's a string representation for time.
*
* i - minute.
* h - hour.
* d - day.
* m - month.
* y - year.
*
* For example, record "3i5h1d" will be readed as "1 day, 5 hours, 3 minutes" or 104580 seconds from last time.
*/
"lifetime" "7h"

/**
* Used time mode for checking.
*
* 0 - last access (doesn't work on FAT filesystems)
* 1 - created (doesn't work on FAT filesystems)
* 2 - last modification
*
* OPTIONAL. If this parameter not passed, used "last modification" mode.
*/
"timemode" "2"

/**
* Check subdirectories when searching files on delete?
*
* 0 - no.
* 1 - yes.
*
* OPTIONAL. If this parameter not passed, used "no" value.
*/
"include_subdirectories" "1"

/**
* Adds check for filename starting.
*
* OPTIONAL. If you leave this parameter empty, or remove fully - plugin doesn't try check filename starting.
*/
"starts_with" ""

/**
* Adds check for filename ending.
* Usually can be used for deleting files with special extension (like .dem or .log)
*
* OPTIONAL. If you leave this parameter empty, or remove fully - plugin doesn't try check filename ending.
*/
"ends_with" ".log"

/**
* NOTE: if you pass "starts_with" and "ends_with", plugin delete file ONLY WHEN BOTH CONDITIONS IS A TRUE.
*/
}

/**
* And, for example, simple rule for:
* -> Deleting demos in server root
* -> Doesn't check subdirectories
* -> Only older 3 days from date last accessing.
*/
"Recorded games (.dem)"
{
"path" "/addons/sourcemod/data/demos/"
"lifetime" "7h"
"timemode" "2"
"ends_with" ".dem"
}
"Recorded games (result)"
{
"path" "/addons/sourcemod/data/demos/"
"lifetime" "7h"
"timemode" "2"
"starts_with" "result"
}
}
Постоянно пишет:
[File Cleanup] Nothing to delete in logs/.
[File Cleanup] Nothing to delete in /addons/sourcemod/data/demos/.
[File Cleanup] Nothing to delete in /addons/sourcemod/data/demos/.
[File Cleanup] Nothing to delete in /addons/sourcemod/data/demos/.

Такая же проблема, обращался в телеграмм со скриншотами и проблемой более месяца назад, ждал обновление, думал с обновлением проблема исчезнет, но увы нет.
 
Последнее редактирование:

Kruzya

[Server Monitor] Core: maybe 70%
Команда форума
Сообщения
8,986
Реакции
7,201
@sviridov_artem, исправлялась другая проблема.
В Телеграмме, к сожалению, личка очень быстро теряется, а проблемы из головы со временем - вылетают.
 

Kruzya

[Server Monitor] Core: maybe 70%
Команда форума
Сообщения
8,986
Реакции
7,201
Пользователь Крузяра обновил ресурс File Cleanup новой записью:

Обновление до 1.0.3

  • Исправлена ошибка, из-за которой фильтр по времени не работал корректно.
  • Исправлена ошибка, из-за которой фильтр по окончанию файла не срабатывал.
  • Добавлена мини-отладка. Для её активации необходимо закомментировать строку под номером 60, откомментировать строку под номером 59.

Выражаю благодарность @sviridov_artem за тестирование обновления.
Выражаю благодарность @pentaxist за предоставление тестовой площадки (сервера)...
Узнать больше об этом обновлении...
 
Сообщения
202
Реакции
31
Код:
L 05/30/2019 - 14:52:37: [FileCleanup.smx] [File Cleanup] Can't start cleanup with keyname Game Logs: passed directory (logs/) doesn't exists.
Ничего не менял в конфиге, просто залил из архива (плагин скомпилировал). Все логи хранятся в addons/sourcemod/logs/ и последующих каталогах.
 

Kruzya

[Server Monitor] Core: maybe 70%
Команда форума
Сообщения
8,986
Реакции
7,201
@teran, если ожидаете чистку логов SM - путь укажите полный.
В стандартном конфиге чистится именно папка логов самого движка (по-умолчанию, выключено).
 
Сообщения
76
Реакции
17
Помечает демки но не удаляет в чем трабл? @Крузяра

 
Последнее редактирование модератором:

Kruzya

[Server Monitor] Core: maybe 70%
Команда форума
Сообщения
8,986
Реакции
7,201
@Сергей68, игра? SM? Как конфиг вообще выглядит?
Вместо отправки скриншотов под оффтоп, используйте тег спойлера:
upload_2019-6-17_6-28-50.png
 
Сообщения
76
Реакции
17
@Сергей68, игра? SM? Как конфиг вообще выглядит?
Вместо отправки скриншотов под оффтоп, используйте тег спойлера:
Посмотреть вложение 42758
Игра SM CSGO 1.9 stable
PHP:
/**
 * Configuration file for [ANY] File Cleanup.
 */

// Root section. DON'T TOUCH THIS!
"FileCleanup"
{
  /**
   * Here you can create your own sections.
   * For example:
   * -> Here we're clean all logs in default game directory.
   * -> We're described ALL AVAILABLE parameters (include OPTIONALS).
   *
   * Section name can be used for rendering in error logs if you something fill incorrect.
   */
  "Game Logs"
  {
    /**
     * Path to directory where we should find all files.
     * NOTE: path surely should ends with backslash ("/")!
     */
    "path"                      "logs/"

    /**
     * Life time for file.
     * Get's a string representation for time.
     *
     * i - minute.
     * h - hour.
     * d - day.
     * m - month.
     * y - year.
     *
     * For example, record "3i5h1d" will be readed as "1 day, 5 hours, 3 minutes" or 104580 seconds from last time.
     */
    "lifetime"                  "3d"

    /**
     * Used time mode for checking.
     *
     * 0 - last access (doesn't work on FAT filesystems)
     * 1 - created (doesn't work on FAT filesystems)
     * 2 - last modification
     *
     * OPTIONAL. If this parameter not passed, used "last modification" mode.
     */
    "timemode"                  "2"

    /**
     * Check subdirectories when searching files on delete?
     *
     * 0 - no.
     * 1 - yes.
     *
     * OPTIONAL. If this parameter not passed, used "no" value.
     */
    "include_subdirectories"    "1"

    /**
     * Adds check for filename starting.
     *
     * OPTIONAL. If you leave this parameter empty, or remove fully - plugin doesn't try check filename starting.
     */
    "starts_with"               ""

    /**
     * Adds check for filename ending.
     * Usually can be used for deleting files with special extension (like .dem or .log)
     *
     * OPTIONAL. If you leave this parameter empty, or remove fully - plugin doesn't try check filename ending.
     */
    "ends_with"                 ""

    /**
     * NOTE: if you pass "starts_with" and "ends_with", plugin delete file ONLY WHEN BOTH CONDITIONS IS A TRUE.
     */
  }

  /**
   * And, for example, simple rule for:
   * -> Deleting demos in server root
   * -> Doesn't check subdirectories
   * -> Only older 3 days from date last accessing.
   */
  "Recorded games (.dem)"
  {
    "path"                      "demos/"
    "lifetime"                  "3i"
    "timemode"                  "2"
    "ends_with"                 ".dem"
  }
}
 

Kruzya

[Server Monitor] Core: maybe 70%
Команда форума
Сообщения
8,986
Реакции
7,201
@Сергей68, в error-логах ничего нет?
Гибернация отключена?
 

Kruzya

[Server Monitor] Core: maybe 70%
Команда форума
Сообщения
8,986
Реакции
7,201
Гибернация ? где посмотреть?
В консоль сервера: sv_hibernate_when_empty. В ответ выведет эту же строку, и цифру: 0 или 1.
В идеале, должен стоять 0.

Так же, гибернация автоматически отключается без изменения цифры в этом параметре при включении GOTV.
 
Сообщения
76
Реакции
17
В консоль сервера: sv_hibernate_when_empty. В ответ выведет эту же строку, и цифру: 0 или 1.
В идеале, должен стоять 0.

Так же, гибернация автоматически отключается без изменения цифры в этом параметре при включении GOTV.
sv_hibernate_when_empty
"sv_hibernate_when_empty" = "0" ( def. "1" ) - Puts the server into extremely low CPU usage mode when no clients connected
 

Kruzya

[Server Monitor] Core: maybe 70%
Команда форума
Сообщения
8,986
Реакции
7,201
Попробуйте перекомпилировать плагин компилятором от своего SourceMod. Странно это всё.
 

Kruzya

[Server Monitor] Core: maybe 70%
Команда форума
Сообщения
8,986
Реакции
7,201
Понаблюдав за комментариями и вопросами на всех форумах по составлению конфигурации, решил перевести файл на русский, и привести пару простых примеров, которые могут быть полезно.
Код:
/**
* Конфигурационный файл для плагина [ANY] File Cleanup.
*/

// Корневая секция. НЕ ВИДОИЗМЕНЯЙТЕ ЕЁ!
"FileCleanup"
{
  /**
   * Здесь Вы можете создавать свои собственные секции-правила для удаления файлов.
   * К примеру, в этой секции мы привели в качестве примера:
   * -> Удаление всех логов движка/мода (.../csgo/logs - для CS:GO).
   * -> Описали ВСЕ ДОСТУПНЫЕ параметры (включая опциональные).
   *
   * Имя секции-правила используется для записи в логах всех ошибок и состояний, если что-то заполнено неверно.
   * ЗАМЕТКА: Имя секции может быть названо на русском, но не рекомендуется.
   */
  "Game Logs"
  {
    /**
     * Путь к папке, которую плагин должен обрабатывать.
     * Путь заполняется от корня мода (csgo/cstrike/tf/l4d2/hl2mp).
     * ЗАМЕТКА: путь обязательно должен заканчиваться слешем ("/")!
     */
    "path"                      "logs/"

    /**
     * Максимальное время жизни для файла.
     * Представлено в виде строки, описывающее время.
     *
     * i - минута.
     * h - час.
     * d - день.
     * m - месяц.
     * y - год.
     *
     * К примеру, запись "3i5h1d" будет прочитана как "1 день, 5 часов и 3 минуты", или 104580 секунд.
     */
    "lifetime"                  "3d"

    /**
     * Используемый вид времени для проверки.
     *
     * 0 - с момента последнего доступа (не будет работать на файловых системах FAT)
     * 1 - с момента создания (не будет работать на файловых системах FAT)
     * 2 - с момента последнего изменения
     *
     * ПАРАМЕТР НЕОБЯЗАТЕЛЕН. Если он не указан явно, используется режим "с момента последнего изменения".
     */
    "timemode"                  "2"

    /**
     * Просматривать подпапки при поиске файлов на удаление?
     *
     * 0 - нет.
     * 1 - да.
     *
     * ПАРАМЕТР НЕОБЯЗАТЕЛЕН. Если он не указан явно, используется значение "нет" (подпапки не просматриваются).
     */
    "include_subdirectories"    "1"

    /**
     * Добавляет правило "с чего имя файла должно начинаться".
     *
     * ПАРАМЕТР НЕОБЯЗАТЕЛЕН. Если Вы оставите его пустым, или удалите полностью - плагин не будет проверять, с чего начинается имя файла.
     */
    "starts_with"               ""

    /**
     * Добавляет правило "как имя файла должно заканчиваться".
     * Как правило, может использоваться для удаления файлов со специальными расширениями (вроде .dem или .log).
     *
     * ПАРАМЕТР НЕОБЯЗАТЕЛЕН. Если Вы оставите его пустым, или удалите полностью - плагин не будет проверять окончание имени файла.
     */
    "ends_with"                 ""

    /**
     * ЗАМЕТКА: если Вы укажете и "starts_with" и "ends_with", плагин будет удалять только те файлы, которые УДОВЛЕТВОРЯЮТ ДВУМ УСЛОВИЯМ ОДНОВРЕМЕННО.
     */
  }

  /**
   * И, для примера, простой набор правил для:
   * -> Удаления файлов демок в корне сервера (.../csgo)
   * -> Не проверяет подпапки
   * -> Производит удаление, только если прошло 3 дня с момента последнего доступа
   */
  "Recorded games (.dem)"
  {
    "path"                      "/"
    "lifetime"                  "3d"
    "timemode"                  "0"
    "ends_with"                 ".dem"
  }
}
Секций с набором правил в конфигурационном файле может быть сколько угодно (лимит есть, но не явный: это кол-во Вашей оперативной памяти).

Разберём каждый параметр чуть подробнее (выделенное красным - обязательно, зелёным - опционально):
  • Имя секции. Не совсем параметр, но почему бы и не рассмотреть и его. По сути, используется только при записи в логах ошибок и отладочной информации. В общем, заполняете его для себя.
  • Путь к файлам. Путь к папке, которая должна обрабатываться плагином. Обязательно должен заканчиваться на слеш (/). Корневой точкой считается папка мода (на примере LGSM и CSGO - .../serverfiles/csgo).
  • Максимальное время жизни файлов. Промежуток времени, в течении которого файлы должны жить. Указывается в виде строки с перечислением чисел и типа времени. К примеру, можно дать жить файлам целый год записью 1y, а можно и полгода + 2 недели (6m14d).
  • Тип времени. Указывается вид времени, с которого начинается отсчёт жизни файла. По-умолчанию, используется кроссплатформенный, гарантированно работающий везде режим - "С момента последнего изменения".
  • Проверять подпапки. По-умолчанию, плагин не проверяет подпапки. Можно явно указать запрет/разрешение на выполнение этой операции.
  • Подстрока, с которой имя файла должно начинаться. Если указано, проверяется, начинается ли имя "подозреваемого файла" с этой подстроки.
  • Подстрока, на которую имя файла должно заканчиваться. Если указано, проверяется, заканчивается ли имя "подозреваемого файла" на эту подстроку.
Если указывается сразу и подстрока начала, и подстрока конца - ожидается выполнение двух условий сразу.

И пару примеров для закрепления.
  1. Если мы хотим удалять все логи SourceMod, которые старше 7 дней:
    Код:
     "SourceMod logs"
      {
        "path" "addons/sourcemod/logs/"
        "lifetime" "7d"
        "timemode" "2"
        "ends_with" ".log" // необязательно
      }
  2. Если мы хотим удалять файлы от плагина автозаписи демок старше суток:
    Код:
     "AutoDemo recorder :: Temporary files"
      {
        "path" "addons/sourcemod/data/demos/"
        "lifetime" "1d"
        "timemode" "2"
      }
 
Сверху