Skip to content

Instantly share code, notes, and snippets.

@incraigulous
Last active October 29, 2021 15:20
Show Gist options
  • Save incraigulous/65ff91a2a3f9d0f92a6c63b6a1212113 to your computer and use it in GitHub Desktop.
Save incraigulous/65ff91a2a3f9d0f92a6c63b6a1212113 to your computer and use it in GitHub Desktop.
Wordpress Sync
#!/bin/bash
local_db_name=
local_db_host=
local_db_pass=
local_url=
local_uploads=
local_plugins=
sql_backup_loc=
uploads_backup_loc=
remote_db_name=
remote_ssh=
remote_url=
remote_uploads=
remote_plugins=
backup_file=$(date +%Y-%m-%d-%H-%M-%S)
echo "Creating backup folders..."
mkdir -p backup
mkdir -p backup/database
mkdir -p backup/uploads
echo "Dumping the remote db..."
ssh $remote_ssh "mysqldump ${remote_db_name} --no-tablespaces | bzip2 -c" > $sql_backup_loc/$backup_file.sql.bz2
echo "Recreating the local db..."
mysql -e "DROP DATABASE IF EXISTS ${local_db_name}"
mysql -e "CREATE DATABASE ${local_db_name}"
echo "Import dumped database..."
bunzip2 < $sql_backup_loc/$backup_file.sql.bz2 | mysql $local_db_name
echo "Replace URLs in database..."
wp search-replace $remote_url $local_url
echo "Sync uploads directory..."
rsync -r -u -v $remote_ssh:$remote_uploads/. $local_uploads/.
echo "Sync plugins directory..."
rsync -r -u -v $remote_ssh:$remote_plugins/. $local_plugins/.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment