Last active
May 20, 2020 15:39
-
-
Save alexws54tk/038f2d0f947ea62aaf64391cbfb725be to your computer and use it in GitHub Desktop.
Backup Sites DBs and Sites files
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Add to /etc/crontab | |
% cat /etc/crontab | |
#min hr dom mon dow user command | |
40 23 * * * <user> /path/to/backup-db-se.sh | |
% cat backup-db-se.sh | |
#!/bin/bash | |
VERSION="20190111" # vaersion of script file | |
NOW=$(date +"%Y-%m-%d") | |
# xz, bzip2, gzip | |
ARCHPROG=xz | |
# xz, bz2, gz | |
ARCHEXT="xz" | |
# dir to backup | |
BDIR="/path/to/backups" | |
DEBUG=0 | |
if [ $# > 0 ]; then | |
case $1 in | |
"-V" | "--version" ) | |
# print version | |
echo "Script version: $VERSION" | |
exit 0 | |
;; | |
"-v" | "--verbose" ) | |
# print debug messages | |
DEBUG=1 | |
;; | |
*) | |
# | |
;; | |
esac | |
fi | |
if [ ! -d ${BDIR}/${NOW} ]; then | |
mkdir -p ${BDIR}/${NOW} | |
fi | |
DIR="${BDIR}/${NOW}" | |
# user & password | |
USER=backupdb | |
PASS=backupdb | |
# databases to backup | |
DBS="moodle mysql " | |
# Or all databases in separate files | |
# DBS="$(mysql -u ${USER} -p${PASS} -Bse 'show databases')" | |
for db in ${DBS}; do | |
ND=$(date +"%H-%M-%S") | |
FILEFR="${NOW}-sql-${db}-${ND}.sql" | |
FILETO="${DIR}/${FILEFR}.${ARCHEXT}" | |
if [ ${DEBUG} -ne 0 ]; then | |
echo "BackUp ${db}\t to ${FILETO}" | |
mysqldump -u ${USER} -p${PASS} ${db} | ${ARCHPROG} -6 -v > ${FILETO} # | pv -cN ${ARCHPROG} | |
echo "complite" | |
else | |
mysqldump -u ${USER} -p${PASS} ${db} | ${ARCHPROG} -6 > ${FILETO} # | pv -cN ${ARCHPROG} | |
fi | |
done | |
# Backup site files | |
cd /var/www | |
# Sites to backup | |
FLS="moodle site_2 site_3" # | |
for fl in $FLS; do | |
ND=$(date +"%H-%M-%S") | |
FLN="${DIR}/${NOW}-${fl}-${ND}.tar.${ARCHEXT}" | |
if [ ${DEBUG} -ne 0 ]; then | |
echo -e "BackUp ${fl}\t to ${FLN}" | |
tar --exclude-vcs --exclude-backups -c -f - ${fl} | ${ARCHPROG} -6 -v > ${FLN} | |
echo "done" | |
else | |
tar --exclude-vcs --exclude-backups -c -f - ${fl} | ${ARCHPROG} -6 > ${FLN} | |
fi | |
done | |
### | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment