![]() |
GNU/Linux - skrypt wykonujący kopię serwera WWW
Mam nastepujacy problem - co jakis czas zmuszony jestem ze wzgledow bezpieczenstwa wykonywac kopie zapasowa serwera WWW. W tej chwili wyglada to tak:
Wybudzam komputer, wlaczam ForkLift, lacze sie przez FTP z serwerem, zaznaczam wszystko i przerzucam zawartosc na jeden z udzialow na dysku WD MyBook Live DUO. Poniewaz jednak NAS WD jest wlaczony caly czas a w srodku siedzi jakis Linux chcialbym zautomatyzowac proces i wykluczyc z niego uzywanie komputera. Czy zatem bylby ktos tak mily i podpowiedzial mi jak napisac skrypt ktory wykona: 1. Polaczenie przez FTP na porcie 21 z konkretnym loginem i haslem do serwera. 2. Wybierze cala zawartosc glownego katalogu tj. wszystkie pliki i foldery z zawartoscia. 3. Skopiuje je do /shares/Library/Backup. Fajnie byloby tez gdyby generowal jakis LOG w konkretnej lokalizacji by przejrzec czy podczas pobierania nie bylo bledow. Do init.d juz sobie sam dodam :-). |
Jeżeli masz dostęp do roota na tym serwerze to zrób to przez rsync'a.
rsync łączy się po ssh z serwerem docelowym i przy użyciu protokołu rsync robi kopie danych. Działa to zdecydowanie szybciej niż sposób wyżej, bo rsync wysyła tylko zmienione dane, natomiast w przypadku ftpa za każdym razem wysyłasz całość. Można też*wykorzystać coś bardziej gotowego - np. rsnapshot http://www.rsnapshot.org Tutaj jest manual http://www.rsnapshot.org/howto/1.2/r...-HOWTO.en.html |
Musialbym sie doktoryzowac z tego tematu, czytac co to jest rsync, a co najgorsze pewnie - doinstalowywac go do NASa, a tego chcialbym uniknac. Chce to zrobic jednym skryptem na juz istniejacych poleceniach systemowych.
|
Nie trzeba się*doktoryzować - wystarczy umiejętność czytania ze zrozumieniem.
http://www.smallnetbuilder.com/nas/n...d-my-book-live Oprócz czystego rsynca, rsnapshota można użyć jeszcze BackupPC http://pl.wikipedia.org/wiki/BackupPC Nie wiem tylko czy da się*go zainstalować*na tym nasie. |
Jak najbardziej rsync. Cały backup na cdrinfo mamy oparty o rsynca i działa to wyśmienicie. W synology rsync jest wbudowany, więc nic nie trzeba doinstalowywać, może w WD też tak jest.
|
:bartez:, a moglbys mi podac linijke jaka mam to uczynic? Probowalem, ale sypie bledami :-/
|
Jaka jest ich treść?
|
Problem lezy w wymogu opisanym przez andy'ego - nie mam dostepu do roota.
Zrobilem przez dwie komendy: cd /shares/Library/Backup/WWW wget --mirror --ftp-user=login --ftp-password=password --no-host-directories ftp://ftp.server.com Jak teraz zrobic z tego skrypt i wlaczyc tworzenie loga ktory w nazwie bedzie mial date operacji? |
Przecież*zamieściłem linka w którym jest opisane jak go skonfigurować na WD.
|
Pisales o roocie na serwerze a nie na MBLD. To raczej, w ujeciu logicznym, dwie rozne sprawy.
|
Z rootem chodziło mi o serwer docelowy..
|
Koledzy mówią o backupie, a ty chcesz zwykłą, prostą kopię. To co innego.
Na lokalnej maszynie wykonujesz takie polecenie (i to wszystko!): Kod:
ssh user@server 'cd ~/katalog_serwera; tar cf - .' | tar xf - Omówienie: - polecenie ssh loguje się do zdalnej maszyny - polecenie cd zmienia katalog na ten z którego chcesz skopiować pliki - polecenie tar cf - . (myślnik i kropka) tworzy tarballa, po to aby go szybko skopiować (tak jest najszybciej) - polecenie tar xf - rozpakowuje tarballa na maszynie lokalnej Aby powyższe polecenie zadziałało bez hasła (czyli ze skryptu, z crona) musisz przed jego wykonaniem umożliwić logowanie do zdalnej maszyny za pomocą kluczy publiczny-prywatny. Na localu generujesz klucze Kod:
ssh-keygen -t rsa Kopiujesz klucz publiczny na zdalną maszynę: Kod:
ssh-copy-id user@server I |
Aby wykonać kopię ze swojego macbooka możesz wykonać:
Kod:
ssh user@serwer_www 'cd ~/katalog; tar cf - .' | ssh user@ten_twój_nas tar xf -' Sposób przydatny aby ominąć jakieś firewalle, zabezpieczenia etc Kopiowanie następuje z użyciem twojego macbooka. --------- Możesz też w skrypcie użyć polecenia Kod:
scp |
Ledwo zarejestrowany, a taki fachowiec ;-). Dzieki, przetestuje jutro!
|
Na Mac OS X nie ma chyba ssh-copy-id
Ta linijka robi to samo: Kod:
cat ~/.ssh/id_rsa.pub | ssh user@host 'cat >> ~/.ssh/authorized_keys' |
To rozwiązanie jest mniej wydajne, bo za każdym razem wysyłasz wszystkie dane.
|
Ale uzytkownik @sciadzieda, w przeciwienstwie do ciebie, podal mi rozwiazanie o ktore prosilem czyli gotowa linie kodu, czym wyczerpal temat.
|
A ja Ci podałem linki do materiału w którym jest to samo - wystarczy tylko tam wejść i przeczytać.
- Preferuję metodę wędki a nie ryby. |
andy, M@Xu ma dusze managerska, on nie chce robic, on chce gotowe ;)
|
Cytat:
Kod:
smok$ ssh leon@x Tyle że M@X za pomocą zwykłego kopiowania stworzył bardzo dobry system backupu serwera. Domyślam się, że posiada więcej niż jedną kopię, oznaczoną czasowo. Dzięki temu intuicyjnie dokona odtworzenia backupu z dowolnego dnia oraz będzie miał materiał dla analizy pozdarzeniowej. Używając rsync musi zrozumieć, żeby nie synchronizować tego samego katalogu na maszynie backupowej - musi stworzyć strategię, logikę backupu. Strategią może być np. kopiowanie katalogu na localu i synchronizacja tejże kopii - aby mieć backup z kolejnych dni. Bo przecież np. włamanie i utrata plików nie musi być od razu zauważone. Musiałby też M@X zautomatyzować kasowanie wybranych kopii itd itp Wszystko zaczyna się komplikować, a skoro mielibyśmy zmuszać M@Xa do tworzenia nowego systemu backupu, to może lepiej niech użyje np. Kod:
rdiff-backup Podsumowując, rsync jest tylko narzędziem do synchronizacji plików, dzięki któremu można zbudować swoje narzędzie do backupu. Nie namawiałbym do tego M@Xa, bo posiada już swój backup i potrzebuje tylko metody wydajnego kopiowania. |
@sciadzieda
Nie twierdzę, że twój sposób jest zły jednak rsync sprawdzi się zdecydowanie lepiej. Twoja metoda jest wolna za pierwszym razem a za każdym następny ta różnica będzie się powiększać, bo rsync tylko wysyła zmienione dane. Dwa. nikt nie zmusza go do używania samego rsync'a. Jak wcześniej napisałem może użyć "wyższych" narzędzi jak rsnapshot. Tutaj http://www.rsnapshot.org/howto/1.2/r...tml#automation jest świetnie opisane jak fajnie działa automatyzacja - m. in. przesuwa kopie. Dodatkowo rsync wykorzystuje twarde dowiązania, dzięki czemu w kopii n+1 masz zapisane telko zmiany a to co się nie zmieniło jest twardym odniesieniem do początkowych danych :) W linuksie pewne rzeczy można zrobić na miliard sposobów - za to go cenię, jednak czasami pewne rozwiązania są zdecydowanie lepsze niż inne ;) Tutaj jest 30 sekundowa instrukcja dla "managerów" (rotfl) http://www.rsnapshot.org/howto/1.2/r...second_version Jak widać*wszystko miał na tacy... |
Cytat:
Ja za lepsze - dobre rozwiązanie często uznaję te zbudowane ze znanych mi klocków. Wiem, że coś lepiej byłoby zrobić w awk czy nawet Lisp, ale niezbyt znam, więc używam seda, grepa, vima itd itp Ostatnio jakieś wykresy robiłem i przyszedł mi do głowy język R, ale od tylu lat nigdy nie zagłębiłem się w to, więc użyłem znanych mi narzędzi (nota bene panowie z google robią z R cuda). rsnapshot wydaje mi się starym skryptem Perlowym, którego nie warto już używać, no ale jeśli ktoś zna... to czemu nie. rdiff-backup jest niezależnym softem w python (używa tego samego algo. co rsync, ale nie używa samego rsync) i dzięki tej dyskusji właśnie wdrożyłem go na swojej maszynie :) |
I to jest zdrowe podejscie :-). Jezeli caly swiat czegos uzywa, a uwazasz ze jest to slabe, to zrob po swojemu, niezgodnie z ograniczajacymi Cie standardami. Udowodnij ze dziala i olej reszte ktora meczy sie ze standardami z epoki jaskin. To lubie! :spoko:
|
Wszystkie czasy w strefie CET. Aktualna godzina: 15:07. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.