Zmieniam dostawców hostingu i muszę przesłać miliony przesłanych plików na nowy serwer. Wszystkie pliki znajdują się w tym samym katalogu. Tak. Czytałeś to poprawnie. ;)Jak skutecznie przenieść wiele plików na nowy serwer?
W przeszłości robiłem to:
- Zip wszystkie pliki z serwera źródłowego
scp
zip do nowego serwera- Rozpakuj katalog
- przejść do odpowiednia lokalizacja
- z dowolnego powodu moje zamki z kroku 1 zawsze przynoszą ścieżkę wraz z nimi i wymagają ode mnie do mv.
Ostatni raz zrobiłem to zajęło około 4-5 dni, aby zakończyć i to było około 60% tego, co mam teraz.
Mam nadzieję na lepszy sposób. Co sugerujesz?
Struktura pliku jest mieszana. Coś takiego: AAAAAAAAAA.jpg
- ZZZZZZZZZZ.txt
Oto jeden pomysł jesteśmy rzucając wokół:
podzielić zamki na język ton mini suwakami na podstawie 3 prefiksów liter. Coś jak:
AAAAAAAAAA.jpg - AAAZZZZZZZ.gif => AAA.zip
Teoretycznej Plusy:
- mogłoby przyspieszyć przenoszenie, dzięki czemu wiele zamki przenieść naraz
- może ograniczyć czas tracony na nieudanej transferu. (Oczekiwanie na 2 dni za przelew do ostatecznie nie jest straszne)
Teoretyczne Wady:
- może spowolnić początkową zip znacznie od zip ma wyglądać zapasowej plików przez asterisk (
AAA*
) , być może skompensowany przez uruchomienie wielu wątków zip na raz, przy użyciu wszystkich procesorów zamiast tylko jednego. - Złożoność?
Pomyśleliśmy także o rsync i scp, ale martwimy się o koszt ręcznego przenoszenia każdego pliku. A ponieważ serwer zdalny jest pusty, nie muszę się martwić o to, co już tam jest.
Co myślisz? Jak byś to zrobił?
(Tak, będę przesuwając je do Amazon S3 w końcu, a ja po prostu wysłać je do dysku, ale w międzyczasie muszę je wczoraj!)
Co powiesz na rsync? –
W takiej sytuacji moim głównym zmartwieniem byłoby nie powtarzanie przelewu, niż szybkie przekazywanie. Kiedyś musiałem przenieść pliki o pojemności 100GB z lokalizacji oddalonych o 7 mórz. Próbowałem z dużym plikiem i przesyłanie nie powiodło się z powodu jakiegoś losowego błędu i musiałem zrobić to jeszcze raz. Zrobiłem więc podział plików na porcje 6 gb i wysyłałem je równolegle (3-4) na raz. To było dużo szybsze i bardziej niezawodne. Możesz po prostu utworzyć skrypt, który wykona to automatycznie. – specialscope