Üdv!
Szükségem lenne arra, hogy egy program figyelje a HDD-n lévő szabd területet. Továbbá, ha kezd szűkös lenni a helyzet :) , egy kijelölt mappából elkezdi törölgetni a legrégibb fájlokat.
Ubi 8.10
Egy zonemindert használnék jelenleg 40Gb-os HDD-n, de tartok tőle hamar meg fog telni. tudom kell majd nagyobb, de ennek ellenére jól jönne valami megoldás :)
Segítségeteket előre is köszönöm
Köszönet Kendek-nek a szkriptért
#!/bin/bash
# Automatikus futtatás:
#
# sudo su
# cp kameradelete /etc/init.d
# update-rc.d kameradelete start 99 2 3 4 5 .
#
#
# Az automatikus futtatás megszűntetése:
#
# sudo su
# update-rc.d -f kameradelete remove
# rm -rf /etc/init.d/kameradelete
dirpath="/usr/share/zoneminder/events" # A kamera könyvtárak elérési útvonala
dirs="kamera1 kamera2" # Azon kamera könyvtárak nevei, amelyekből majd törölni kell
disk="/dev/sda1" # A partíció, amelyről majd törölni kell
percent="80" # Százalékban az az érték, mely fölött a törlést végre kell hajtani
cycle ()
{
while [ 1 ]
do
dsku="$(df | grep "${disk}" | tr -s " " | cut -d " " -f 5 | sed "s+%++g")" # Az adott partíció használtsága százalékban
if [ "$(( dsku > percent ))" = "1" ] # Használtság ellenőrzése a megadotthoz képest
then
for del in ${dirs}
do
if [ "$(ls -A "${dirpath}/${del}")" ] # Biztonsági ellenőrzés
then rm -rf "${dirpath}/${del}/$(ls -Atr "${dirpath}/${del}" | head -n 1)" # A megadott könyvtárakon belül törli a módosítás dátuma alapján a legrégebbi elemeket
else sleep 10s # Üres kameraX könyvtár esetén 10 másodperc várakozás a túl gyors futás elkerülése végett
fi
done
else sleep 30s # Fél perces várakozás
fi
done
return # A "while" ciklus újrakezdése
}
cycle &