Portál AbcLinuxu, 8. května 2025 06:52

Dotaz: Bash skript pro Synology

26.11.2018 10:45 Gwaihir
Bash skript pro Synology
Přečteno: 1128×
Odpovědět | Admin
Zdravím,

mám Synology DS215j a potřebuju zálohovat věci ze dvou míst: 1) L58 - místo v lokální síti 2) L14 - místo, které se pomocí openVPN a routerů mikrotik tváří jako lokální, ale je to regulerně přes internet připojené

Zálohuju obsah dvou adresářů a vždy jen poslední soubor:

#/bin/sh

cd /volume1/BACKUP/mount/L58mount/ cp `ls -rt * | tail -1` /volume1/BACKUP/L58/ cd /volume1/BACKUP/mount/L14mount/ cp `ls -rt * | tail -1` /volume1/BACKUP/L14/

Docela to jede samo, jak má, ale občas se stalo, že místo L14 se nestáhl celý soubor o velikosti 1,83GB, ale třeba jen půlka, tak jsem přidal toto:

cp -u `ls -rt * | tail -1` /volume1/BACKUP/L14/

a celkem to funguje - nebo existuje lepší řešení? Protože toto není 100%, ale asi 99%.

Problém je v tom, že se mi na NASu hromadí zálohy a stačí mě jen pár, nepotřebuju jich 10. Jak udělám, abych třeba vždy první soubor v patřičném adresáři smazal?

Docela v tom tápu.

Děkuji.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.11.2018 14:51 NN
Rozbalit Rozbalit vše Re: Bash skript pro Synology
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co je v tech 1.8GB souborech? Neslo by to pojmout cele nejak jinak? Co se to vlastne zalohuje, nejake zabalene adresare? Napriklad vyuzit rozdilovych zaloh pomoci rsync? Je nutne provadet zalohu kazdy den?
26.11.2018 16:51 Gwaihir
Rozbalit Rozbalit vše Re: Bash skript pro Synology
Je tam v podstatě dump databáze. Musí se to zálohovat každý den. Tenhle přístup (namapovane adresáře) mám zejména z toho důvodu, že se bojím kryptovirů.
26.11.2018 15:03 debian
Rozbalit Rozbalit vše Re: Bash skript pro Synology
Odpovědět | | Sbalit | Link | Blokovat | Admin
Skopiruj data a potm over velkost. Ak v BASH, tak velkost zistis:
du -b path
zmazat posledny, nastroje:
ls - zisti vypis (daj vypisat podla casu
tail - zobrazi iba posledny riadok
head - zobrazi iba prvy riadok
rm - zmaze riadok
find - vypis
26.11.2018 16:53 Gwaihir
Rozbalit Rozbalit vše Re: Bash skript pro Synology
Takže něco s rm a head zkusím vymyslet. Dík.
26.11.2018 19:57 Gwaihir
Rozbalit Rozbalit vše Re: Bash skript pro Synology
Takže: rm `ls -rt * | head -1` ?
28.11.2018 16:22 GeorgeWH | skóre: 42
Rozbalit Rozbalit vše Re: Bash skript pro Synology
Co ti v pripade, ze ten skript pustis napr. 5x za sebou, vymaze poslednych 5 zaloh. Lepsie je pouzit napr. "find" s parametrom "-mtime".
29.11.2018 12:24 Gwaihir
Rozbalit Rozbalit vše Re: Bash skript pro Synology
Ještě neumím používat rm :(

rm ‘ls -rt * | find -mtime 4’ rm: cannot remove ‘ls -rt * | find -mtime 4’: No such file or directory

Co dělám blbě? Ještě teda vím, že tam patří -f, ale to akurát neuvidím, že to neudělá.
26.11.2018 15:16 Pepan
Rozbalit Rozbalit vše Re: Bash skript pro Synology
Odpovědět | | Sbalit | Link | Blokovat | Admin
https://github.com/laurent22/rsync-time-backup
26.11.2018 16:54 Gwaihir
Rozbalit Rozbalit vše Re: Bash skript pro Synology
To nevypadá špatně, ale zatím tomu nerozumím a nevím, jestli mi i to na synology pojede.
28.11.2018 18:53 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Bash skript pro Synology
Možná spíš rdiff-backup viz starší článek na root. Funguje to dobře a na Synology to snad taky běží. Rsync algoritmus bude možná (???) efektivnější pro rozbalené dumpy databáze - pokud nevadí větší objem dat prvního snapshotu.
-- OldFrog
28.11.2018 09:37 KOLEGA | skóre: 17 | blog: odpocinuti_vecne
Rozbalit Rozbalit vše Re: Bash skript pro Synology
Odpovědět | | Sbalit | Link | Blokovat | Admin
Hele a nechces misto lepeni rsync skriptu sestavit komplexnejsi reseni zaloh jako je treba bacula? Je to celkem komplexni reseni zaloh, mozna trochu overkill pro tvoje ucely, ale nam se to v praci osvedcilo. Zalohy cca 15 serveru.
29.11.2018 12:33 Gwaihir
Rozbalit Rozbalit vše Re: Bash skript pro Synology
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak jsem to asi zvládl. Děkuji všem za pomoc.

#/bin/sh

cd /volume1/BACKUP/mount/L58mount/

cp `ls -rt * | tail -1` /volume1/BACKUP/L58/

cd /volume1/BACKUP/L58

find -mtime 4 -delete

cd /volume1/BACKUP/mount/L14mount/

cp `ls -rt * | tail -1` /volume1/BACKUP/L14/

cp -u `ls -rt * | tail -1` /volume1/BACKUP/L14/

cd /volume1/BACKUP/L14

find -mtime 4 -delete

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.