![]() |
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' |
Wszystkie czasy w strefie CET. Aktualna godzina: 22:10. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.