iControlWP
The iControlWP WordPress Security Manager is the only solution you need to manage all your WordPress websites. You need more time and everyday WordPress management eats away at any spare time you create. iControlWP will give you back the time you need to focus on your business. Our Mission: Give you more free time to focus on your core business With iControlWP you need fewer WordPress plugins as many tasks you need to perform fall under its umbrella of features. For example: No extra plugins to backups / restores No extra plugins for uptime monitoring No extra plugins to optimize your databases No extra plugins to clean up old drafts, comments and post revisions No extra plugins to manage WordPress automatic updates With iControlWP you can: Manage ALL WordPress websites from a single, centralized control panel. One-click update WordPress Plugin (premium ones too!), Themes, and the WordPress Core. Bulk update all plugins, themes and WordPress cores. Very finely tune WordPress Automatic Updates for every plugin on every site. Manage CloudFlare settings using our unique CloudFlare integration. Insert Google Analytics Tracking code. Clean up WordPress and Optimize WordPress databases Manage WordPress Security setting across all your sites. Install new WordPress websites automatically, anywhere you have cPanel web hosting Automatically log into your WordPress sites without remembering your WordPress login details. Collect useful visitor site statistics and view them directly from within your control panel.
WP-DBManager
WP-DBManager looks after the database behind your site: it backs it up, restores it, optimizes and repairs it, empties or drops tables and runs queries you write, all from wp-admin rather than from a shell or phpMyAdmin. Backups, optimization and repair can be left to run on a schedule, and the backup can be emailed to you when it finishes. Donations I spent most of my free time creating, updating, maintaining and supporting these plugins, if you really love my plugins and could spare me a couple of bucks, I will really appreciate it. If not feel free to use it without any obligations. Usage Securing The Backup Folder A database backup contains everything, including your users table. Anyone who can guess a backup file name can download the lot, so the folder must not be served over HTTP. The reliable option, on any server: set Path To Backup under WP-Admin -> Database -> Settings to a folder outside your web root, for example /var/www/example.com/backup-db when WordPress lives in /var/www/example.com/public_html. Nothing served, nothing to configure. If the folder has to stay inside the web root: Apache — move htaccess.txt from Folder: wp-content/plugins/wp-dbmanager to Folder: wp-content/backup-db/.htaccess IIS — move Web.config.txt from Folder: wp-content/plugins/wp-dbmanager to Folder: wp-content/backup-db/Web.config nginx — nginx does not read .htaccess files, so the file above does nothing. Add this to your server block and reload nginx: location ^~ /wp-content/backup-db/ { deny all; } Move index.php from Folder: wp-content/plugins/wp-dbmanager to Folder: wp-content/backup-db/index.php as well, so the folder cannot be listed. The Backup DB page requests a file from the folder and reports what the server actually returns, so you can confirm the folder is closed rather than assume it. WP-CLI wp dbmanager tables wp dbmanager backups wp dbmanager backup --yes wp dbmanager backup --no-gzip --yes wp dbmanager restore --yes wp dbmanager delete ... --yes wp dbmanager email --to=ops@example.org --yes wp dbmanager optimize --all --yes wp dbmanager repair wp_options --yes wp dbmanager empty ... --yes wp dbmanager drop ... --yes Everything that changes anything asks first, so a script has to pass --yes. That includes backup, which deletes the oldest backups to stay inside Maximum Backup Files, and email, because a dump holds your users table and a sent message cannot be recalled. tables and backups only read, and take a --format of table, csv, json, yaml, count or ids; their sizes are in bytes rather than the KiB and MiB the screens print, because a shell is better at arithmetic than at parsing 1.2 MiB. optimize and `repair` take table names or `--all`. `empty` and `drop` take names only: emptying or dropping every table in a database is not maintenance, and the screen at least shows you the list before you tick it. There is no run subcommand. WP-CLI already ships wp db query, which reaches the same database through the same client, so the Run SQL Query screen has no command counterpart. That screen is unchanged and still works. wp dbmanager checks no capability. WP-CLI has no logged-in user unless you ask for one with `--user`, and whoever can run it can already read the credentials in `wp-config.php`, so a check would refuse every scheduled backup script while protecting nothing. The `install_plugins` gate on the admin screens is unchanged.