2020-01-25 12:18:02 -05:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
## Backup Script Nick Leffler 20190326 ##
|
|
|
|
|
|
|
|
servername=$(hostname --fqdn)
|
|
|
|
date22=$(date +'%Y%m%d_%H%M')
|
|
|
|
bdir="/opt/backup"
|
|
|
|
dir="${bdir}/${date22}"
|
|
|
|
sqlDir="${dir}/mysql"
|
|
|
|
sshLoc="location_to_rsync_to"
|
|
|
|
|
|
|
|
mkdir -p "${dir}" || exit
|
|
|
|
|
|
|
|
sqlBackup () {
|
|
|
|
mkdir -p "${sqlDir}" || exit
|
|
|
|
databases=`mysql -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"`
|
|
|
|
for db in $databases; do
|
|
|
|
mysqldump --force --opt --databases $db > "${sqlDir}/$db.sql"
|
|
|
|
done
|
|
|
|
mysqldump --all-databases > "${sqlDir}/fullDump.sql"
|
|
|
|
tar -Jcf "${dir}/${date22}-mysql.tar.xz" "${sqlDir}" > /dev/null 2>&1
|
|
|
|
sleep 4
|
|
|
|
rm -rf "${sqlDir}"
|
|
|
|
}
|
|
|
|
|
|
|
|
# SQL Backup
|
|
|
|
sqlBackup
|
|
|
|
|
|
|
|
# etc backup
|
|
|
|
tar -Jcf "${dir}/${date22}-etc.tar.xz" "/etc/" > /dev/null 2>&1
|
|
|
|
|
|
|
|
# root dir backup
|
|
|
|
tar -Jcf "${dir}/${date22}-root.tar.xz" "/root/" > /dev/null 2>&1
|
|
|
|
|
|
|
|
# WWW data backup
|
|
|
|
tar --exclude='old' -Jcf "${dir}/${date22}-www.tar.xz" "/usr/share/nginx/html/" > /dev/null 2>&1
|
|
|
|
|
|
|
|
# Copy to backup server
|
|
|
|
rsync -vP -a "${bdir}"/ "${sshLoc}:backup/rsync/${servername}/"
|
|
|
|
|
|
|
|
# delete backup after moving
|
|
|
|
rm -rfv "${bdir}/"*
|
|
|
|
|
|
|
|
# delete older than 2 days since there's already snapshots
|
2020-01-25 12:18:48 -05:00
|
|
|
ssh "${sshLoc}" "find backup/rsync/$servername/ -type f -atime +2 -delete; find backup/rsync/$servername/ -type d -empty -delete"
|