Portál AbcLinuxu, 4. prosince 2025 21:19
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)?
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
#!/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
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.