Spis treści

Testuję scp i rsync

(rozważając nowego dostawcę hostingu)

Nowy hosting?

Ten wpis to krótka notka do siebie samej na temat użycia scp i rsync do synchronizacij katalogów.

Testuję właśnie  hosting na smarthost.pl (i jestem bardzo zadowolona - choć nie można wykluczyć, że parametry podczas testowania są sztucznie “podkręcane” - przy czym na hostingach i ich parametrach nie znam się zbytnio). Przede wszystkim ucieszył mnie zawarty w “najmniejszym” pakiecie hostingowym dostęp przez ssh.

Użycie scp

Próbowałam sobie przypomnieć, jaka jest składnia polecenia scp do “uploadu” plików na serwer. I dopiero po chwili odkryłam, że ssh działa na niestandardowym numerze portu, więc konieczna byłam opcja -P:

1
scp -r -i ~/.ssh/my_private_key -P $SSHPORT public/  $USER@$HOST:public_html/blog/

Znaczenie użytych opcji:

  • -r - recursive copy - powoduje rekurencyjne kopiowanie katalogów
  • -i _ścieżka_do_klucza_ - umożliwia podanie ścieżki do klucza prywatnego do połączenia przez ssh
  • -P $SSHPORT - wskazuje numer portu, na którym na zdalnym serwerze działa serwer SSH

Użycie rsync

O podstawach użycia  rsync przeczytałam w artykule How To Use Rsync to Sync Local and Remote Directories.

Niestety  - przy próbie uruchomienia rsync pojawił się “problem” (cudzysłów oznacza, że nie był to żaden prawdziwy problem, tylko moja nieznajomość narzędzia).

rsync wisi

Przy próbie wrzucenia katalogu public (z wygenerowanymi przez hugo plikami do podkatalogu blog rsync po prostu wisiał.

1
rsync -a public/ $USER@$HOST :/home/$USER/public_html/blog/

Opcja -v niewiele zmieniła - rsync milczał i wisiał dalej:

1
rsync -v -a public/ $USER@$HOST :/home/$USER/public_html/blog/

Przeanalizowałam wpisy na Stack Overflow i doszłam do wniosku, że

  • zamiast opcji -v bezpieczniej będzie użyć -a oraz --progress do śledzenia postępów
  • ale wciąż chcę korzystać z algorytmu sprawdzania zmian w plikach (a więc nie chcę go wyłączać przy pomicy --whole-file)

…i przypomniałam sobie, o niestandardowym porcie:

1
rsync -a --port=$SSHPORT public/ $USER@$HOST :/home/$USER/public_html/blog/

Nic to jednak nie dało .

Niestandardowy port

W artykule SCP Users Migration Guide to RSYNC znalazłam kluczową informację dotycząca ustawienia niestandardowego portu.

W scp wystarczy użyć opcji -P:

1
scp -P 8022 foo.txt me@server:/home/me/

Natomiast rsync wymaga podania polecenia, którego rsycn będzie używał “pod spodem”, aby połączyć się ze zdalną maszyną.

1
rsync -e 'ssh -p 8022' foo.txt me@server:/home/me/

Z jakiegoś powodu opcja -e nie bardzo chciała działać, więc wypróbowałam jeszcze jedną możliwość: ustawiłam więc port bezpośrednio w ~/.ssh/conig

1
2
Host smarthost.pl
    Port 8022

i dopiero wtedy zobaczyłam to, co chciałam:

1
2
3
rsync --progress test.txt $USER@$HOST:/home/$USER
test.txt
             15 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=0/1)

Ostateczna wersja polecenia

1
rsync --progress -r  public/ $USER:@$HOST:/home/$USER/public_html/blog/

co trwało kilka minut, jednak drugie uruchomienie było - jak powinno było być - bardzo szybkie

1
2
3
4
5
time rsync --progress -r  public/ $USER:@$HOST:/home/$USER/public_html/blog/
________________________________________________________
Executed in    4,30 secs      fish           external
   usr time  563,12 millis  864,00 micros  562,25 millis
   sys time   67,59 millis  182,00 micros   67,41 millis

A dlaczego rsync?

Dlaczego w ogóle chcę używać rsync?

  • ma kompresję plików (opcja -z)
  • kopiuje “przyrostowo”: potrafi porównywać zawartość plików oraz kopiować u źródła i nakładać u celu tyko zmiany
  • scp tylko dodaje pliki, a rsync może usunąć te, których nie ma u źródła (-delete)

Zmiana hostingu?

A dlaczego testuję hosting u innego dostawcy? Ze względu na koszty . Poniższa tabelka wszystko wyjaśni:

Za co płacę? Cyberfolks - netto brutto Smarthost - netto brutto
odnowienie domeny 99 121.77 59 72.57
5 GB hosting rok temu 149 183.27
5 GB hosting dzisiaj 349 429.27 99 121.77
20 GB hosting dzisiaj 499 613 259 318.57

To znaczy:

  • odnowienie domeny i przedłużenie hostingu w Cyberfolks będzie mnie kosztowało 429.27 + 121.77 = 551.04
  • po zmianie dostawcy na smarthost.pl: 121.77 + 72.57 = 194.34

Oszczędności

Pieniędzy

Oszczędzę 356.70, za co mogę sobie kupić nowy mikrofon do nagrywania dźwięku, na przykład:

co chciałam zrobić już dawno temu.

Decyzję już (prawie) podjęłam i o ile nic się nie zmieni, w listopadzie będę migrować swojego bloga.

I czasu

Aktualizajca bloga z tym artykułem trwa

  • w przypadku rsync 10s:
    1
    2
    3
    4
    
    ________________________________________________________
    Executed in   10,24 secs      fish           external
       usr time  547,07 millis  771,00 micros  546,30 millis
       sys time   96,30 millis  164,00 micros   96,14 millis
    
  • w przypadku lftp 212s (3,5 minuty!):
    1
    2
    3
    4
    
    ________________________________________________________
    Executed in  212,32 secs    fish           external
       usr time    1,19 secs    0,00 millis    1,19 secs
       sys time    0,86 secs    1,23 millis    0,86 secs
    

A może WordPress?

Do założenia strony na WordPress zachęca mnie Agnieszka z webfaces.pl, która jest w tej dziedzinie (tworzenia blogów i stron na WP) ekspertem. Zastanawiam się, rozglądam i testuję coś, co wyjadacze pewnie dpbrze znają - edytor blokowy:

/posts/scp-rsync/wp.png

Kto wie, może jakąś część bloga warto będzie wrzucić na WP? Na razie studiuję porady i ciekawostki na blogu Agnieszki, choć przed ostatecznym podjęciem decyzji na pewno jeszcze się z nią skonsultuję.

Na razie cieszy mnie myśl, że posiadając bloga generowanego do stron statycznych przez Hugo nie muszę się martwić migracją.

Po prostu użyję scp/rsync