Skip to content

Commit 68abec7

Browse files
Alexey PortnovAlexey Portnov
authored andcommitted
Добавлена защита от раздутых логов в safe.php: обрезка файлов превышающих 20MB
1 parent b700755 commit 68abec7

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

bin/safe.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* If not, see <https://www.gnu.org/licenses/>.
1818
*/
1919

20+
use MikoPBX\Core\System\System;
2021
use MikoPBX\Core\System\Util;
2122
use MikoPBX\Core\System\Processes;
2223
use MikoPBX\Core\System\SystemMessages;
@@ -46,3 +47,23 @@
4647
}
4748
}
4849
}
50+
51+
// Проверка размеров лог-файлов. Если ротация не сработала и файл превысил 2x лимит — обрезаем.
52+
$logDir = System::getLogDir() . '/ModuleAmoCrm';
53+
$maxSize = 20 * 1024 * 1024; // 2x от лимита ротации (10MB)
54+
if (is_dir($logDir)) {
55+
$files = glob($logDir . '/*.log');
56+
if (is_array($files)) {
57+
foreach ($files as $file) {
58+
$size = filesize($file);
59+
if ($size !== false && $size > $maxSize) {
60+
$logName = basename($file);
61+
SystemMessages::sysLogMsg('AMO_SAFE', "Log $logName exceeds limit ({$size} bytes), truncating.", LOG_WARNING);
62+
$fh = fopen($file, 'w');
63+
if ($fh !== false) {
64+
fclose($fh);
65+
}
66+
}
67+
}
68+
}
69+
}

0 commit comments

Comments
 (0)