
Dowiedz się jak skutecznie zdiagnozować duże pliki i zwolnić miejsce na serwerze FTP
W poniższym artykule przyjrzymy się krok po kroku jak sprawdzić i posegregować według wielkości plików strony na Twoim serwerze ftp. Pomoże Ci to zdiagnozować potencjalnie duże pliki i skutecznie oczyścić serwer, precyzyjnie określając zbędną zawartość.
Potrzebujesz:
- Dostęp SSH do Twojego serwera ftp.
- obsługa wiersza poleceń / terminala
- Znajomość bash / shell (Unix)
- Podstawy python i wywoływania skryptów

Jak zalogować się przy użyciu klucza SSH?
Logowanie do serwera przez protokół SSH można autoryzować, prócz hasła, również kluczem SSH. Poniżej znajduje się opis przykładowej konfiguracji takiego połączenia z wiersza poleceń systemu Linux / Mac. Jeżeli posiadasz już połączenie z serwerem poprzez SSH przejdź dalej.
Jeśli nie posiadasz pary kluczy i chcesz je wygenerować:
Uruchom konsolę poleceń na hoście lub komputerze lokalnym z systemem Mac lub Linux (Unix), z którego połączenie ma być wykonane;
Skorzystaj z polecenia ssh-keygen; przykładowo, aby utworzyć klucz typu RSA dla protokołu SSH (aby otrzymać więcej informacji można użyć ssh-keygen –help
) użyj komendy:
ssh-keygen -b 2048 -t rsa
Po wpisaniu komendy ssh-keygen i jej wykonaniu, pojawi się komunikat:
Enter file in which to save the key (~/.ssh/id_rsa):
Możesz podać własną lokalizację lub zatwierdzić puste pole klawiszem Enter, wówczas klucz prywatny i publiczny zostaną zapisane z domyślną nazwą do lokalizacji ujętej w nawiasie, np.:
~/.ssh/id_rsa.key (klucz prywatny); ~/.ssh/id_rsa.key.pub (klucz publiczny);
w następnym kroku pojawi się prośba o podanie i powtórzenie hasła:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Podanie hasła jest zalecane, ale nie jest wymagane; możesz zatwierdzić puste pole klawiszem Enter;
Wyświetlony zostanie komunikat podsumowujący wygenerowanie kluczy:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user/.ssh/id_rsa): oskey
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in oskey
Your public key has been saved in oskey.pub
The key fingerprint is:
SHA256:vccumUPc8fFthzV4axKr8IGy2ICWN7SwN2UzI0cvwVc user@computer.home
The key's randomart image is:
+---[RSA 2048]----+
| . .E |
| + . |
| . + . |
| . o O o .o.o.|
| * * S.o. o+=+|
| = B . oo+.ooo=|
| . o * o.+o= o..|
| . o == |
| o. |
+----[SHA256]-----+
dodaj klucz publiczny (najczęściej ma on rozszerzenie .pub) na serwerze, do którego będziesz się łączyć; najprostszym sposobem jest skorzystanie z polecenia:
ssh-copy-id -i ~/.ssh/id_rsa.pub twojserwer@twojserwer.hosting.pl
W przypadku niektórych hostingów, łatwiejsze będzie dodanie kluczy do konfiguracji połączenia SSH z poziomu panelu admin lub przez ftp.
W przypadku problemów upewnij się, że na docelowym serwerze (przykładowo server12345.hosting.pl) katalog ~/.ssh oraz plik ~/.ssh/authorized_keys mają właściwe uprawnienia dostępu (755). Jeśli tak nie jest, należy zmienić je komendą chmod, np.:
chmod 755 ~/.ssh/authorized_keys
chmod 755 ~/.ssh
Wróć do terminala i użyj następującego polecenia aby zalogować się poprzez ssh z użyciem klucza:
ssh -i ~/.ssh/YOUR_PRIVATE_KEY twojserwer@twojserwer.hosting.pl
Dodaj klucz do agenta SSH (opcjonalnie)
Jeżeli chcesz używać klucza bez dodawania -i
i ścieżki za każdym razem:
ssh-add ~/.ssh/YOUR_PRIVATE_KEY
Wtedy możesz łączyć się uproszczoną komendą:
ssh twojserwer@twojserwer.hosting.pl
Listowanie wielkości plików strony na serwerze
Polecenie du -ah
to potężne narzędzie do wyświetlania wszystkich plików i katalogów w bieżącym katalogu wraz z ich rozmiarami. Oto zestawienie opcji i jak można ich skutecznie używać:
Komenda
du -ah
Wyjaśnienie:
du
Polecenie Disk Usage pozwalające oszacować wykorzystanie przestrzeni dyskowej.-a
Pokaż informacje o wszystkich plikach i katalogach (nie tylko katalogach).-h
Wyświetl rozmiary w formacie czytelnym dla człowieka (np. KB, MB, GB).
Przykład danych wyjściowych
4.0K ./subdir/file1.txt
8.0K ./subdir/file2.txt
12K ./subdir
20K ./anotherfile.log
100K .
Dla samych wielkości plików strony
Możesz filtrować katalogi poprzez połączenie du
z grep
:
du -ah | grep -v '/$'
Dla samych wielkości katalogów strony
Zamiast wcześniejszej komendy użyj:
du -ah | grep '/$'
Zapis wyjściowych danych do pliku
Dane wyjściowe można przekierować do pliku w celu późniejszego wykorzystania:
du -ah > file_list.txt
Aby połączyć oba polecenia i zapisać do pliku tylko listę plików (z wyłączeniem katalogów), możesz użyć następującego polecenia:
du -ah | grep -v '/$' > file_list.txt
Wyjaśnienie
du -ah
Wyświetla listę wszystkich plików i katalogów wraz z rozmiarami.grep -v '/$'
Filtruje katalogi (kończące się na /).> file_list.txt
Przekierowuje przefiltrowane dane wyjściowe do plikufile_list.txt
.
Sortowanie według wielkości
Pobierz wygenerowaną listę plików z serwera, i utwórz poniższy skrypt python nazwij go sort_files_size.py
import re
# sort_files_size.py
# sorts the output of du -ah command, starts from the biggest file.
def size_to_bytes(size_str):
size_str = size_str.strip().upper()
size_match = re.match(r"(\d+(?:,\d+)?)\s*([KMGT]?)", size_str)
if size_match:
size, unit = size_match.groups()
size = int(size.replace(',', ''))
units = {'': 1, 'K': 1024, 'M': 1024**2, 'G': 1024**3, 'T': 1024**4}
return size * units.get(unit, 1)
return 0
def sort_by_size(file_path):
with open(file_path, 'r') as file:
lines = file.readlines()
# Convert sizes to bytes and sort in descending order
lines.sort(key=lambda line: size_to_bytes(line.split()[0]), reverse=True)
# Print sorted results
for line in lines:
print(line.strip())
# Replace 'file_list.txt' with the path to your text file
sort_by_size('/Users/You/Desktop/file_list.txt')
Skrypt wywołujemy poprzez komendę (upewnij się że posiadasz python3 zainstalowany na komputerze i odpowiednio skonfigurowane środowisko python):
python3 /path-to/sort_files_size.py
Rezultat skryptu to posegregowane pliki wg. wielkości od największych do najmniejszych wraz z folderami w oknie Twojej konsoli (przykładowe dane poniżej):
user@machine ~ % python3 /path/to/sort_by_size.py
8.5G .
5.3G ./backup/site1
5.3G ./backup
3.1G ./new-site/wp-content
3.1G ./new-site
3.1G ./backup/site1/example.com
3.0G ./backup/site1/example.com/public_html/wp-content
3.0G ./backup/site1/example.com/public_html
2.8G ./backup/site1/example.com/public_html/wp-content/uploads
2.6G ./new-site/wp-content/cache
2.4G ./new-site/wp-content/cache/js
1.7G ./backup/site1/sampleblog.com/public_html/wp-content
1.7G ./backup/site1/sampleblog.com/public_html
1.7G ./backup/site1/sampleblog.com
1.3G ./backup/site1/sampleblog.com/public_html/wp-content/uploads
870M ./backup/site1/example.com/public_html/wp-content/uploads/2021
630M ./backup/site1/example.com/public_html/wp-content/uploads/2021/05
560M ./backup/site1/example.com/public_html/wp-content/uploads/2020
464M ./backup/site1/sampleblog.com/public_html/wp-content/uploads/2016
346M ./backup/site1/oldsite.com/public_html
346M ./backup/site1/oldsite.com
322M ./backup/site1/example.com/public_html/wp-content/uploads/2018
312M ./backup/site1/oldsite.com/public_html/wp-content
310M ./backup/site1/sampleblog.com/public_html/wp-content/plugins
302M ./backup/site1/example.com/public_html/wp-content/uploads/backup
295M ./backup/site2
292M ./backup/site2/public_html
259M ./backup/site2/public_html/wp-content
Możesz zapisać je z sesji terminala do pliku tekstowego i przeanalizować zbędne pliki, które zabierają Ci miejsce. Pozwoli to zwolnić miejsce na serwerze i zredukować koszty oraz poprawić wydajność Twoich serwisów.
Często zadawane pytania
Jak wygenerować listę wielkości plików strony z serwera?

Jerzy Lazaridis
Senior Web developer
Archiwum autora
Od roku 2018 zajmuje się profesjonalnie programowaniem, posiada 15 certyfikatów z tej dziedziny oraz wyższe wykształcenie. Pasjonuję się nauką, sportem i sztuką. Fan nowoczesnych technologii i autorskich rozwiązań.