nie wiem o wszelkich biblioteki, która robi to, ale może po prostu uruchomić mount
i zwrócić wszystkie punkty montowania w postaci listy z czymś takim:
import commands
mount = commands.getoutput('mount -v')
mntlines = mount.split('\n')
mntpoints = map(lambda line: line.split()[2], mntlines)
Kod pobiera cały tekst z mount -v
polecenie, dzieli dane wyjściowe na listę linii, a następnie analizuje każdą linię dla trzeciego pola reprezentującego ścieżkę punktu montowania.
Jeśli chcesz użyć df
następnie można to zrobić też, ale trzeba usunąć pierwszy wiersz, który zawiera nazwy kolumn:
import commands
mount = commands.getoutput('df')
mntlines = mount.split('\n')[1::] # [1::] trims the first line (column names)
mntpoints = map(lambda line: line.split()[5], mntlines)
Gdy masz punkty montowania (mntpoints
lista) można użyć for in
przetworzyć każdy z kodu:
for mount in mntpoints:
# Process each mount here. For an example we just print each
print(mount)
Python posiada moduł przetwarzania poczty elektronicznej o nazwie smtplib
i można znaleźć informacje w Python docs
Zależy. Co masz na myśli przez "monitor"? Jeśli chcesz po prostu wysłać wiadomość e-mail, gdy coś się zmieni, będzie to bardzo łatwe w bash, ale jeśli chcesz czegoś bardziej skomplikowanego, szybko zorientujesz się, że python jest do zrobienia. – ventsyv
Przykro mi, miałem na myśli napisanie zadania cron, które sprawdza miejsce zajmowane we wszystkich punktach montowania i wysyła wiadomość e-mail, jeśli osiągnie określony próg. – drunkenfist
Dlaczego nie używać obu? @ventsyv, słusznie zauważył, bash byłby bardzo łatwy do uzyskania dostępu do plików w systemie Linux. Wysyłanie powiadomień pocztą e-mail można również wykonać za pomocą bash, ale można to zrobić bez wysiłku w pythonie i można utworzyć prosty skrypt bash, aby połączyć te skrypty. –