Created
November 22, 2023 13:54
-
-
Save podlom/9cc2839b96e3e0919860e7158cd74edb to your computer and use it in GitHub Desktop.
Sync WP uploads from staging to local and then to prod server
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Define server addresses and directories | |
STAGING_SERVER="user@staging-server-address" | |
PROD_SERVER="user@production-server-address" | |
REMOTE_DIR="/path/to/staging/dir/" | |
LOCAL_DIR="/path/to/local/dir/" | |
PROD_DIR="/path/to/production/dir/" | |
echo "Sync WP uploads has started at:" | |
date | |
# Step 1. Check if the directory exists | |
if [ -d "${LOCAL_DIR}" ]; then | |
printf "Local directory exists ${LOCAL_DIR}.\n" | |
ls -alh "${DB_BACKUP_PATH}" | |
else | |
# Make the local directory if it does not exists | |
echo "Local directory does not exists. Make directory ${LOCAL_DIR}..." | |
mkdir -pv "${LOCAL_DIR}" | |
fi | |
# Step 2: Sync from Staging to Local | |
echo "Syncing from Staging Server to Local..." | |
rsync -avz --progress $STAGING_SERVER:$REMOTE_DIR $LOCAL_DIR | |
date | |
# Check if rsync was successful | |
if [ $? -ne 0 ]; then | |
echo "Failed to sync from Staging Server." | |
exit 1 | |
fi | |
# Step 3: Sync from Local to Production | |
echo "Syncing from Local to Production Server..." | |
rsync -avz --progress $LOCAL_DIR $PROD_SERVER:$PROD_DIR | |
date | |
# Check if rsync was successful | |
if [ $? -ne 0 ]; then | |
echo "Failed to sync to Production Server." | |
exit 1 | |
fi | |
echo "Sync WP uploads has finished at:" | |
date |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment