initial commit
This commit is contained in:
7
README.md
Normal file
7
README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## wp-backup.sh
|
||||
|
||||
This is a stupid script to backup client wordpress sites and upload them to a hosted nextcloud instance.
|
||||
|
||||
### To Use
|
||||
|
||||
Simply update the nextcloud URL, user, and password.
|
||||
56
wp-backup.sh
Normal file
56
wp-backup.sh
Normal file
@@ -0,0 +1,56 @@
|
||||
#!/usr/bin/env bash
|
||||
# Wordpress backup script.
|
||||
# Uses zip compression since most clients won't know how
|
||||
# to decompress other formats like .tgz or .7z.
|
||||
|
||||
# Example cron entry:
|
||||
# 0 6 * * 1 /root/wp-backup.sh /var/www/wordpress /tmp/ >/root/wp-backup.log 2>&1
|
||||
|
||||
TODAY=$(date +%Y%m%d)
|
||||
WP_PATH=${1}
|
||||
ARCHIVE_DIR=${2}/backup-${TODAY}
|
||||
NCUSER=__CHANGEME__
|
||||
NCURL="https://__CHANGEME__/remote.php/dav/files/$NCUSER/HostingBackups"
|
||||
NCPASS='__CHANGEME__'
|
||||
|
||||
if [ $# -lt 2 ]; then
|
||||
echo "$0 <wp_path> <archive_dir"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f /usr/bin/wp ]; then
|
||||
echo downloading wp-cli...
|
||||
curl -s -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
|
||||
sudo mv wp-cli.phar /usr/bin/wp; sudo chmod +x /usr/bin/wp
|
||||
sudo apt-get install -y zip 2>/dev/null
|
||||
fi
|
||||
|
||||
if [ ! -f /usr/bin/zip ]; then
|
||||
echo downloading zip...
|
||||
sudo apt-get install -y zip 2>/dev/null
|
||||
fi
|
||||
|
||||
upload() {
|
||||
client_dir=$(hostname)
|
||||
printf "[*] CREATING DIRECTORY ${client_dir}..."
|
||||
if curl -u $NCUSER:$NCPASS -X MKCOL "$NCURL/${client_dir}">/dev/null 2>&1; then
|
||||
printf "OK\n"
|
||||
else
|
||||
printf "FAILED\n"
|
||||
fi
|
||||
printf "[*] UPLOADING ${1}..."
|
||||
if curl -u $NCUSER:$NCPASS -T ${1} "$NCURL/${client_dir}/${1}"; then
|
||||
printf "OK\n"
|
||||
rm -f ${1}
|
||||
else
|
||||
printf "FAILED\n"
|
||||
fi
|
||||
}
|
||||
|
||||
mkdir -p ${ARCHIVE_DIR}
|
||||
cp -r ${WP_PATH} ${ARCHIVE_DIR}/
|
||||
sudo -u www-data wp db export --path=${1} ${ARCHIVE_DIR}/website.sql >/dev/null 2>&1
|
||||
cd $(dirname ${ARCHIVE_DIR})
|
||||
zip -r backup-${TODAY}.zip $(basename ${ARCHIVE_DIR})
|
||||
rm -rf ${ARCHIVE_DIR}
|
||||
upload backup-${TODAY}.zip
|
||||
Reference in New Issue
Block a user