• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела wpt лично.

Переполнение диска кэшем Битрикс | Решение

KPACHODAP

DELETED
Регистрация
21 Дек 2009
Сообщения
685
Реакции
313
Доброго дня всем! Во всех новых версиях битрикс сть проблема с автокеширование и его регулярной чисткой, кто шарит под php 8.2+ есть какое нибудь решение по очистке битрекса ежедневно в определенное время? То есть чтобы не заходит в сам битрикс и не делать чистку самостоятельно регулярно((((( Всем буду благодарен! Пробовал через агента и init.pnp не выходит(, все также приходится заходить и чистить, так как сайты переполняют хостинг-сервер!
 
делаешь скрипт -rm rf /папка с кэшем. Вешаешь на крон.
 
А есть еще ли какие то варианты удаления кэша по таймингу к примеру раз в день в час ночи или там другие параметры!?! Может есть какие нить проверенные платные решения посредствам php обычного?
 
Последнее редактирование:
Доброго дня всем! Во всех новых версиях битрикс сть проблема с автокеширование и его регулярной чисткой, кто шарит под php 8.2+ есть какое нибудь решение по очистке битрекса ежедневно в определенное время? То есть чтобы не заходит в сам битрикс и не делать чистку самостоятельно регулярно((((( Всем буду благодарен! Пробовал через агента и init.pnp не выходит(, все также приходится заходить и чистить, так как сайты переполняют хостинг-сервер!
Попробуйте этот код подвесить на крон. Крон позволит вам назанчит нужное время удаления, например ночью, и переодичность.
Но это плохой вариант, потому что подобное удаление кеша это костыль. Вам нужно разобраться в сути проблемы. Возможно у вас кешируется меню (когда много ролей и пользователей будет кешироваться каждый вариант, может фильтр...), нужно найти компонент который заполняет кешь, а не избавляться от него подобным способом.

PHP:
<?php
$cachePaths = [
    $_SERVER['DOCUMENT_ROOT'] . '/bitrix/cache/',
    $_SERVER['DOCUMENT_ROOT'] . '/bitrix/managed_cache/',
];

function clearCacheDirectory($dir) {
    if (!is_dir($dir)) {
        return;
    }

    $files = array_diff(scandir($dir), ['.', '..']);
    foreach ($files as $file) {
        $path = $dir . '/' . $file;
        if (is_dir($path)) {
            clearCacheDirectory($path);
            rmdir($path);
        } else {
            unlink($path);
        }
    }
}

// Очищаем каждую папку кеша
foreach ($cachePaths as $path) {
    if (is_dir($path)) {
        clearCacheDirectory($path);
        echo "Кеш очищен в папке: $path\n";
    } else {
        echo "Папка не найдена: $path\n";
    }
}

echo "Очистка кеша завершена.\n";
 
Назад
Сверху