You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							44 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							44 lines
						
					
					
						
							1.2 KiB
						
					
					
				
								#!/bin/bash
							 | 
						|
								
							 | 
						|
								function detectWordpress() {
							 | 
						|
								    local result=$(pwd)
							 | 
						|
								    while [[ ! ("$result" == / || -f "$result/wp-config.php") ]]; do
							 | 
						|
								        result=$(dirname "$result")
							 | 
						|
								    done
							 | 
						|
								
							 | 
						|
								    if [[ "$result" == / ]]; then
							 | 
						|
								        echo >&2 "no WORDPRESS detected from current folder <$(pwd)>!"
							 | 
						|
								        exit 100
							 | 
						|
								    fi
							 | 
						|
								
							 | 
						|
								    echo "$result"
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								## MAIN
							 | 
						|
								## ----
							 | 
						|
								
							 | 
						|
								set -Eeuo pipefail
							 | 
						|
								WP_BASE=$(detectWordpress)
							 | 
						|
								WP_CONFIG="$WP_BASE/wp-config.php"
							 | 
						|
								DB_HOST=$(grep DB_HOST $WP_CONFIG | cut -d"'" -f4)
							 | 
						|
								DB_NAME=$(grep DB_NAME $WP_CONFIG | cut -d"'" -f4)
							 | 
						|
								DB_USER=$(grep DB_USER $WP_CONFIG | cut -d"'" -f4)
							 | 
						|
								DB_PASSWORD=$(grep DB_PASSWORD $WP_CONFIG | cut -d"'" -f4)
							 | 
						|
								TODAY=$(date +%F)
							 | 
						|
								BACKUP_DIR="/mnt/SHARED/wordpress-backup/$DB_NAME-$TODAY"
							 | 
						|
								
							 | 
						|
								[[ -d "$BACKUP_DIR" ]] && find "$BACKUP_DIR" -mindepth 1 -delete || mkdir -p "$BACKUP_DIR"
							 | 
						|
								
							 | 
						|
								echo -n "backing up database..."
							 | 
						|
								mariadb-dump -h "$DB_HOST" -u "$DB_NAME" -p"$DB_PASSWORD" "$DB_NAME" | gzip >"$BACKUP_DIR/$DB_NAME".mariadb.gz
							 | 
						|
								echo OK
							 | 
						|
								
							 | 
						|
								echo -n "compressing as tar.gz the wp-content folder ..."
							 | 
						|
								tar -czvf "$BACKUP_DIR/wp-content.tgz" -C "$WP_BASE" wp-content
							 | 
						|
								echo OK
							 | 
						|
								
							 | 
						|
								echo -n "copying wp-config.php file ..."
							 | 
						|
								cp "$WP_BASE/wp-config.php" "$BACKUP_DIR"
							 | 
						|
								echo OK
							 | 
						|
								
							 | 
						|
								echo "successful backup in $BACKUP_DIR, db + wp-content + wp-config"
							 |