|
| 1 | +#!/usr/bin/env bash |
| 2 | +#---------------------------------------------------------------------------- |
| 3 | +# EngineScript - A High-Performance WordPress Server Built on Ubuntu and Cloudflare |
| 4 | +#---------------------------------------------------------------------------- |
| 5 | +# Website: https://EngineScript.com |
| 6 | +# GitHub: https://github.com/Enginescript/EngineScript |
| 7 | +# Company: VisiStruct / EngineScript |
| 8 | +# License: GPL v3.0 |
| 9 | +# OS: Ubuntu 22.04 (jammy) |
| 10 | +#---------------------------------------------------------------------------- |
| 11 | + |
| 12 | +# EngineScript Variables |
| 13 | +source /usr/local/bin/enginescript/enginescript-variables.txt |
| 14 | +source /home/EngineScript/enginescript-install-options.txt |
| 15 | + |
| 16 | +# Check current user's ID. If user is not 0 (root), exit. |
| 17 | +if [ "${EUID}" != 0 ]; |
| 18 | + then |
| 19 | + echo "${BOLD}ALERT:${NORMAL}" |
| 20 | + echo "EngineScript should be executed as the root user." |
| 21 | + exit |
| 22 | +fi |
| 23 | + |
| 24 | +#---------------------------------------------------------------------------- |
| 25 | +# Start Main Script |
| 26 | + |
| 27 | +# Date |
| 28 | +NOW=$(date +%m-%d-%Y-%H) |
| 29 | + |
| 30 | +# Filenames |
| 31 | +DATABASE_FILE="${NOW}-database.sql"; |
| 32 | +FULLWPFILES="${NOW}-wordpress-files.gz"; |
| 33 | +NGINX_FILE="${NOW}-nginx-vhost.conf.gz"; |
| 34 | +PHP_FILE="${NOW}-php.tar.gz"; |
| 35 | +SSL_FILE="${NOW}-ssl-keys.gz"; |
| 36 | +UPLOADS_FILE="${NOW}-uploads.tar.gz"; |
| 37 | +VHOST_FILE="${NOW}-nginx-vhost.conf.gz"; |
| 38 | +WPCONFIG_FILE="${NOW}-wp-config.php.gz"; |
| 39 | +WPCONTENT_FILE="${NOW}-wp-content.gz"; |
| 40 | + |
| 41 | +# Select site |
| 42 | +cd /var/www/sites |
| 43 | +printf "Please select the site you want to remove infected files on:\n" |
| 44 | +select d in *; do test -n "$d" && break; echo ">>> Invalid Selection"; done |
| 45 | +cd "$d" && echo "Wordfence CLI will attempt to remediate infections of known files by reverting them back to their original version." |
| 46 | +echo -e "\nEngineScript will now create a new database and full file backup for your site. |
| 47 | +\n\nIf something goes wrong, the backup files can be found in in: |
| 48 | +\n/home/EngineScript/site-backups/${d}/wordfence-cli-remediate-backup/${NOW}\n\n" |
| 49 | + |
| 50 | +# Make backup directory |
| 51 | +mkdir -p /home/EngineScript/site-backups/${d}/wordfence-cli-remediate-backup/${NOW} |
| 52 | + |
| 53 | +# Export database |
| 54 | +wp db export --path=/var/www/sites/${d}/html "/home/EngineScript/site-backups/${d}/wordfence-cli-remediate-backup/${NOW}/${DATABASE_FILE}" --add-drop-table --allow-root |
| 55 | + |
| 56 | +# Export files locally |
| 57 | +#cd /var/www/sites/${d}/html |
| 58 | +tar -zcvf "/home/EngineScript/site-backups/${d}/wordfence-cli-remediate-backup/${NOW}/${FULLWPFILES}" html |
| 59 | + |
| 60 | +echo -e "\nBackup completed. |
| 61 | +\n\nIf something goes wrong, the backup files can be found in in: |
| 62 | +\n/home/EngineScript/site-backups/${d}/wordfence-cli-remediate-backup/${NOW}\n\n" |
| 63 | + |
| 64 | +# Remediate |
| 65 | +echo -e "\nStarting the remediate process... |
| 66 | +\n\nThis will take a while.\n\n" |
| 67 | +sleep 3 |
| 68 | + |
| 69 | +wordfence remediate /var/www/sites/${d}/html |
| 70 | + |
| 71 | +# Ask user to acknowledge that the scan has completed before moving on |
| 72 | +echo "" |
| 73 | +echo "" |
| 74 | +echo "The remediate process has been completed." |
| 75 | +echo "" |
| 76 | +read -n 1 -s -r -p "Press any key to continue" |
| 77 | +echo "" |
| 78 | +echo "" |
0 commit comments