Skip to content

Instantly share code, notes, and snippets.

@johanoloflindberg
Forked from pelmered/wp-db-backup.sh
Last active August 29, 2015 14:26
Show Gist options
  • Save johanoloflindberg/a033c218957f24f7e267 to your computer and use it in GitHub Desktop.
Save johanoloflindberg/a033c218957f24f7e267 to your computer and use it in GitHub Desktop.
WP-CLI snippets and scripts
# Only database backup
declare -a SITES=('site1' 'site2' 'site3' 'site4');
SITES_PATH_BASE=/var/www/
SITES_PATH_SUFIX=/repo/public
SITES_BACKUP_FOLDER=backups
CURRENT_DATE=`date +%Y-%m-%d`;
for SITE in ${SITES[@]}
do
echo "";
echo "Taking backup of ${SITE}..."
BACKUP_FOLDER=${SITES_PATH_BASE}${SITE}/${SITES_BACKUP_FOLDER};
# Create backup folder if it does not exist
if [ ! -d $BACKUP_FOLDER ]; then
echo "Creating folder ${BACKUP_FOLDER}";
mkdir -p $BACKUP_FOLDER;
fi
BACKUP_FILENAME=${BACKUP_FOLDER}/db_backup-${CURRENT_DATE}.sql;
# Export db and save the backup relative to the public dir
wp db export ${BACKUP_FILENAME} --path=${SITES_PATH_BASE}${SITE}${SITES_PATH_SUFIX} --allow-root;
done
# Backups files and databases + updating WordPress and plugins with extra paramter ( "./wp-maintenance.sh update" )
declare -a SITES=('site1' 'site2' 'site3' 'site4');
SITES_PATH_BASE=/var/www/
SITES_PATH_SUFIX=/repo/public
SITES_BACKUP_FOLDER=backups
CURRENT_DATE=`date +%Y-%m-%d`;
PARAM1=$1;
for SITE in ${SITES[@]}
do
SITE_PUBLIC_DIR=${SITES_PATH_BASE}${SITE}${SITES_PATH_SUFIX}
echo "";
echo "Taking backup of ${SITE}..."
BACKUP_FOLDER=${SITES_PATH_BASE}${SITE}/${SITES_BACKUP_FOLDER};
# Create backup folder if it does not exist
if [ ! -d $BACKUP_FOLDER ]; then
echo "Creating folder ${BACKUP_FOLDER}";
mkdir -p $BACKUP_FOLDER;
fi
echo "Backing up the database..."
SQL_BACKUP_FILENAME=${BACKUP_FOLDER}/${SITE}_db_backup-${CURRENT_DATE}.sql;
# Export db and save the backup relative to the public dir
wp db export ${SQL_BACKUP_FILENAME} --path=${SITE_PUBLIC_DIR} --allow-root;
echo "Backing up the files..."
FILE_BACKUP_FILENAME=${BACKUP_FOLDER}/${SITE}_file_backup-${CURRENT_DATE}.tar.gz;
tar -czpf ${FILE_BACKUP_FILENAME} -C ${SITE_PUBLIC_DIR} .;
echo "Files backup saved to ${FILE_BACKUP_FILENAME}";
echo "Backup completed";
if [ "${PARAM1}" == "update" ]; then
echo "Updating WordPress...";
wp core update --path=${SITE_PUBLIC_DIR} --allow-root;
echo "Updating plugins...";
wp plugin update --all --path=${SITE_PUBLIC_DIR} --allow-root;
fi
echo "Done";
echo "";
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment