[Linux] Jak bezpiecznie tworzyć kopię (mirror) całego serwisu, uaktualniając tylko zmienione pliki? Powrót
[Linux] Jak bezpiecznie tworzyć kopię (mirror) całego serwisu, uaktualniając tylko zmienione pliki?

Chcesz stworzyć kopię plików na innym serwerze, czyli w sposób bezpieczny uaktualnić pliki.

Przeważnie bywa tak, że witrynę tworzysz na swoim komputerze, a następnie kopiujesz całość na serwer. Przy późniejszych zmianach musisz się czasami mocno natrudzić, aby stwierdzić które pliki zostały zmienione, a które należy przesłać na serwer.

Z drugiej strony przegrywanie zawartości całego katalogu też nie jest najlepszym rozwiązaniem. Tracimy niepotrzebnie czas, a przy korzystaniu z modemu jeszcze dodatkowo pieniądze.

Dużo wygodniej byłoby wydać jedną komendę i pozwolić, aby komputer sam przegrał zmodyfikowane pliki w sposób bezpieczny, z wykorzystaniem SSH. Zobacz jak to zrobić.

Użyjemy do tego celu programu rsync. Program możesz pobrać z jego strony domowej - rsync.samba.org, jednak powinien być też dostępny w większości dystrybucji Linuksa. Aby poprawnie działał musi być zainstalowany na obydwu komputerach uczestniczących w transmisji.

Aby przegrać całą strukturę plików i katalogów na zdalny komputer, trzeba podać programowi rsync katalog lokalny oraz miejsce docelowe na zdalnym serwerze:

[user]$ rsync -avz --rsh=ssh ~/moja_strona/ zdalny.pl:/www/html/strona/

Program rsync najpierw porówna, które z lokalnych plików zostały zmienione, a następnie przekopiuje zmodyfikowane i nowo utworzone pliki na serwer.

Jedna z najważniejszych opcji podawanych rsync to --rsh=ssh. Mówi ona programowi, że ma korzystać z pakietu SSH do transmisji plików. Przy jej braku rsync będzie próbował się łączyć przy pomocy nieszyfrowanego rsh.

Po wydaniu komendy komputer zapyta Cię o hasło na zdalnym serwerze. Aby uprościć cały proces i wyeliminować podawanie hasła zobacz poradę "Jak bezpiecznie przegrywać przez sieć pliki i katalogi pomiędzy dwoma komputerami?" - link na końcu porady. Dodatkowo dowiesz się tam, jak poradzić sobie z sytuacją, gdy na zdalnym komputerze masz inny login niż lokalnie.

Również ważną opcją jest -a - dzięki niej rsync skopiuje całą strukturę systemu plików, nie tylko dokumenty z podanego katalogu. Dodatkowo odtworzy wszystkie atrybuty plików, tak jak na dysku lokalnym - przeniesie linki symboliczne, prawa dostępu oraz czasy modyfikacji i ostatniego dostępu.

Przydatnymi opcjami są też -v i -z, które oznaczają odpowiednio zwiększenie ilości komunikatów generowanych przez program w czasie pracy oraz włączenie kompresji podczas przesyłu plików.

Ta druga opcja w przypadku plików tekstowych i HTML znacznie przyspiesza cały proces kopiowania.

[Linux] Jak bezpiecznie przegrywać przez sieć pliki i katalogi pomiędzy dwoma komputerami?