nTV-backup_public/backup.sh
2020-01-25 12:18:48 -05:00

46 lines
1.2 KiB
Bash
Executable File

#!/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
ssh "${sshLoc}" "find backup/rsync/$servername/ -type f -atime +2 -delete; find backup/rsync/$servername/ -type d -empty -delete"