Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam,
Mam problem z tym narzędziem.
potrafię zrobić kopię zapasowom wskazanego katalogu i najczęściej robię /home, ale tam jes duzo danych których nie muszę backupować.
ponadto polecenie rsync odpalam z palca w konskoli.
Czytałem sporo o skryptach ale nie bardzo mogę i umiem to ugryżć.
Moje założenie jest takie:
1. wybrane katalogi z home (nie wszystkie)
2. odrzucić część zawartości katalogów które chcę archiwizować
3. wszystko leci na osobny dysk który jest na stałe podmontowany
4. co miesiąc jest tworzona kopia cała a co tydzień przyrostowe (wszystko oznaczane datami), potem się same kasują.
5. wszystko robi cron
czy możecie pi pomóc jak to zrobić.
Pozdrawiam
zientas
Offline
Pierwsze primo, do takich rzeczy lepszy będzie [url=http://www.nongnu.org/rdiff-backup/docs.html]rdiff-backup[/url], który jest właśnie do kopii przyrostowych.
Co do skryptu:
to wygląda on w wielkim uproszczeniu tak:
#!/bin/bash # - tu jest wskazana powłoka, może być to bash, zsh, lub co innego. polecenie1; polecenie2; polecenie3; exit 0;
Na necie znajdziesz kilkaset tysiecy przykładów najróżniszych skryptów powłoki, nic trudnego.
Tu masz przyklad backupu serwera z użyciem rdiff-backup:
http://wiki.rdiff-backup.org/wiki/index.php/BackupServer
A tu fajny manual:
http://manual.aptosid.com/en/sys-admin-rdiff-en.htm
http://everydaylht.com/howtos/system-administration/backing-up-files-using-rdiff-backup/
Pozdrawiam
;-)
Ostatnio edytowany przez Jacekalex (2012-03-12 17:21:43)
Offline
dzięki za chęć pomocy
ale niestety nic nie wniosła - jak dla mnie.
program potestuję.
Wiem że na necie znajdę kilka tysięcy, bawię się już tym ze 3 dni, nie jestem informatykiem.
Tak jak pisałem powyżej potrzebuję prawie gotowca bo szkoda mojego czasu i waszego. Chcę to zrobić raz i więcej do skryptów może przez następne 5 lat się nie dotknę.
Dlatego tutaj piszę, mając nadzieję że dzięki waszej pomocy zrobię to znacznie szybciej miż przekopując google przez nadtępne 3 dni.
zwracam się szczególnie do tych którzy mają to opcykane i sa w stanie powiedieć:
to przekopiuj, to utwórz, to zmień i wstaw tu. Chodzi mi o taki manual po polsku i łopatologicznie to i inni skorzystają.
Więc proszę jeśli ktoś może pomóc bardziej łopatologicznie.
z góry dziękuję.
pozdrawiam
zientas
Ostatnio edytowany przez zientas (2012-03-12 17:40:47)
Offline
Gotowiec to jest rdiff-backup ;-), wystarczy przeczytać man-a, a tak w skrócie:
Kopia /home:
rdiff-backup /home /media/dysk_na_kopie
Wyłączenie robienia kopii niektórych katalogów (/home/katalog_bez_kopii_1 i /home/katalog_bez_kopii_2):
rdiff-backup --exclude=/home/katalog_bez_kopii_1 --exclude=/home/katalog_bez_kopii_2 /home /media/dysk_na_kopie
Resztę doczytasz w man...
Offline
Super, dzięki.
to mi pomogło, pokazało gdzie co jest.
już mogę więcej niż rsync ale:
jak z tego robić kopie opisane datą (plik wynikowy ma się umieścić w katalogu z datą) bo nadpisuje mi plik
jak robić kopie przyrostowe?
zientas
Offline
Kopie przyrostowe robi sam (pierwsza jest pełna a następne przyrostowe), opisywać nie trzeba bo po wywołaniu, bo sam zapisuje dokładny czas, zobacz:
rdiff-backup --list-increments /katalog_z_backupem
Offline
Super dzięki
stworzyłem sobie taki skrypcik. Jak na razie uruchamiam z palca.
andreq rzeczywiście widzę 3 pliki z backupem (bo 3 robiłem) dzięki.
Found 3 increments: increments.2012-03-12T22:27:02+01:00.dir Mon Mar 12 22:27:02 2012 increments.2012-03-12T22:29:04+01:00.dir Mon Mar 12 22:29:04 2012 increments.2012-03-12T22:31:55+01:00.dir Mon Mar 12 22:31:55 2012 Current mirror: Mon Mar 12 22:45:06 2012
Jak odzyskać ten 22:29:04 czyli środkowy
Oraz jak bede chciał odzyskać jeden plik np. /home/ftp/jak.txt
jak będzie wyglądało polecenie?
1. A czy możecie mi powiedzieć czy można exclude umieścić w jakimś pliku tekstowym a w tym skrypckiku dodać do niego ścieżkę tak aby nie wydłużać w nieskończoność tej lini.
2. teraz żeby zrobić inny katalog niż /home trzeba skrypt wydłużyć, a czy istnieje możliwość jak wyżej listę do backupu umieścić w pliku oraz jak go zamieścić w skrypcie.
#!/bin/bash RDIFF=/usr/bin/rdiff-backup echo echo "=======Backing up =======" ${RDIFF} --exclude /home/tomasz /home /usr/backup/tomasz echo "(and purge increments older than 1 month)" ${RDIFF} --remove-older-than 1M --force /usr/backup/tomasz echo
pozdrawiam
zientas
Ostatnio edytowany przez zientas (2012-03-12 22:52:47)
Offline
[b]zientas[/b]: przypuszczam, że odpowiedzią na pytanie pierwsze jest parametr [tt]--exclude-globbing-filelist[/tt], a odpowiedzią na drugie: [tt]--include-globbing-filelist[/tt]. Wszystko to jest opisane w dokumentacji programu ([tt]man rdiff-backup[/tt]).
Offline
Dzięki Minio, tyle co mi podałeś to wyczytałem z tych manuali, ale nie wiem gdzie te pliki zapisać i jak do nich podać scieżlę. Więc jeśli bedziesz tak uprzejmy to proszę o pomoc, nie będziemy wydłużali tematu w nieskończoność, a za jakiś czas ktoś będzie to czytał i będzie mu pomocne.
Pozdrawim
zientas
Offline
Ścieżkę podajesz jako argument dla tych opcji:
[tt]rdiff-backup --exclude-globbing-filelist /sciezka/do/pliku --inne opcje /źródło /cel[/tt]
To jest zwykły plik zgodny z formatem opisanym w dokumentacji (jeden plik/katalog na linię, można używać określonych symboli wieloznacznych).
Zapiszesz go sobie gdzie chcesz i pod nazwą jaką chcesz. Może być w ~, może być w /tmp/, może być w /var/lib/, może być w ~/.config/. Jak Ci wygodnie.
Offline
Dzięki skrypt działa i prawie wszystko jest ok.
Ale....
Jak zrobić aby pliki zaczynające się od kropki czyli pliki które są w katalofu domowym każdego użytkowniak były pomijane.
jeśli w exclude napiszę /home/tomasz/.* to je ominie, ale chciałbym tak zapisać aby omijał je ze wszystkich katalogów.
Tak samo z plikami .tmp, jeśli podam całą ścieżkę to ominie jak napiszę /*.tmp to nie działa
pozdrawiam
zientas
Offline
Te z kropką to
.*
lub
'.*'
pobobnie tmp albo
*.tmp
albo
'*.tmp'
Offline
Witam
no niestety nie działa powyższe:
=======Backing up ======= Fatal Error: Fatal Error: The file specification '.*' cannot match any files in the base directory '/home' Useful file specifications begin with the base directory or some pattern (such as '**') which matches the base directory.
obszedłem to w ten sposób
w pliku exclude zamieścilem to:
/.* /*/.* /*/*/.* /*/*/*/.*
to spowodowało że do wielu katalogów w głąb jest to zastosowane.
a czy możecie mi pomóc w odzyskiwaniu. Wiem jak odzyskać kopię z przed np 2 dni. Ale jak odzyskać kopię konkretną.
dziś robiłem backup 5 rzay a chcę tą przedostatnią.
czy poszczególne pliki z backupu można odzyskać wchodząc w backup i znaleźć plik.
i gdzie go szukać bo na razie mam za mało kopi ze zmianami.
zientas
Offline
Jak wykonasz:
rdiff-backup --list-increments \katalog_z_backupem
to otrzymasz:
Kod:
Found 3 increments: increments.2012-03-12T22:27:02+01:00.dir Mon Mar 12 22:27:02 2012 increments.2012-03-12T22:29:04+01:00.dir Mon Mar 12 22:29:04 2012 increments.2012-03-12T22:31:55+01:00.dir Mon Mar 12 22:31:55 2012 Current mirror: Mon Mar 12 22:45:06 2012[/quote]
Chcesz kopię "środkową", to:Kod:
rdiff-backup --restore-as-of 2012-03-12T22:29:04+01:00 /katalog_z_backupem /katalog_na_odzyskane_plikiMożesz też stosować --include i --exclude
Offline
[quote=andreq]Chcesz kopię "środkową", to:
rdiff-backup --restore-as-of 2012-03-12T22:29:04+01:00 /katalog_z_backupem /katalog_na_odzyskane_pliki
Możesz też stosować --include i --exclude[/quote]
początek zrozumiały i prosyt, z tym --include i --exclude nie bardzo rozumiem przy odzyskiwaniu. (chyba że chodzi aby ni odzyskiwał wszystkich plików)
p czy można tak.
jest sopbie plik np. dane.txt imieszczony w /home/tomasz/dane.txt
chcę go odzyskać z kopi z przed 2 dni. niech to będzie dla przykładu tak kopia: 2012-03-12T22:29:04+01:00
czy mogę sobie w tą kopię wejść przez mc i odzyskać ten plik kopiując go? lub jak to zrobić inaczej?
No i chyba ostatnie pytanie:
mój skrypt robi takie same kopie w 2 miejscach, jedna kopia jest na osobnym dysku a druga na serverze w firmowym do którego mam dostęp przez zamontowanie udziału.
Do tego dysku mają dostęp inne osoby. moje pytanie jest takie czy po zrobieniu tej kopi można ją jakoś spakować, nadać np. rozszeżenie .doc tak aby domyślnie pod windowsem nie można było użyć programu rozpakowującego oraz dodać chasło do archiwum.
procedura musiała by wyglądać tak:
1. skrypt rozpakowuje poprzedni backup
2. usówa stare archiwum
3. sprawdza zmiany i dokonuje aktualizacji (normalna procedura)
4. robi kompresję i zabezpiecza hasłem
5. usówa pliki nieskompresowane
lub jakiś inny sposób zabezpieczenia tego archiwum - dodam że to leci przez internet
Pozdrawiam
zientas
Offline
[quote=zientas]czy można tak.
jest sopbie plik np. dane.txt imieszczony w /home/tomasz/dane.txt
chcę go odzyskać z kopi z przed 2 dni. niech to będzie dla przykładu tak kopia: 2012-03-12T22:29:04+01:00
czy mogę sobie w tą kopię wejść przez mc i odzyskać ten plik kopiując go? lub jak to zrobić inaczej?[/quote]
Ja bym zrobił tak:
rdiff-backup --restore-as-of 2012-03-12T22:29:04+01:00 /katalog_z_backupem//home/tomasz/dane.txt /katalog_na_odzyskane_dane
[quote=zientas]...jakiś inny sposób zabezpieczenia tego archiwum - dodam że to leci przez internet...[/quote]
Proponuję zatrudnić gpg: Na komputerze z danymi, tworzysz zaszyfrowaną kopię danych i tę kopię synchronizujesz przy pomocy rdiff-backup, zalety:
1. Niezaszyfrowane dane są tylko na źródłowym komputerze;
2. Nie musisz szyfrować połączenia, bo przesyłasz już zaszyfrowane dane;
Podstawy użycia gnupg: http://debian.linux.org.pl/zrobione/reference/reference-big.html#ch-gnupg i http://www.gentoo.org/doc/pl/gnupg-user.xml
Offline
Zbyt skomplikowane dla mnie (to szyfrowanie)
a może tak:
najpierw robię kopie lokalnie ta kopia jest pakowana i jakoś zabezpieczana przed ortwarciem, archiwum zip z hasłem i potem przenośona na zewnętrzny serwer oraz kasowane spakowane archiwum lokalne.
nie znam polecenia do skryptu które by pakowało moją kopię.
potem chyba nie ma problemu z usunięciem starej z servera skopiowanie nowej i usunięcie lokalnie archiwum.
albo proszę o coś mniej skomplikowanego, coś dla młodego zielonego pingwina.
Pozdrawiam
zientas
Offline
Do pakowania można zastosować tar w połączeniu z 7z (bo ma możliwość zabezpieczenia archiwum hasłem) np.
tar cf - katalog| 7za a -pmoje_hasło -si katalog.tar.7z
Rozpakowanie:
7za x -pmoje_hasło -so katalog.tar.7z | tar xf -
A "wszystko mający" jest Duplicity: http://wiki.debian.org/Duplicity i http://blog.stelmisoft.pl/2010/tworzenie-kopii-zapasowej-plikow-przy-uzyciu-aplikacji-duplicity-oraz-duply/
Offline
A nie prościej zrobić szyfrowaną partycję lub kontener Truecryptem (można wyklikać myszką, strasznie trudne ;)), potem zamontować do folderu, rdiff i jazda.
Potem odmontować, i gotowe.
Offline
Może i prościej, ale:[quote=zientas]mój skrypt robi takie same kopie w 2 miejscach, jedna kopia jest na osobnym dysku a druga na serverze w firmowym do którego mam dostęp przez zamontowanie udziału.
Do tego dysku mają dostęp inne osoby. moje pytanie jest takie czy po zrobieniu tej kopi można ją jakoś spakować, nadać np. rozszeżenie .doc tak aby domyślnie pod windowsem nie można było użyć programu rozpakowującego oraz dodać chasło do archiwum.[/quote]
Więc dopóki nie dowiemy się szczegółów, to będziemy zgadywać i dawać kolejne propozycje.
Offline
Teraz to wygląda tak:
Backup robiony na innym dysku, tym samym skryptem jest pakowany i zapisywany pod inną a po spakowaniu wysyłany na server przez internet.
Więc Wasze wszystkie porady były skuteczne dziękuję bardzo.
Mam nadzieję że wontek posłuży dla potomnych bo dzięki Wam jest wszystko łopatologicznie rospiasane.
zientas
Offline
Time (s) | Query |
---|---|
0.00011 | SET CHARSET latin2 |
0.00005 | SET NAMES latin2 |
0.00096 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.117.71.239' WHERE u.id=1 |
0.00181 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.117.71.239', 1732572877) |
0.00056 | SELECT * FROM punbb_online WHERE logged<1732572577 |
0.00046 | SELECT topic_id FROM punbb_posts WHERE id=198188 |
0.00228 | SELECT id FROM punbb_posts WHERE topic_id=20876 ORDER BY posted |
0.00073 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=20876 AND t.moved_to IS NULL |
0.00004 | SELECT search_for, replace_with FROM punbb_censoring |
0.00107 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=20876 ORDER BY p.id LIMIT 0,25 |
0.00084 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=20876 |
Total query time: 0.00891 s |