Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- ## Backup prefix
- PREFIX="bu_"
- ## Dirs which should be backed
- TOBACKUP="/home/ /var/www/"
- ## MySQL login data
- MYSQLUSER="test"
- MYSQLPASS="test"
- MYSQLHOST="localhost"
- ## Dir to save backup
- OUTDIR="/"
- ## FTP login form the backup FTP server (optional)
- FTPHOST="test"
- FTPUSER="test"
- FTPPASS="test"
- ## Backup password (optional)
- ## BACKUPPASS="Zip File mit PW schützen!"
- ## Working dir
- WORKINGDIR="/tmp/"
- ## Logfile
- LOGFILE="/var/log/${PREFIX}backup.log"
- ##
- ## </Configuration>
- ##
- if [ -n "$OUTDIR" ]; then
- ## Set prozess priority
- renice -19 -p $$ 1> /dev/null 2>> $LOGFILE
- ## Set I/O priority
- ionice -c2 -n1 -p $$ 1> /dev/null 2>> $LOGFILE
- ## Date and time
- DATE=$(date +%Y-%m-%d-%H%M%S)
- ## Create and enter working dir
- mkdir ${WORKINGDIR}${PREFIX}${DATE}
- cd ${WORKINGDIR}${PREFIX}${DATE}
- ## Create a list with installed deb pakets
- dpkg --get-selections > "deb.list"
- TOBACKUP="${TOBACKUP} deb.list"
- ## Create MySQL dump environment
- mkdir mysqldumps/
- TOBACKUP="${TOBACKUP} mysqldumps/"
- ## Create MySQL dumps from all databases
- DBS="$(mysql -h $MYSQLHOST -u $MYSQLUSER -p$MYSQLPASS -Bse 'show databases' 2>> $LOGFILE)"
- if [ $? -ne 0 ]; then
- ## Delete temporary files
- rm -r ${WORKINGDIR}${PREFIX}${DATE}
- exit 1
- fi
- for DB in $DBS; do
- mysqldump -h $MYSQLHOST -u $MYSQLUSER -p$MYSQLPASS $DB > "mysqldumps/${DB}.sql"
- done
- ## Compress and / or decrypt files
- if [ -n "$BACKUPPASS" ]; then
- VAR_EXTENSION=".tar.bz2.gpg"
- tar -cf - $TOBACKUP 2> /dev/null | gpg -c --symmetric --bzip2-compress-level 9 --passphrase ${BACKUPPASS} > "${PREFIX}${DATE}${VAR_EXTENSION}"
- else
- VAR_EXTENSION=".tar.bz2"
- tar -cf - $TOBACKUP 2> /dev/null | bzip2 -c --best > "${PREFIX}${DATE}${VAR_EXTENSION}"
- fi
- if [ -n "$FTPHOST" ] && [ -n "$FTPUSER" ] && [ -n "$FTPPASS" ]; then
- ## Save backup on FTP server
- ncftpput -u $FTPUSER -p $FTPPASS $FTPHOST $OUTDIR "${PREFIX}${DATE}${VAR_EXTENSION}" 2>> $LOGFILE
- else
- ## Save backup lokal
- cp "${PREFIX}${DATE}${VAR_EXTENSION}" "$OUTDIR" 2>> $LOGFILE
- fi
- ## Delete temporary files
- rm -r ${WORKINGDIR}${PREFIX}${DATE}
- if [ $? -ne 0 ]; then
- exit 1
- else
- exit 0
- fi
- else
- echo "Error: Output dir is empty" >> $LOGFILE
- exit 1
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement