Portál AbcLinuxu, 12. května 2025 05:20

Dotaz: Rotace zaloh

22.3.2010 19:02 rain
Rotace zaloh
Přečteno: 287×
Odpovědět | Admin
udelal jsem si kdysi davno skriptik na zalohovani, problem je ten ze tehdy zalohy mely 20mb tehdy stacilo semtam to promaznout ale dneska uz to nestaci jedna totiz dneska ma kolem 10gb. Nemate nekdo nejaky sikovny zalohovaci rotovaci skriptik ? nedal by se na to pouzit nejaky jednoduchy linuxovy nastroj ?
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

22.3.2010 19:44 fraxinus | skóre: 20 | blog: fraxinus
Rozbalit Rozbalit vše Re: Rotace zaloh
Odpovědět | | Sbalit | Link | Blokovat | Admin
./zaloha && rm `ls -t1 | head -1`

(za predpokladu ze su v akt. adresari vzdy aspon 2 zalohy)
22.3.2010 19:52 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Rotace zaloh
Odpovědět | | Sbalit | Link | Blokovat | Admin
nedal by se na to pouzit nejaky jednoduchy linuxovy nastroj ?
Nestačil by logrotate (možná by stačilo mu zakázat kompresi a vypnout posílání signálu na restart démonu)?
I am always ready to learn although I do not always like to be taught. (W. Churchill)
AraxoN avatar 22.3.2010 20:45 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: Rotace zaloh
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ja používam také čosi. Podstatný je tam ten find:
#!/bin/sh

BACKUP_PATH=/var/backup/
KEEP_DAYS=7

#### Postgres ####

# zrusime starsie zalohy databazy (>KEEP_DAYS dni)
find ${BACKUP_PATH} -maxdepth 1 -mtime +${KEEP_DAYS} -name 'db-*-athena-postgres.sql.gz' -exec rm -f {} +

# vytvorime novu zalohu databazy
PGCLIENTENCODING="UTF-8" /usr/bin/pg_dumpall -U mato -h athena.local | /bin/gzip > ${BACKUP_PATH}db-`date +%Y%m%d-%H%M`-athena-postgres.sql.gz
22.3.2010 21:41 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Rotace zaloh
Pozor na to!
Jednoznačně otočit pořadí a testovat jestli záloha proběhla korektně, nebo může dojít k tomu že se to vše promaže a nové zálohy nebudou vznikat :(
Ja zálohuji nějak takto (mimo jiné) - jsem to očesal.
Vytváří to pro každý den adresář a do něj to dává jednotlivé prvky záloh. A až nakonec, pokud vše doběhne ok, promazává
Ale zas pokud neproběhne něco na začátku neproběhne nic dalšího ... a dojde email.
#!/bin/bash
ADMIN="pepa@z-depa.cz pepa2@z-depa2.cz"
HOSTNAME=`/bin/hostname`
FROM="$HOSTNAME@zdepa.cz"
NOWDATE=`date +%F`
HOMEBCKP="/share/backup"
COUNTBCKP=15

echo "`date '+%F %X'` - Started "
let "COUNTBCKP = $COUNTBCKP - 1"

myexit(){
 logger -p error "backup: Failure. Message: $1"
  echo "BACKUP ERROR !!! on ${HOSTNAME} Message: $1" | /usr/bin/mailx \
    -s "BACKUP ERROR: ${HOSTNAME}" -r ${FROM} ${ADMIN}
 exit $2
}

#to backup directory
cd $HOMEBCKP
if [ $? != 0 ]; then
  myexit "Error: directory $HOMEBCKP not exists" 1
fi

mkdir $NOWDATE
if [ $? != 0 ]; then
  myexit "Error: create backup directory " 2
fi

cd $HOMEBCKP/$NOWDATE
if [ $? != 0 ]; then
  myexit "Error: directory $HOMEBCKP/$NOWDATE not exists" 3
fi


dump Sql
mysqldump --user=dumpuser --password=e5PdB2fNpcvXMGjB  --add-drop-database --add-drop-table --add-locks --all-databases --comments --create-options --disable-keys --flush-logs --hex-blob --routines --single-transaction --max_allowed_packet=4M > $HOSTNAME-mysql-$NOWDATE.sql
if [ $? != 0 ]; then
  myexit "Error: sql dump error" 10
fi

gzip -9  $HOSTNAME-mysql-$NOWDATE.sql
if [ $? != 0 ]; then
  myexit "Error: gzip sql  error" 11
fi

#home
cd /
if [ $? != 0 ]; then
  myexit "Error: cd /" 61
fi

tar -czf $HOMEBCKP/$NOWDATE/$HOSTNAME-home.tar.gz home
if [ $? != 0 ]; then
  myexit "Error: tar -czf etc" 62
fi

#delete old backups, '2*' - only directory begin '2' - for sure :)
find ./ -maxdepth 1 -type d -mtime +$COUNTBCKP -path "./2*" -exec rm -rf {} \;
if [ $? != 0 ]; then
  myexit "Error: delete old backups " 109
fi

echo "`date '+%F %X'` - Finished"
logger -p info "backup: OK"
exit 0

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
AraxoN avatar 22.3.2010 22:25 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: Rotace zaloh
Áno, to je správna pripomienka.

Tamto vyššie sa spúšťa z cron-u a ak dôjde miesto na disku (alebo sa vyskytne iná chyba) tak sa to objaví na stdout alebo stderr a príde e-mail. Also, zálohujeme na osobitný oddiel (/var/backup je mountpoint) a voľné miesto na jednotlivých oddieloch monitoruje ešte iný skript.

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.