Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # A Simple Shell Script to Backup Red Hat / CentOS / Fedora / Debian / Ubuntu Apache Webserver and SQL Database
- # Path to backup directories
- USER="hery"
- HOME="/home"
- # Store only day of month
- DOM=$(date +"%d")
- # Temporary backup name
- # this will be created under /tmp
- BACKUPDIR="/backup"
- # Backup file name hostname.time.tar.gz
- HOMEFILE="$USER-home-$DOM.tar.gz"
- MYSQLFILE="$USER-mysql-$DOM.tar.gz"
- # Specify databases
- DBNAME1="hery_db"
- # Set MySQL username and password
- MYSQLUSER="MYSQL-USER-NAME"
- MYSQLPASSWORD="MYSQL-PASSWORD"
- # Remote SSH server setup - FOR A LATER DATE
- SSHSERVER="backup.example.com" # your remote ssh server
- SSHUSER="" # username
- SSHDUMPDIR="/backup/" # remote ssh server directory to store dumps
- SSHPORT=22
- # Paths for binary files
- TAR="/bin/tar"
- MYSQLDUMP="/usr/bin/mysqldump"
- GZIP="/bin/gzip"
- SCP="/usr/bin/scp"
- SSH="/usr/bin/ssh"
- LOGGER="/usr/bin/logger"
- #security reason
- BACKUPDIR=/tmp${BACKUPDIR}
- # make sure backup directory exists
- [ ! -d $BACKUPDIR ] && mkdir -p ${BACKUPDIR}
- #clean backup dir
- rm -rf ${BACKUPDIR}/*
- # Log backup start time in /var/log/messages
- $LOGGER "$0: *** Backup started @ $(date) ***"
- # Backup websever dirs
- $TAR -zcvf ${BACKUPDIR}/${HOMEFILE} "${HOME}"
- # Individual MySQL Backups
- $MYSQLDUMP -u ${MYSQLUSER} -h localhost -p${MYSQLPASSWORD} ${DBNAME1} | $GZIP -9 > ${BACKUPDIR}/${MYSQLFILE}
- # Dump all local files to failsafe remote UNIX ssh server / home server - FOR A LATER DATE
- $SSH -p ${SSHPORT} ${SSHUSER}@${SSHSERVER} mkdir -p ${SSHDUMPDIR}
- $SCP -r ${BACKUPDIR}/* ${SSHUSER}@${SSHSERVER}:${SSHDUMPDIR}
- # Log backup end time in /var/log/messages
- $LOGGER "$0: *** Backup Ended @ $(date) ***"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement