Kopiowanie strony z serwera na serwer
Próbowałem przenieść serwis z jednego konta hostingowego na drugie i niestety serwis jest tak duży, że ciągle mi zrywał połączenia klient ftp po ściągnięciu xxx plików. Było to dość irytujące. Postanowiłem pójść na skróty i pominąć przy kopiowaniu mój komputer.
Pierwszym etapem moich prac było spakowanie wszystkich potrzebnych plików.
Następnie trzeba było wysłać plik na drugi serwer korzystając z modułu ftp.
Po przegraniu pliku na serwer docelowy wystarczy wgrać na niego trzeci, ostatni skrypt rozpakowujący archiwum.
Nie na wszystkich hostingach będą dostępne odpowiednie moduły, ale to już wina firmy, którą ktoś wybrał. W niektórych przypadkach będzie trzeba wydłużyć czas działania skryptu poprzez odpowiedni wpis.
Słowa kluczowe: PHP, Techblog, dump, ftp, kopiowanie, serwer, artykuł, blog

Komentarze i opinie
ja tam się nie znam, ale próbowałeś rsync ?
Wystarczy nawet zwykłym SCP to przesłać. Albo korzystać z takich dobrodziejstw, jakim jest np. Capistrano w Ruby on Rails.
Jakbym miał dostęp do shella to bym nie pisał skryptu PHP. Więc scp nie da rady ;) A pomysł by instalować ruby by przegrać pliki z serwera na serwer jest cool :P
(Komentarz zmodyfikowany 08.04.2008 o 16:24)
a ja to robie tak: odpalam MC, z lewej strony ftp 1 z prawej ftp 2 i przelatuje szybkciutko i nie zrywa polaczenia
To i tak idzie wtedy przez nasz komputer. Trwałoby to parę godzin, a moim sposobem 2 sekundy.
PS. stormfly zmień w szablonie komentarzy przy formie z dodaniem komentarza przy podpisie, by nie proponowało nicka "stormfly" ;)
I to za każdym razem. Jest od tego tag joggerowy.
Primo: MC nie idzie przez nasz komputer, jełśi jest odpalony na zdalnym shellu.
Secundo: stormfly wyraźnie napisał, że nie ma shella
A swoją drogą - kiepski ten hosting, jeśli zrywał połączenie. Ja bym użył CuteFTP, który kolejkuje zadania i pamięta, co przeszło a co nie, więc można wznowić przerwany transfer - szybsze to niż pisanie skryptu :)
Jeśli chodzi o MC:
dane idą przez nasz komputer tylko jeśli serwer docelowy odrzuca dane z numeru IP innego niż osoby która rozpoczęła sesje kontrolną (Zabezpieczenie przed atakiem zgadnięcia portu i wstrzyknięcia obcych danych w trybie pasywnym)
niby nie masz dostępu do shella ale z komend korzystasz ;] więc w sumie na jedno wychodzi. ja kiedyś przegrywałem o wiele mniejszy serwis, ale wtedy po prostu puściłem [chyba w TC] oba okna i kopiowanie i jakoś poszło. no ale Twoje rozwiązanie jest raczej pr0 więc ok.
Dostęp do funkcji system() nie musi iść w parze z dostępem do shella - usługi te są niezależne od siebie. Powodzenia życzę, gdybyś próbował w ten sposób zainstalować jakiś program :). W rzeczywistości czasem napisanie takiego prostego skryptu jest szybsze, niż szukanie i nauka obsługi jakiegoś dedykowanego programu napisanego w tym celu. Może gdyby to robić edukacyjnie, to jeszcze by uszło, ale na takie zabawy nie zawsze jest czas.
Jeśli masz dostęp do ssh, możesz kopiować dane (np. spakowane, żeby było szybciej i łatwiej - bo mniej plików) przy użyciu np. wgeta. Szybciej i bez PHP.
Wgetem ja robię na swoim własnym kolokowanym serwerze, ale tam gdzie nie ma dostępu do SSH skrypt PHP jest bardzo przydatny. O wiele szybciej niż pobierać do siebie. Co prawda mam u siebie łącze pomiędzy 3 do 25 mbit, jednak im mniej pośredników to i tak szybciej. W dodatku po sieci przechodzi tylko jeden duży plik a nie tysiące małych.
Nowy komentarz