• About
scot hacker's scripts and utils

WordPress Mass Management Tools

August 4, 2010 9:32 am / 15 Comments / shacker

WordPress Mass Management Tools is a small collection of tools for managing multiple WordPress installations on a Unix/Linux/Mac server (or perhaps a Windows server with Cygwin (untested)).

Yes, users can often self-install via Fantastico or similar programs, but what guarantee do you have that they’ll upgrade as soon as new releases become available? Letting users run old versions of web software is a great way to get hacked. This kit lets you take control of users’ installations by checking them out via svn and upgrading them en masse.

At Birdhouse Hosting we use WordPress Mass Management Tools to create all new installations. When WP updates are released, we’re able to upgrade more than 100 WP installations belonging to 80+ users in a few minutes flat.

The kit is designed to be run by root – these are not tools for WordPress end users. The kit assumes basic knowledge of the bash shell.

This kit replaces the old wp-create and wp-mass-upgrade scripts which were distributed separately and are no longer supported. Includes:

wp-create.sh: Super fast way to install WordPress for clients, via subversion. Performs the following tasks:

  • Gather installation info
  • Create install dir and check out a copy of WordPress
  • Create database, db user, set db privs via external .sql file
  • Create WP config file
  • Create upload dir and set filesystem permissions
  • Generate array line for wp-sites.sh

Final setup is done via browser.

wp-mass-upgrade.sh: Iterates through all sites listed in wp-sites.sh, backs up the site’s database, upgrades to a specified version of WordPress, and sends the site owner email announcing the upgrade.

wp-mass-plugins.sh: Generates a list of all active plugins used by all sites on the server. The list can be compared to lists of known-incompatible plugins to help you make decisions about whether to skip any sites on the list.

Download wp-mass-tools 1.1

See the included readme.txt for documentation.

Want to contribute/make this project better? It’s also available at github.

Posted in: WordPress

15 Thoughts on “WordPress Mass Management Tools”

  1. David McDonald on August 4, 2010 at 3:05 pm said:

    Thank you for updating these, they have come in very handy.

  2. shawn on August 6, 2010 at 1:44 am said:

    SWEET!
    This is going to come in So handy, thank you very much

  3. Lee Peterson on August 16, 2010 at 11:33 pm said:

    Thanks so much for sharing this, Scot!

    Would you happen to have any experience getting this set up on CentOS running Plesk?

    In your instructions, you note “the path to svn on your server”. Is this the path to the svn module, or the path to a newly created svn repo?

  4. shacker on August 16, 2010 at 11:41 pm said:

    Lee – I do run CentOS, but not Plesk. The only thing that might be different would be the way customer databases are named – you’ll need to tweak that part of the script to match the way dbs are named. If you get it working let me know and I’ll tweak the script to make it an option.

    The path to the svn binary. Most likely just type “which svn” and enter the result. I only made it an option because I have multiple svn versions on my server and wanted to make sure the correct one gets used.

  5. Pingback: wordpress install automation - cPanel Forums

  6. graq on October 14, 2010 at 3:01 am said:

    If you wanted to add further plugins and themes to the install, is there a way to do this (some way of updating svn:external prop in plugins and themes dir)?

  7. shacker on October 14, 2010 at 11:12 pm said:

    Yes, svn:external would be the way to do it, but I’ve never looked into it. If you modify the script to do that, please share!

  8. ofutur on December 1, 2010 at 4:10 am said:

    It would be great if the group for files could be user defined, just like the owner of the files is.

  9. shacker on December 1, 2010 at 10:01 am said:

    Ofutur – Would you like to see all files in the tree set to user:group, or would you want some differentiation in the tree (e.g. all files set to user:user except for files under wp-content which would be user:group)?

  10. Volkan on December 13, 2010 at 9:24 am said:

    Under which licence did you publish this? I would like to make some adjustments. Are you ok to publish your code on git?

    What do think about adding functionality to update plug-ins?

    Let me know!

  11. shacker on December 14, 2010 at 12:05 am said:

    Never thought about a license – it’s just a shell script. I’ve thought about adding plugin support before, but decided it’s too much of a rat’s nest. Too easy to break people’s sites, and too tricky to keep track of all the plugins each site has installed. What are your ideas on this?

  12. jli on February 1, 2011 at 5:20 am said:

    Hello,

    This script set is exactly what I was looking for.
    I didn’t have the time to dig in but from what I’ve seen so far it looks great.

    I started a thread on wordpress’s forum (http://wordpress.org/support/topic/multiple-separated-blogs-administration?replies=2) a while ago.

    I fully agree with the idea of a git repo to allow improvement over the existing script.

    Shacker: I think you should take the lead on the git repo. As the original author.

    Volkan or myself could also create it, what’s the status on this ?

    Thanks anyway,
    John.

  13. shacker on February 1, 2011 at 12:20 pm said:

    Hey John – Good idea, I will do this. Hopefully later today!

  14. shacker on February 2, 2011 at 1:05 am said:

    John – This project is now available on github:

    https://github.com/shacker/wp-batch-manage

    Ready for pull requests!

  15. David Anderson on May 4, 2012 at 8:56 am said:

    If your sites are on different servers (with FTP, SFTP, FTPS or filesystem access), you may be interested in my product, WordShell: http://wordshell.net.

    Example command to upgrade WP core on every site (using WP’s own internal routines, so is as safe as WP itself is):

    wordshell all –remotecli=coreupgrade

    Does far more than that – full plugin management, version control, rollbacks and more.

Leave a Reply

Your email address will not be published. Required fields are marked *

Post Navigation

← Previous Post
Next Post →

Categories

  • AMP
  • BeOS
  • cPanel
  • Django
  • Geo
  • Mac
  • Movable Type
  • Music
  • Performance
  • Python
  • QuickTime Streaming Server
  • Spam
  • Twitter
  • WordPress
© Copyright 2025 - scot hacker's scripts and utils
Infinity Theme by DesignCoral / WordPress