Pobieranie całego katalogu z serwera zdalnego przez LFTP


21 listopada 2020 / Michał Kortas



Warning: Undefined array key "social" in /home/klient.dhosting.pl/michalko/webroad.pl/public_html/wp-content/themes/webroadpl/content.php on line 27

Zajmowałem się nie tak dawno przenoszeniem dość dużej aplikacji na nowy serwer. Cały proces zajął ostatecznie kilka dni. Jednak aby samo przełączenie użytkowników do pracy w nowym środowisku odbyło się możliwie bez przerw, największą przeszkodą do pokonania stało się utrzymanie magazynu załączników w aktualnym stanie.

Postanowiłem na bieżąco pobierać zmiany z bieżącego środowiska do nowego za pomocą zautomatyzowanego połączenia SFTP za pomocą LFTP.

Plik konfiguracyjny – mirror dwóch katalogów

Najpierw utworzyłem plik konfiguracyjny. W moim przypadku nazywał się storage_mirror.lftp.

Dodałem do niego następujące komendy.

set ssl:verify-certificate yes
set sftp:auto-confirm yes
open sftp://user:[email protected]

mirror --verbose --use-pget-n=4 -c --verbose /old/server/path/to/download /new/server/local/path;

bye

Za pomocą argumentu --use-pget-n=4  można zdecydować ile plików ma być pobieranych jednocześnie. W tym przypadku są to 4 pliki.

Argument --verbose pokazuje w konsoli bieżący i szczegółowy stan zadania

Uruchamianie pobierania plików

Po zapisaniu pliku konfiguracyjnego połączenia można odpalić skrypt.

lftp -f /path/to/storage_mirror.lftp

Za pierwszym razem – w zależności od zasobności katalogu i prędkości połączenia – proces może potrwać naprawdę długo. Każde późniejsze wywołanie skryptu analizuje całe drzewo plików i katalogów na serwerze zdalnym, pobierając tylko zmiany.

Automatyzacja

Powyższe polecenie dodałem jako zadanie CRON, tak aby wykonywało się co 30 minut.

*/30 * * * * "lftp -f /path/to/storage_mirror.lftp"

Dzięki temu katalog z załącznikami na nowym serwerze był na bieżąco aktualizowany.


Tagi:


Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *