Mam proste pytanie (nie wiem jak z relizacją):
Jaką w wypadku systemu xfs z ustawioną quotą wylistować wyłącznie
użytkowników którzy mają przekroczony bsoft limit ?
-----
Na serwerze (Debian Linux) mam xfs. Mam trzy grupy użytkowników,
z których każda ma inny limit. Dla każdej ustawiam quotę jak poniżej:
cat ./user-max.txt | while read user_name; do
xfs_quota -x -c "limit bsoft=900m bhard=1000m $user_name" /home <
./user-list-01.txt
done
Czyli próg zadziałania to 90%.
Raport quoty daje mi taki wynik:
[...]
aaa 76 0 0 00 [--------]
bbbbbbbb 1246464 0 0 00 [--------]
ccccccc 1870072 1843200 2048000 00 [5 days]
ddddd 2788684 3891200 4096000 00 [--------]
eeeeeeee 55360 921600 1024000 00 [--------]
Mogę użyć awk i wyciągnąć z tej listy takich ludzi na zasadzie:
/usr/sbin/xfs_quota -x -c report /home | grep day | awk '{print $1}' >
/tmp/list.txt
ale kiedy czas minie to nie zadziała.
Mogę też napisać skrypt; dla każdego usera odejmij wartość z kolumny
4 od wartości z kolumny 2 i jeśli jest ona mniejsza od zakładanej
wartości wrzuć nazwę tego usera do pliku. To jest jednak również
połowicznym rozwiazaniem bo muszę w takim wypadku założyć że
każdy user będzie miał limit nie na poziomie 90%, ale na poziomie
np. 100MB.
Jak to zrobić? Nie wierzę że taki system jak xfs nie ma takiej opcji.
Dzięki za ewentualną pomoc.
M.