Added encrypted backup function

This commit is contained in:
2020-09-17 14:00:11 +02:00
parent f44cfb0217
commit 0400e31178
3 changed files with 51 additions and 8 deletions

View File

@@ -11,8 +11,9 @@ function SiteBackup () {
WPUPDATE=0
AI1=0
SITEBACKENC=0
TEMP=`getopt -a -o d: -l sn:,db:,sd:,ext-files:,ai1,wpupdate,nodb,snotar,srsync,srsyncdel -- "$@"`
TEMP=`getopt -a -o d: -l sn:,db:,sd:,ext-files:,ai1,wpupdate,nodb,snotar,srsync,srsyncdel,tarenc -- "$@"`
eval set -- "$TEMP"
while true ; do
case "$1" in
@@ -60,6 +61,10 @@ while true ; do
SRSYNCDEL=1
shift 1
;;
--tarenc )
SITEBACKENC=1
shift 1
;;
--ext-files )
SITEEF=$2
shift 2
@@ -74,6 +79,11 @@ DBARRY=($DBNAME)
echo "Making backup of $SITENAME"
if [ ! -f "$ScriptLocation/key.bin" ] && [ $SITEBACKENC -eq 1 ] ; then
echo "Encription key not found"
exit
fi
##SITE Run
#creating folder
SITESENDDIR="$SENDDIR/$TODAY/$SITENAME/"
@@ -84,7 +94,12 @@ if [ "$AI1" = "1" ]; then
sudo -u "$SITENAME" wp --path="$SITEDIR" plugin update all-in-one-wp-migration-unlimited-extension
sudo -u "$SITENAME" wp --path="$SITEDIR" plugin update all-in-one-wp-migration
sudo -u "$SITENAME" wp --path="$SITEDIR" ai1wm backup
find "$SITEDIR"/wp-content/ai1wm-backups/ -name "*.wpress" -printf "%P\n"| tar -czf /"$SITESENDDIR"/"$SITENAME"-ai1wm.tar.gz --no-recursion -C "$SITEDIR"/wp-content/ai1wm-backups/ -T - #Create ai1wm tar File
if [ $SITEBACKENC -eq 1 ] ; then
find "$SITEDIR"/wp-content/ai1wm-backups/ -name "*.wpress" -printf "%P\n"| tar -czf - --no-recursion -C "$SITEDIR"/wp-content/ai1wm-backups/ -T - | openssl enc -e -aes256 -pass file:"$ScriptLocation"/key.bin -out /"$SITESENDDIR"/"$SITENAME"-ai1wm.tar.gz #Create ai1wm tar File
cp "$ScriptLocation"/key.bin.enc /"$SITESENDDIR"/"$SITENAME"-ai1wm.key.enc
else
find "$SITEDIR"/wp-content/ai1wm-backups/ -name "*.wpress" -printf "%P\n"| tar -czf /"$SITESENDDIR"/"$SITENAME"-ai1wm.tar.gz --no-recursion -C "$SITEDIR"/wp-content/ai1wm-backups/ -T - #Create ai1wm tar File
fi
rm -f "$SITEDIR"/wp-content/ai1wm-backups/*.wpress
fi
@@ -94,13 +109,23 @@ if [ "$NODB" != "1" ]; then
do
mysqldump -u "$DBUSER" "$i" --password="$DBPASS" --default-character-set=utf8 > "$TMPDIR"/"$SITENAME"-"$i".sql
done
find "$TMPDIR" -name "*.sql" -printf "%P\n"| tar -czf /"$SITESENDDIR"/"$SITENAME"-DB.tar.gz --no-recursion -C "$TMPDIR" -T - #Create tar File
if [ $SITEBACKENC -eq 1 ] ; then
find "$TMPDIR" -name "*.sql" -printf "%P\n"| tar -czf - --no-recursion -C "$TMPDIR" -T - | openssl enc -e -aes256 -pass file:"$ScriptLocation"/key.bin -out /"$SITESENDDIR"/"$SITENAME"-DB.tar.gz #Create tar File
cp "$ScriptLocation"/key.bin.enc /"$SITESENDDIR"/"$SITENAME"-DB.key.enc
else
find "$TMPDIR" -name "*.sql" -printf "%P\n"| tar -czf /"$SITESENDDIR"/"$SITENAME"-DB.tar.gz --no-recursion -C "$TMPDIR" -T - #Create tar File
fi
rm -f /"$TMPDIR"/*.sql
fi
#Taronmogelijking SiteFiles files
if [ "$SNOTAR" != "1" ]; then
tar -zcf /"$SITESENDDIR"/"$SITENAME"-Files.tar.gz $SITEDIR $SITEEF
if [ $SITEBACKENC -eq 1 ] ; then
tar -zcf - $SITEDIR $SITEEF | openssl enc -e -aes256 -pass file:"$ScriptLocation"/key.bin -out /"$SITESENDDIR"/"$SITENAME"-Files.tar.gz #Create tar File
cp "$ScriptLocation"/key.bin.enc /"$SITESENDDIR"/"$SITENAME"-Files.key.enc
else
tar -zcf /"$SITESENDDIR"/"$SITENAME"-Files.tar.gz $SITEDIR $SITEEF
fi
fi
#Running WP Update
@@ -135,10 +160,20 @@ source "$ScriptLocation/Backup-Util.conf"
echo "Making backup of System"
#SYSTEM run
if [ ! -f "$ScriptLocation/key.bin" ] && [ $SYSBACKENC -eq 1 ] ; then
echo "Encription key not found"
exit
fi
#Taring SiteFiles files
SYSSENDDIR="$SENDDIR/$TODAY/System/"
mkdir -p $SYSSENDDIR
tar -zcf /"$SYSSENDDIR"/$(hostname -s)-Files.tar.gz $SYSTEMFILES
if [ $SYSBACKENC -eq 1 ] ; then
tar -zcf - $SYSTEMFILES | openssl enc -e -aes256 -pass file:"$ScriptLocation"/key.bin -out /"$SYSSENDDIR"/$(hostname -s)-Files.tar.gz
cp "$ScriptLocation"/key.bin.enc /"$SYSSENDDIR"/$(hostname -s)-Files.key.enc
else
tar -zcf /"$SYSSENDDIR"/$(hostname -s)-Files.tar.gz $SYSTEMFILES
fi
echo "Sending files to remote server"