Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ### System Setup ###
- DIRS="/var/www/shop/public_html"
- BACKUP=/tmp/backup.$$
- NOW=$(date +"%d-%m-%Y")
- DELDATE=$(date -d "-7 days" +"%d-%m-%Y")
- ### MySQL Setup ###
- MUSER="xxx"
- MPASS="xxx"
- MHOST="localhost"
- MYSQL="$(which mysql)"
- MYSQLDUMP="$(which mysqldump)"
- GZIP="$(which gzip)"
- ### FTP server Setup ###
- FTPD="/backup"
- FTPU="xxxxxx"
- FTPP="xxxxxx"
- FTPS="xxxxxx"
- ### CALLBACK ###
- EMAILID="admin@xxxxxx.com"
- ### Start Backup ###
- [ ! -d ${BACKUP} ] && mkdir -p ${BACKUP} || :
- ### make a full backup ###
- FILE="html-full-${NOW}.tar.gz"
- tar -zcf ${BACKUP}/${FILE} ${DIRS} >/dev/null 2>&1
- ### Start MySQL Backup ###
- # Get all databases name
- DBS="$(${MYSQL} -u ${MUSER} -h ${MHOST} -p${MPASS} -Bse 'show databases' | grep -v performance_schema)"
- for db in ${DBS}
- do
- FILE=${BACKUP}/mysql-${db}.${NOW}-$(date +"%T").gz
- ${MYSQLDUMP} -u ${MUSER} -h ${MHOST} -p${MPASS} --single-transaction --routines --triggers ${db} | ${GZIP} > ${FILE}
- done
- ### Start FTP backup ###
- ncftp -u ${FTPU} -p ${FTPP} ${FTPS}<<EOF
- cd ${FTPD}/${DELDATE}
- rm *.gz
- cd ${FTPD}
- rmdir ${DELDATE}
- mkdir ${FTPD}
- mkdir ${FTPD}/${NOW}
- cd ${FTPD}/${NOW}
- lcd ${BACKUP}
- mput *
- quit
- EOF
- ### If ftp backup failed ###
- if [ "$?" == "0" ]; then
- find ${BACKUP}/ -type f -name "*.gz" -exec rm -rf {} \;
- else
- CALLBACK=/tmp/backup.failed
- echo "Date: $(date)">${CALLBACK}
- echo "Hostname: $(hostname)" >>${CALLBACK}
- echo "Backup failed" >>${CALLBACK}
- mail -s "BACKUP FAILED" "${EMAILID}" <${CALLBACK}
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement