Portál AbcLinuxu, 12. května 2025 05:20
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.