Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Nico Renken
- # 2017
- # Datenbanken
- declare -a hosts=("127.0.0.2" "127.0.0.3" )
- declare -a dbs=("db_12345" "db_54321" )
- declare -a users=("u_12345" "u_54321" )
- declare -a pass=("secure" "moresecure" )
- # Verzeichnis zum Sichern
- Backupdir="/home/users/alfed/dbBackups"
- # Taegliche Sicherungen nach X Tagen loeschen
- DeleteOlderThanDays=10
- # Wochentliche Sicherungen nach X Tagen loeschen
- WeeklyDeleteOlderThanDays=60
- # Monatliche Sicherungen nach X Tagen loeschen
- MonthlyDeleteOlderThanDays=365
- DeleteMask=db*.sql.gz
- ##################################################################
- current_month_day=`date +"%d"`
- current_week_day=`date +"%u"`
- ##################################################################
- ############################ Sichern #############################
- ##################################################################
- typeset -i i=0 max=${#hosts[*]}
- while (( i < max ))
- do
- echo "Sicherung: ${hosts[$i]} DB: ${dbs[$i]}"
- FILE=${Backupdir}/${dbs[$i]}.`date +"%Y%m%d"`.sql
- ## Falls vorhanden, dateileichen l�schen
- rm ${FILE} 2> /dev/null
- rm ${FILE}.gz 2> /dev/null
- /usr/bin/mysqldump ${dbs[$i]} --routines --quick --host=${hosts[$i]} --user=${users[$i]} --password=${pass[$i]} > ${FILE}
- gzip ${FILE}
- echo "${dbs[$i]} gesichert"
- i=i+1
- # monatliches Backup immer am 1.
- if [ "${current_month_day}" -eq 1 ] ; then
- cp ${FILE}.gz ${Backupdir}/monthly
- fi
- # Sonntags das Weekly Backup
- if [ "${current_week_day}" -eq 7 ] ; then
- cp ${FILE}.gz ${Backupdir}/weekly
- fi
- done
- ##################################################################
- #################### Alte Sicherungen loeschen ###################
- ##################################################################
- find ${Backupdir} -maxdepth 1 -mtime +${DeleteOlderThanDays} -iname ${DeleteMask} -delete
- find ${Backupdir}/weekly -maxdepth 1 -mtime +${WeeklyDeleteOlderThanDays} -iname ${DeleteMask} -delete
- find ${Backupdir}/monthly -maxdepth 1 -mtime +${MonthlyDeleteOlderThanDays} -iname ${DeleteMask} -delete
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement