#!/bin/sh . ./config if [ "$1" = 'local' ] ; then src_url="$local_url"; dest_url="$remote_url"; src_ssh="$local_ssh" dest_ssh="$remote_ssh" elif [ "$1" = 'remote' ] ; then src_url="$remote_url"; dest_url="$local_url"; src_ssh="$remote_ssh" dest_ssh="$local_ssh" else echo "error: must specify local or remote" exit 5 fi db_file="$wp_path/data.sql" tar_file="/tmp/wordpress.tar.gz" ############## source ssh -T $src_ssh << EOSSH wp db export \ --path="$wp_path" \ --dbuser="$wp_db_user" \ --dbpass="$wp_db_pass" \ --add-drop-table \ --allow-root \ "$db_file" tar czf "$tar_file" "$wp_path" EOSSH scp "$src_ssh:$tar_file" "$tar_file" ssh -T $src_ssh << EOSSH rm "$db_file" rm "$tar_file" EOSSH ############## destination scp "$tar_file" "$dest_ssh:$tar_file" ssh -T $dest_ssh << EOSSH rm -Rf "$wp_path" cd / tar xzf "$tar_file" wp db import \ --path="$wp_path" \ --dbuser="$wp_db_user" \ --dbpass="$wp_db_pass" \ --allow-root \ "$db_file" rm "$db_file" rm "$tar_file" wp search-replace \ --path="$wp_path" \ --allow-root \ --skip-columns=guid \ "$src_url" \ "$dest_url" wp option update home \ --path="$wp_path" \ --allow-root wp option update home \ --path="$wp_path" \ --allow-root EOSSH mv "$tar_file" ./wordpress-"$(date +%s)".tar.gz