Linux rsync - denní, týdenní a měsíční zálohování

Linux rsync - denní, týdenní a měsíční zálohování

Dobrý den,
potřeboval bych poprosit o radu ohledně Rsync.Chci zálohovat server na záložní disk na jiném serveru.A nejde tam Rdiff-backup.Jen zálohy BorgBackup a Rsync.Potřeboval bych poradit,jak přes Rsync dělat zálohy denní,týdení,měsíční.Teda jestli je to tak možné.Myslel jsem něco podobného jako je Timeshift,že by se uchovali třeba 5 zálohy denní,2týdenní a 1 mesíční.
Myslel jsem udělat tři složky denní,týdení a mesíční,ale nevím jaký příkaz použít k Rsync,aby vytvořil zálohu dle data a zase další příkaz,který by starší zálohy mazal.Nevím jestli je to tak vůbec proveditelné.
Moc děkuji za informace.
Zdenek.

ODPOVĚĎ


Dobrý den,

1.) Proč je problém používat rdiff-backup? Navíc by šlo i zálohy automaticky odmazávat.
2.) Borg Backup je také velmi vhodný, umí toho hodně.
3.) Denní, týdenní a měsíční zálohování pomocí rsync bude těžkopádné, bylo by to x úloh v cronu + ještě to odmazávání, bude pak problém se v tom i vyznat.

Nicméně co zkusit trochu slevit z Vašich požadavků a zálohování udělat pomocí rsync takto:

00 20 * * * rsync –av /home /mnt/backups/daily/ --delete
00 21 * * 6 rsync –av /home /mnt/backups/weekly/ --delete
00 22 1 * * zip -r /mnt/backups/monthly/$(date +%Y-%m-%d).zip /mnt/backups/daily

- denní rsync záloha
- týdenní rsync záloha
- měsíční záloha se udělá z poslední denní zálohy, zazipuje se a uloží s aktuálním datem (takže je to archivace)

PS: Není to vyzkoušené, jen nahrubo napsáno jak by se to dalo pro začátek řešit pomocí rsync


ODPOVĚĎ


Dobrý den,
děkuji za odpověď.Ve vlastnostech uložiště mají jen FTP,FTPS,SFTP,SCP, Samba / CIFS,BorgBackup,rsync přes SSH
HTTPS a WebDAV.Tak nevím jestli Rdiff-Backup by šel.Na ten Borg mají docela dobrý návod,ale zkoušel jsem Borg jen přes program Vorta.Tady jsem chtěl zálohovat komplet VPS server a nevím jestli zvládnu obnovu přes Borg,kdyby se něco pokazilo.Ale asi máte právdu zbytečně to bude přes Rsync složité.

Zkusil jsem te Rdiff-Backup rdiff-backup /home user@user.your-storagebox.de:zdendys

a skončí to chybou Exception '[Errno 36] File name too long:


ile "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 304, in error_check_Main
try: Main(arglist)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 324, in Main
take_action(rps)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 280, in take_action
elif action == "backup": Backup(rps[0], rps[1])
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 346, in Backup
backup.Mirror(rpin, rpout)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 38, in Mirror
DestS.patch(dest_rpath, source_diffiter)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 232, in patch
ITR(diff.index, diff)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rorpiter.py", line 281, in __call__
last_branch.fast_process(*args)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 528, in fast_process
tf = TempFile.new(mirror_rp)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/TempFile.py", line 36, in new
return new_in_dir(rp_base.get_parent_rp())
File "/usr/lib/python2.7/dist-packages/rdiff_backup/TempFile.py", line 46, in new_in_dir
tf = dir_rp.append('rdiff-backup.tmp.%d' % _tfindex)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 1149, in append
return self.__class__(self.conn, self.base, self.index + (ext,))
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 884, in __init__
else: self.setdata()
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 908, in setdata
self.data = self.conn.rpath.make_file_dict(self.path)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 287, in make_file_dict
return C.make_file_dict(filename)

Traceback (most recent call last):
File "/usr/bin/rdiff-backup", line 30, in
rdiff_backup.Main.error_check_Main(sys.argv[1:])
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 304, in error_check_Main
try: Main(arglist)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 324, in Main
take_action(rps)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 280, in take_action
elif action == "backup": Backup(rps[0], rps[1])
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 346, in Backup
backup.Mirror(rpin, rpout)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 38, in Mirror
DestS.patch(dest_rpath, source_diffiter)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 232, in patch
ITR(diff.index, diff)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rorpiter.py", line 281, in __call__
last_branch.fast_process(*args)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 528, in fast_process
tf = TempFile.new(mirror_rp)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/TempFile.py", line 36, in new
return new_in_dir(rp_base.get_parent_rp())
File "/usr/lib/python2.7/dist-packages/rdiff_backup/TempFile.py", line 46, in new_in_dir
tf = dir_rp.append('rdiff-backup.tmp.%d' % _tfindex)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 1149, in append
return self.__class__(self.conn, self.base, self.index + (ext,))
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 884, in __init__
else: self.setdata()
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 908, in setdata
self.data = self.conn.rpath.make_file_dict(self.path)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 287, in make_file_dict
return C.make_file_dict(filename)


