From 63b93aec1cc7dc68fcf2a4ac87a9149cce3b325d Mon Sep 17 00:00:00 2001 From: root Date: Sat, 25 Jan 2020 12:18:02 -0500 Subject: [PATCH] added script --- backup.sh | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100755 backup.sh diff --git a/backup.sh b/backup.sh new file mode 100755 index 0000000..d77d567 --- /dev/null +++ b/backup.sh @@ -0,0 +1,45 @@ +#!/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"