MaxVM писал(а): ↑Пн апр 20, 2020 12:45 pm
......
Спустя день появилось сообщение
Недостаточно места на диске (/snap/core/8935: 100; /snap/core/8268: 100;)
.....
Подскажите как поправить ......
Такая проблема похоже проявляется при переносе образа с "Малинки" не ББ. СУть в том, что последние дистры используют SNAP а он как-раз и формирует это "проблемные" разделы.
Надо модернизировать скрипт "checkFreeSpace".
Моя реализация такая:
Код: Выделить всё
$max_usage=60; //%
$output=array();
exec('df',$output);
//var_dump($output);
$problems=0;
$problems_details='';
foreach($output as $line) {
if (preg_match('/(\d+)% (\/?.+)/',$line,$m))
// $proc=$m[1];
$path=$m[2];
if(stristr($path, 'snap') === FALSE) {
$proc=$m[1]; // не найдено
} else {
$proc=0; // а вот если нашли, то обнуляем
}
if ($proc>$max_usage) {
$problems++;
$problems_details.="$path: $proc; ";
}
//echo "$path: $proc%<br/>";
}
sg("ThisComputer.SpaceProblems",$problems);
sg("ThisComputer.SpaceProblems_Details",$problems_details);
setTimeOut('checkFreeSpace','runScript("checkFreeSpace");',5*60);
Да кстати повторюсь тут (сорри всем за спам, кто читал это в теме по RPI4):
В скрипте checkFreeSpace (в образе 4.44) есть неточность.
При проверке свободного места фактически не проверяется место в корне (/) - скрипт банально его не видит

Исправление: заменить 8ую строку
с: if (preg_match('/(\d+)% (\/.+)/',$line,$m))
на: if (preg_match('/(\d+)% (\/?.+)/',$line,$m))
(по факту добавить знак вопроса перед точкой).
PS: просьба к Гуру - помидорами не закидывайте, если такое решение может быть проблемным - напишите пожалуйста.