ODPOVĚĎ


Dobrý den,

děkuji za odpověď.Zkoušel jsem Rdiff-backup
rdiff-backup /home/archos2 uzivatel@uzivatel.your-storagebox.de:archo2 a nevím jestli ještě musím doinstalovat.

Chyba:

archo2/u226493@u226493.your-storagebox.de:archo2/rdiff-backup.tmp.2116'' raised of class '':
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 304, in error_check_Main
try: Main(arglist)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 324, in Main
take_action(rps)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 280, in take_action
elif action == "backup": Backup(rps[0], rps[1])
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 346, in Backup
backup.Mirror(rpin, rpout)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 38, in Mirror
DestS.patch(dest_rpath, source_diffiter)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 232, in patch
ITR(diff.index, diff)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rorpiter.py", line 281, in __call__
last_branch.fast_process(*args)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 528, in fast_process
tf = TempFile.new(mirror_rp)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/TempFile.py", line 36, in new
return new_in_dir(rp_base.get_parent_rp())
File "/usr/lib/python2.7/dist-packages/rdiff_backup/TempFile.py", line 46, in new_in_dir
tf = dir_rp.append('rdiff-backup.tmp.%d' % _tfindex)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 1149, in append
return self.__class__(self.conn, self.base, self.index + (ext,))
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 884, in __init__
else: self.setdata()
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 908, in setdata
self.data = self.conn.rpath.make_file_dict(self.path)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 287, in make_file_dict
return C.make_file_dict(filename)

Traceback (most recent call last):
File "/usr/bin/rdiff-backup", line 30, in
rdiff_backup.Main.error_check_Main(sys.argv[1:])
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 304, in error_check_Main
try: Main(arglist)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 324, in Main
take_action(rps)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 280, in take_action
elif action == "backup": Backup(rps[0], rps[1])
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 346, in Backup
backup.Mirror(rpin, rpout)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 38, in Mirror
DestS.patch(dest_rpath, source_diffiter)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 232, in patch
ITR(diff.index, diff)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rorpiter.py", line 281, in __call__
last_branch.fast_process(*args)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 528, in fast_process
tf = TempFile.new(mirror_rp)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/TempFile.py", line 36, in new
return new_in_dir(rp_base.get_parent_rp())
File "/usr/lib/python2.7/dist-packages/rdiff_backup/TempFile.py", line 46, in new_in_dir
tf = dir_rp.append('rdiff-backup.tmp.%d' % _tfindex)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 1149, in append
return self.__class__(self.conn, self.base, self.index + (ext,))
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 884, in __init__
else: self.setdata()
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 908, in setdata
self.data = self.conn.rpath.make_file_dict(self.path)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 287, in make_file_dict
return C.make_file_dict(filename)


Ale vyzkouším i Vaše příkazy.Myslí,že by to tak v pohodě stačilo.Ten Borg nevím,sice má Hetzner na stránkách docela pěkný návod,ale nezkoušel jsem nikdy obnovu zálohy.Jen přes program Vorta.

ODPOVĚĎ


Dobrý den.
myslím,že to můžete značit za vyřešené.Trochu jsem upravil ty příkazy na Rsync a úplně v pohodě to bude stačit.Zbytečně bych to komplikoval.Tak ještě jednou moc děkuji za rady.
Zdenek

ODPOVĚĎ


Dobrý den,

v tom prvním je celkem jasná chyba, že je někde hodně dlouhý název souboru [Errno 36] File name too long.

Druhá chyba raised of class '' není jasná = vypadá to jak kdyby ještě něco mezi uvozovkama chybělo.

Je to divné, já nemám nikde problém s rdiff-backup... Tak alespoň, že Vám pomohl příklad s rsync. Show english version

Související obsah

linux

bash

terminal

backup

rdiff-backup

rsync

borg

Komentáře

Vaše reakce na Linux rsync - denní, týdenní a měsíční zálohování

Reference

Podívejte se na naše reference

Prohlédnout

Aplikace

Podívejte se na naše aplikace

Prohlédnout

Co umíme?

Podívejte se co umíme

Prohlédnout

Co umíme?

Vytváříme sofistikované aplikace pro náročné

Od webových aplikací přes android až po převodové můstky či složité informační systémy.

Podívejte se k nám

Máte ještě čas? Podívejte se na další rubriky

Tento web používá soubory cookie. Dalším procházením tohoto webu vyjadřujete souhlas s jejich používáním.. Více informací zde.