76 lines
1.2 KiB
Bash
Executable File
76 lines
1.2 KiB
Bash
Executable File
#!/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
|