Как по мне отличный инструмент, мне все нравится!
В MajorDomo есть скрипт который отвечает за проверку места на диске checkFreeSpace
В итоге мы имее подобное предупреждение https://ibb.co/hFQkQ0M
Скрипт checkFreeSpace
Код: Выделить всё
$max_usage=90; //%
$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 ($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);
У меня "MD" установлен на "Ubuntu 20.04 LTS" в котором имеется приложения установленные при помощи snap
Диск заполнен всего на 5% но, "MD" предупреждает, что "Недостаточно места на диске..."
и если в терминале ввести команду df то, результат ниже. Мы видем "loop-ы" которые забиты на 100%...
Код: Выделить всё
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 844444 0 844444 0% /dev
tmpfs 177612 1588 176024 1% /run
/dev/sda3 241049600 11449248 228252592 5% /
tmpfs 888040 0 888040 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 888040 0 888040 0% /sys/fs/cgroup
/dev/sda3 241049600 11449248 228252592 5% /home
/dev/sda3 241049600 11449248 228252592 5% /snapshots
/dev/sda3 241049600 11449248 228252592 5% /var/cache
/dev/loop4 30720 30720 0 100% /snap/snapd/8542
/dev/loop0 162304 162304 0 100% /snap/chromium/1260
/dev/loop3 73344 73344 0 100% /snap/lxd/16723
/dev/loop1 56704 56704 0 100% /snap/core18/1885
/dev/loop2 63616 63616 0 100% /snap/gtk-common-themes/1506
/dev/loop5 30720 30720 0 100% /snap/snapd/8790
tmpfs 177608 8 177600 1% /run/user/113
tmpfs 177608 4 177604 1% /run/user/1001
Повторяем команду "df" но, с ключем df -x + "squashfs". Как по мне то, что "доктор" прописал!
Код: Выделить всё
$ df -x"squashfs"
Filesystem 1K-blocks Used Available Use% Mounted on
udev 844444 0 844444 0% /dev
tmpfs 177612 1588 176024 1% /run
/dev/sda3 241049600 11449236 228252604 5% /
tmpfs 888040 0 888040 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 888040 0 888040 0% /sys/fs/cgroup
/dev/sda3 241049600 11449236 228252604 5% /home
/dev/sda3 241049600 11449236 228252604 5% /snapshots
/dev/sda3 241049600 11449236 228252604 5% /var/cache
tmpfs 177608 8 177600 1% /run/user/113
tmpfs 177608 4 177604 1% /run/user/1001
Код: Выделить всё
$max_usage=90; //%
$output=array();
#exec('df',$output);
exec('df -x"squashfs"',$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 ($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);
Ну, и так же Вам пригодится скрипт, который удаляет старые "snap-ы"
Код: Выделить всё
#!/bin/bash
# Removes old revisions of snaps
# CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu
LANG=C snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
snap remove "$snapname" --revision="$revision"
done