Piszę instalator w bash. Użytkownik przejdzie do katalogu docelowego i uruchomi skrypt instalacyjny, więc pierwszą czynnością powinno być sprawdzenie, czy jest wystarczająco dużo miejsca. Wiem, że df zgłosi wszystkie systemy plików, ale zastanawiałem się, czy istnieje sposób na uzyskanie wolnego miejsca tylko dla partycji, na której znajduje się katalog docelowy.
Edycja - odpowiedź, którą wymyśliłem
df $PWD | awk '/[0-9]%/{print $(NF-2)}'
Nieco dziwne ponieważ df wydaje się formatować swoje wyjście tak, aby pasowało do terminala, więc przy długiej nazwie punktu montowania wyjście jest przesuwane w dół o linię
-P
flagidf
, aby uzyskać wszystko w jednej linii.du -hs .
z wyświetlaniem miejsca na dysku używanego dla bieżącego katalogu.Odpowiedzi:
Tak:
dla bieżącego katalogu.
jeśli chcesz sprawdzić konkretny katalog.
Możesz również sprawdzić
stat(1)
polecenie, jeśli Twój system je ma. Możesz określić formaty wyjściowe, aby ułatwić analizę skryptu. Oto mały przykład:źródło
-k
. (coreutils df domyślnie to 1k bloków, więc jesteś całkiem bezpieczny w Linuksie - ale jeśli masz coreutils, maszstat
, a to jest jeszcze bezpieczniejsze - nie jest wymagane analizowanie).%a*%s
zamiast%a*%S
. Nie jestem pewien, czy to różnica, czy literówka.%S
(duży) zgodnie ze stroną podręcznika systemowego RedHat. Nie mogę znaleźć systemu plików, do którego%s != %S
na kilku RedHatach też mam dostęp, więc nie mogę tego sprawdzić :-(df
polecenie: zgłoś użycie miejsca na dysku w systemie plikówdu
polecenie: oszacuj użycie przestrzeni plikówWpisz
df -h
lub,df -k
aby wyświetlić wolne miejsce na dysku:LUB
du
pokazuje, ile miejsca zajmuje jeden lub więcej plików lub katalogów:-s
Opcja podsumowuje przestrzeń katalogiem korzysta i-h
opcja zapewnia czytelny dla człowieka wyjście.źródło
Myślę, że powinien to być komentarz lub edycja odpowiedzi ThinkingMedia na to właśnie pytanie ( Sprawdź wolne miejsce na dysku dla bieżącej partycji w bash ), ale nie mogę komentować (za mało powtórzeń), a moja edycja została odrzucona (powód: „to powinien być komentarz lub odpowiedź”). Więc proszę, moce wszechświata SO, nie potępiajcie mnie za powtarzanie i naprawianie czyjejś „odpowiedzi”. Ale ktoś w Internecie się mylił! ™ i nie pozwolił mi tego naprawić.
Kod
ma istotną wadę: tak, będzie wysyłać
50G
za darmo jako 50 - ale będzie również wysyłać5.0M
jako wolne jako 50 lub3.4G
za darmo jako 34 lub15K
za darmo jako 15.Aby utworzyć skrypt w celu sprawdzenia określonej ilości wolnego miejsca na dysku, musisz znać jednostkę, z którą sprawdzasz. Usuń to (tak
sed
jak w powyższym przykładzie) liczby nie mają już sensu.Jeśli naprawdę chcesz, żeby to działało, będziesz musiał zrobić coś takiego:
Również dla instalatora
df -k $INSTALL_TARGET_DIRECTORY
może to mieć większy sens niżdf -k "$PWD"
. Na koniec należy pamiętać, że--output
flaga nie jest dostępna we wszystkich wersjach df / linux.źródło
--output=avail
w ten sposób otrzymujesz rozmiar w bajtach.
źródło
--output=avail
Kompletny przykład dla kogoś, kto może chcieć użyć tego do monitorowania punktu montowania na serwerze. Ten przykład sprawdzi, czy / var / spool jest poniżej 5G i wyśle wiadomość e-mail do tej osoby:
źródło
Aby poznać użycie określonego katalogu w GB lub TB w systemie Linux, polecenie brzmi:
df -h / dir / internal_dir /
df -sh / dir / internal_dir /
i aby poznać użycie określonego katalogu w bitach w systemie Linux, polecenie brzmi:
df-k / dir / internal_dir /
źródło
Wpisz w powłoce poleceń:
lub
lub
Wyświetli listę wolnych miejsc na dysku dla każdego punktu montowania.
Możesz również wyświetlić / wyświetlić pojedynczą kolumnę.
Rodzaj:
Uwaga: tutaj 3 to numer kolumny. Możesz wybrać potrzebną kolumnę.
źródło