Local to Git migration
This commit is contained in:
139
Backup-Util.sh
Normal file
139
Backup-Util.sh
Normal file
@@ -0,0 +1,139 @@
|
||||
#Check for Backup-Util config file
|
||||
ScriptLocation="`dirname \"$0\"`"
|
||||
if [ ! -f "$ScriptLocation/Backup-Util.conf" ]; then
|
||||
echo "Config file does not exist."
|
||||
echo "Expected config location: $ScriptLocation/Backup-Util.conf"
|
||||
echo "Exiting"
|
||||
exit
|
||||
fi
|
||||
|
||||
function SiteBackup () {
|
||||
|
||||
WPUPDATE=0
|
||||
AI1=0
|
||||
|
||||
TEMP=`getopt -a -o d: -l sn:,db:,sd:,ext-files:,ai1,wpupdate,nodb -- "$@"`
|
||||
eval set -- "$TEMP"
|
||||
while true ; do
|
||||
case "$1" in
|
||||
-d )
|
||||
DOMAIN=$2
|
||||
shift 2
|
||||
;;
|
||||
--sn )
|
||||
SITENAME=$2
|
||||
shift 2
|
||||
;;
|
||||
--db )
|
||||
DBNAME=$2
|
||||
shift 2
|
||||
;;
|
||||
--sd )
|
||||
SITEDIR=$2
|
||||
shift 2
|
||||
;;
|
||||
--ext-files )
|
||||
SITEEF=$2
|
||||
shift 2
|
||||
;;
|
||||
--ai1 )
|
||||
AI1=1
|
||||
shift 1
|
||||
;;
|
||||
--wpupdate )
|
||||
WPUPDATE=1
|
||||
shift 1
|
||||
;;
|
||||
--nodb )
|
||||
NODB=1
|
||||
shift 1
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done;
|
||||
|
||||
DBARRY=($DBNAME)
|
||||
|
||||
echo "Making backup of $SITENAME"
|
||||
|
||||
##SITE Run
|
||||
#creating folder
|
||||
SITESENDDIR="$SENDDIR/$TODAY/$SITENAME/"
|
||||
mkdir -p $SITESENDDIR
|
||||
|
||||
#Creating AI1M file
|
||||
if [ "$AI1" = "1" ]; then
|
||||
sudo -u www-data wp --path="$SITEDIR" plugin update all-in-one-wp-migration-unlimited-extension
|
||||
sudo -u www-data wp --path="$SITEDIR" plugin update all-in-one-wp-migration
|
||||
sudo -u www-data 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
|
||||
rm -f "$SITEDIR"/wp-content/ai1wm-backups/*.wpress
|
||||
fi
|
||||
|
||||
#Dumping DataBase(es)
|
||||
if [ "$NODB" != "1" ]; then
|
||||
for i in "${DBARRY[@]}"
|
||||
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
|
||||
rm -f /"$TMPDIR"/*.sql
|
||||
fi
|
||||
|
||||
#Taronmogelijking SiteFiles files
|
||||
tar -zcf /"$SITESENDDIR"/"$SITENAME"-Files.tar.gz $SITEDIR $SITEEF
|
||||
|
||||
#Running WP Update
|
||||
if [ $WPUPDATE = 1 ]; then
|
||||
wp cli update
|
||||
sudo -u www-data wp --path="$SITEDIR" core update
|
||||
sudo -u www-data wp --path="$SITEDIR" plugin update --all
|
||||
sudo -u www-data wp --path="$SITEDIR" theme update --all
|
||||
fi
|
||||
|
||||
unset DOMAIN SITENAME DBNAME SITEDIR SITEEF AI1 WPUPDATE NODB DBARRY
|
||||
}
|
||||
|
||||
#Setting static Vars and getting Configuration
|
||||
RMDAYS=$(sed -n '/RMDAYS/p' "$ScriptLocation/Backup-Util.conf" | sed -n 's/RMDAYS=//p' | head -n 1 | grep -o -E '[0-9]+')
|
||||
LFTP=/usr/bin/lftp #Path to binary
|
||||
TMPDIR=$(mktemp -d) #Your archives are here
|
||||
SENDDIR=$(mktemp -d) #Sends everything in this folder to ftp
|
||||
TODAY=$(date "+%d-%m-%Y") #Today's date like DD-MM-YYYY
|
||||
RMDATE=$(date "+%d-%m-%Y" -d "$RMDAYS days ago") #TODAY minus X days - too old files
|
||||
DOM=`date '+%d'` #Day of the month
|
||||
source "$ScriptLocation/Backup-Util.conf"
|
||||
|
||||
echo "Making backup of System"
|
||||
#SYSTEM run
|
||||
#Taring SiteFiles files
|
||||
SYSSENDDIR="$SENDDIR/$TODAY/System/"
|
||||
mkdir -p $SYSSENDDIR
|
||||
tar -zcf /"$SYSSENDDIR"/$(hostname -s)-Files.tar.gz $SYSTEMFILES
|
||||
|
||||
|
||||
echo "Sending files to remote server"
|
||||
if [ $BACKUPSERVICE = ftp ]; then
|
||||
#Uploading and remove first backup on FTP
|
||||
lftp -c "open -u ${REMOTEUSER},${FTPPW} ftp://${REMOTESERVER}; mirror -p -O /${REMOTEPATH} -R -F ${SENDDIR}/*; rm -rf /${REMOTEPATH}/${RMDATE}"
|
||||
|
||||
#Checking and running monthly backup to FTP
|
||||
if [ $DOM == $DOMC ]; then
|
||||
lftp -c "open -u ${REMOTEUSER},${FTPPW} ${REMOTESERVER}; rm -rf /${REMOTEPATH}/Monthly/; mkdir -p /${REMOTEPATH}/Monthly/; mirror -p -O /${REMOTEPATH}/Monthly/ -R -F ${SENDDIR}/${TODAY}/*"
|
||||
fi
|
||||
elif [ $BACKUPSERVICE = sftp ]; then
|
||||
#Uploading and remove first backup on SFTP
|
||||
lftp -c "open -u ${REMOTEUSER}, sftp://${REMOTESERVER}; mirror -p -O /${REMOTEPATH} -R -F ${SENDDIR}/*; rm -rf /${REMOTEPATH}/${RMDATE}"
|
||||
|
||||
#Checking and running monthly backup to SFTP
|
||||
if [ $DOM == $DOMC ]; then
|
||||
lftp -c "open -u ${REMOTEUSER}, sftp://${REMOTESERVER}; rm -rf /${REMOTEPATH}/Monthly/; mkdir -p /${REMOTEPATH}/Monthly/; mirror -p -O /${REMOTEPATH}/Monthly/ -R -F ${SENDDIR}/${TODAY}/*"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
#Deletes Temp Folder
|
||||
echo "Clean UP"
|
||||
rm -r "$SENDDIR" && rm -r "$TMPDIR"
|
||||
Reference in New Issue
Block a user