Pakowanie i rozpakowywanie danych na serwerze

Wprowadzenie

Pakowanie oraz rozpakowywanie danych bezpośrednio na serwerze FTP pozwoli na zaoszczędzenie sporej ilości czasu. Wysyłka dużej ilości plików/katalogów za pośrednictwem protokołu FTP trwa o wiele dłużej, niż wysyłka jednego skompresowanego archiwum.

Możesz spakować dowolną ilość plików i katalogów do jednego archiwum („tar.gz” lub „.zip”) i następnie opublikować go na serwerze FTP. Za pomocą poniższych instrukcji dowiesz się jak pakować i rozpakowywać dane bezpośrednio na serwerze FTP.

WAŻNE! Pamiętaj, że na serwerze wirtualnym (np. hosting) posiadasz określoną ilość zasobów, która może być niewystarczająca do spakowania/rozpakowania dużej ilości danych. Pamiętaj o tym, gdy będziesz chciał spakować/rozpakować dane o dużej objętości (np. 2 GB).
WAŻNE! Jeśli nie potrafisz samodzielnie wykonać operacji poprzez SSH na Twoim serwerze, możesz skorzystać z oferty pomocy naszych administratorów. Operacje kopiowania na poziomie infrastruktury serwerowej, pakowania, rozpakowywania oraz przenoszenia plików mogą zostać wykonane przez administratorów home.pl w ramach oferty Profesjonalne Usługi IT. Oznacza to, że operacje na Twoim serwerze zostaną wykonane przez naszych administratorów, po zamówieniu odpowiedniej usługi administracyjnej oraz po opłaceniu tego zamówienia.

Pakowanie danych TAR.GZ – jak spakować dane na FTP do formatu *.tar.gz?

Aby spakować dowolny folder/plik do formatu „tar.gz” bezpośrednio na serwerze FTP, należy stworzyć plik o przykładowej nazwie „targz.php”. W jego zawartości wpisz poniższy fragment kodu (zmieniając nazwę folderu/pliku):

<?php
system("tar -zcvf archiwum.tar.gz folder_zrodlowy");
?>

Przykład spakowania katalogu „/cat1”, który znajduje się w katalogu głównym serwera:

<?php
system("tar -zcvf archiwum.tar.gz /cat1");
?>
Plik „targz.php” należy umieścić w katalogu głównym serwera, aby katalog „/cat1” mógł zostać spakowany. Następnie wywołaj plik „targz.php” za pomocą przeglądarki WWW. W pasku adresu przeglądarki WWW wpisz adres z bezpośrednim wskazaniem na ten plik.
Przykład: http://nazwa_serwera.home.pl/targz.php

W ten sposób zostanie wykonana dyrektywa, która została zapisana w zawartości wywołanego pliku *.php.

Po zakończonym działaniu pliku pojawi się biała strona. Na serwerze FTP zostanie utworzone skompresowane archiwum w formacie „tar.gz”, w którym będzie znajdować się zawartość katalogu „/cat1”.
WAŻNE! W przypadku, jeśli chcesz spakować pojedyńczy plik, to plik „targz.php” umieść w tym samym katalogu co wybrany plik. Natomiast w zawartości pliku „targz.php” wpisz nazwę pliku źródłowego (razem z jego rozszerzeniem):

<?php
system(„tar -zcvf archiwum.tar.gz plik.exe”);
?>

Pakowanie danych ZIP – jak spakować dane na FTP do formatu *.zip?

Aby spakować dowolny folder/plik do formatu „.zip” bezpośrednio na serwerze FTP, należy stworzyć plik o przykładowej nazwie „zip.php”. W jego zawartości wpisz poniższy fragment kodu (zmieniając nazwę folderu/pliku):

<?php
system("zip -r archiwum.zip folder_zrodlowy");
?>

Przykład spakowania katalogu „/cat1”, który znajduje się w katalogu głównym serwera:

<?php
system("zip -r archiwum.zip /cat1");
?>
Plik „zip.php” należy umieścić w katalogu głównym serwera, aby katalog „/cat1” mógł zostać spakowany. Następnie wywołaj plik „zip.php” za pomocą przeglądarki WWW. W pasku adresu przeglądarki WWW wpisz adres z bezpośrednim wskazaniem na ten plik.
Przykład: http://nazwa_serwera.home.pl/zip.php
W ten sposób zostanie wykonana dyrektywa, która została zapisana w zawartości wywołanego pliku *.php.

 

Po zakończonym działaniu pliku pojawi się biała strona. Na serwerze FTP zostanie utworzone skompresowane archiwum w formacie „.zip”, w którym będzie znajdować się zawartość katalogu „/cat1”.
WAŻNE! W przypadku, jeśli chcesz spakować pojedyńczy plik, to plik „zip.php” umieść w tym samym katalogu co wybrany plik. Natomiast w zawartości pliku „zip.php” wpisz nazwę pliku źródłowego (razem z jego rozszerzeniem):

<?php
system(„zip -r archiwum.zip plik.exe”);
?>

Jak spakować zawartość katalogu głównego serwera?

Aby spakować całą zawartość katalogu głównego serwera do formatu „tar.gz”, należy skorzystać z poniższej zawartości dla pliku „targz.php”:

<?php
system("tar -cz --exclude=archiwum.tar.gz -f archiwum.tar.gz /");
?>

Aby spakować całą zawartość katalogu głównego serwera do formatu „.zip”, należy skorzystać z poniższej zawartości dla pliku „zip.php”:

<?php
system("zip -r archiwum.zip / --exclude archiwum.zip");
?>
Plik PHP należy umieścić w katalogu głównym serwera i następnie wywołać go za pomocą przeglądarki WWW.
Przykład: http://nazwa_serwera.home.pl/zip.php
Po zakończonym działaniu pliku pojawi się biała strona. W katalogu głównym serwera FTP zostanie utworzone skompresowane archiwum w formacie „.zip” lub „tar.gz”, w którym będzie znajdować się zawartość katalogu głównego.

Rozpakowanie danych ZIP lub TAR.GZ – jak rozpakować archiwum danych na serwerze?

W celu rozpakowania skompresowanego pliku można skorzystać ze skryptu PHP.

W tym celu należy stworzyć plik .php (przykładowo „rozpakowanie.php”). W jego zawartości wpisz następujący fragment kodu:

  • jesli plik do rozpakowania ma rozszerzenie „.tar.gz”:
<?php
system ("tar -zxvf nazwa_pliku.tar.gz");
?>
  • jesli plik do rozpakowania ma rozszerzenie „.zip”:
<?php
system ("unzip -o nazwa_pliku.zip");
?>
  • jeśli plik do rozpakowania ma rozszerzenie „.zip” i chcesz go rozpakować w konkretnym katalogu:
<?php
system ("unzip -o nazwa_pliku.zip -d folder_docelowy");
?>
Plik „rozpakowanie.php” należy umieścić w tym samym katalogu, w którym znajduje się archiwum do rozpakowania. Następnie wywołaj plik „rozpakowanie.php” za pomocą przeglądarki WWW. W pasku adresu przeglądarki WWW wpisz adres z bezpośrednim wskazaniem na ten plik.
Przykład: http://nazwa_serwera.home.pl/rozpakowanie.php
Po zakończonym działaniu pliku pojawi się biała strona. Zawartość spakowanego archiwum zostanie rozpakowana do katalogu, w którym znajduje się dany skompresowany plik lub do wskazanego podfolderu, jeśli został on określony w pliku PHP.

Więcej rozwiązań

  • Czy artykuł był pomocny ?
  • Tak   Nie