HEX
Server: nginx/1.29.3
System: Linux 11979.bigscoots-wpo.com 6.8.0-88-generic #89-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 01:02:46 UTC 2025 x86_64
User: nginx (1068)
PHP: 7.4.33
Disabled: exec,system,passthru,shell_exec,proc_open,proc_close,popen,show_source,cmd# Do not modify this line # 1684243876
Upload Files
File: //proc/self/root/bigscoots/bsi-nginx-live2dev.sh
#!/bin/bash
#
# Justin Catello - bigscoots.com
#

##            ##
# CHANGE THESE #
##            ##

livesite="$1"
devsite="$2"

##                           ##
# NO MORE CHANGING BELOW HERE #
##                           ##

NGINX=$(which nginx)

if [ ! -d "/home/nginx/domains/$livesite" ] && [ ! -d "/home/nginx/domains/$devsite" ]; then
    echo "Domain doesn't exist."
    exit
fi

livedocroot=/home/nginx/domains/$livesite/public
devdocroot=/home/nginx/domains/$devsite/public
livedb=$(grep DB_NAME "$livedocroot"/wp-config.php | grep -v WP_CACHE_KEY_SALT | cut -d \' -f 4)
devdb=$(grep DB_NAME "$devdocroot"/wp-config.php | grep -v WP_CACHE_KEY_SALT | cut -d \' -f 4)

echo
echo
echo "Syncing files from $livesite to $devsite."
echo
echo

sleep 3

rsync -ahv --delete --exclude wp-content/uploads/backup --exclude 'wp-content/backup*' --exclude wp-content/uploads/backup-guard --exclude wp-snapshots --exclude wp-content/ai1wm-backups --exclude wp-config.php --exclude 'wp-content/uploads/backupbuddy*' --exclude wp-content/uploads/ShortpixelBackups --exclude wp-content/backup-db --exclude wp-content/updraft --exclude wp-content/cache/ --exclude wp-content/wpbackitup_backups "$livedocroot/" "$devdocroot/"

sleep 3

echo
echo
echo "Syncing files completed."
echo
echo

sleep 3

echo "Pulling live database from $livedocroot/wp-config.php"
echo
echo

sleep 1

echo "Pulling dev database from $devdocroot/wp-config.php"
echo
echo

sleep 2

echo "Live database: $livedb"

sleep 1

echo "Dev database: $devdb"
echo
echo

sleep 3

echo "Backing up $devdb to ${devdocroot//public/backup}"
echo
echo

mkdir -p "${devdocroot//public/backup}/$(date +%Y-%m-%d)"
mysqldump "$devdb" --single-transaction --quick --opt --skip-lock-tables --routines --triggers | gzip > "${devdocroot//public/backup}/$(date +%Y-%m-%d)/$devdb$(date +%H%M).sql.gz"
sleep 1

echo "Backed up $devdb to ${devdocroot//public/backup}/$(date +%Y-%m-%d)/$devdb$(date +%H%M).sql.gz"
echo
echo

sleep 3

echo "Dropping all tables in $devdb"
echo
echo

mysql -e "SHOW TABLES FROM $devdb" | grep -v "Tables_in_$devdb" | while read -r a; do mysql -e "DROP TABLE $devdb.$a" ; done

sleep 1

echo "Dropped all tables in $devdb"
echo
echo

sleep 2

echo "Importing database from $livedb to $devdb"
echo
echo

mysqldump "$livedb" --single-transaction --quick --opt --skip-lock-tables --routines --triggers| mysql -f "$devdb"


sleep 1

echo "Importing database has been completed."
echo
echo "Changing the database prefix in the dev wp-config.php"

sed -i "/table_prefix/c\\$(grep _prefix "$livedocroot"/wp-config.php | grep -v WP_CACHE_KEY_SALT)" "$devdocroot"/wp-config.php

sleep 1

echo "Table prefix has been updated in $devdocroot/wp-config.php"
echo
echo "Changing all instances of $livesite to $devsite in the database."

cd "$livedocroot/" || exit
siteurl=$(wp option get siteurl --allow-root | sed -r 's/https?:\/\///g')
cd "$devdocroot/" || exit
wp search-replace "//$siteurl" "//$devsite" --recurse-objects --skip-columns=guid,user_email --allow-root --skip-plugins --skip-themes


sleep 1

echo "All instances have been changed."
echo
echo

sleep 1

        if [ -n "$3" ] && [ -n "$4" ]; then

        echo "htpasswd detected, applying now."
        echo
        echo

        if  ! grep -q wpolocksite /usr/local/nginx/conf/conf.d/"$2".ssl.conf ; then

        /usr/local/nginx/conf/htpasswd.sh create /home/nginx/domains/"$2"/wpolocksite "$3" "$4"
        sed -i "/location \/ {/a \  auth_basic_user_file /home/nginx/domains/$2/wpolocksite;" /usr/local/nginx/conf/conf.d/"$2".ssl.conf
        sed -i "/location \/ {/a \  auth_basic \"Private\";" /usr/local/nginx/conf/conf.d/"$2".ssl.conf

        echo "htpasswd applied"
                echo
                echo

                sleep 1

        else

        /usr/local/nginx/conf/htpasswd.sh create /home/nginx/domains/"$2"/wpolocksite "$3" "$4"

                echo "htpasswd applied"
                echo
                echo

                sleep 1

        fi

        fi

sleep 1

echo "Correcting all ownership and permissions."
echo
echo

chown -R nginx: /home/nginx/domains/$devsite

echo "Done. Reloading nginx and flushing Redis cache."
echo
echo

redis-cli flushall

"$NGINX" -t > /dev/null 2>&1
    if [ $? -eq 0 ]; then
                npreload > /dev/null 2>&1
        else
                "$NGINX" -t 2>&1 | mail -s "WPO URGENT - Nginx conf fail during staging request -  $HOSTNAME" [email protected]
                exit 1
    fi

echo "Syncing $livesite to $devsite has been completed."
echo
echo