Auto update multiple installs of WordPress with cron/ssh via bash script

With WordPress being updated more frequently than ever with new security fixes and features it’s important to keep you site up to date with the lates version of WordPress.

Running one update is easy and quick enough but if you have a dozen or more WordPress sites on one server you can update them all at once with a very simple bash script.

This script can be used in one of two ways:

1:  Setup the script and run it every time a new version of Wordpres is released

2: Setup a cron task to run the update weekly, this will mean you never have to worry about out of date versions of WP ever again.

It works by using wget to download the latest version and unzip it’s files to each of your WordPress installs.

#!/bin/bash

wget -q http://wordpress.org/latest.tar.gz -O /var/www/latest.tar.gz; 

tar zxf /var/www/latest.tar.gz /var/www/;
cp -r /var/www/wordpress/* /var/www/example.com/htdocs;
cp -r /var/www/wordpress/* /var/www/example.co.uk/htdocs;
cp -r /var/www/wordpress/* /var/www/test.com/htdocs;

Note:  If all the sites on your server are running WordPress you could replace the individual cp lines with a loop to go through folders but to keep it simple and stop errors I’ve put a line in for each WP site.

Ubuntu auto restart cron for Apache and Mysql after crash

Websites never sleep but you may want to, this script lets you do that without having to worry about Apache or Mysql crashing randomly.

Obviously if you have reoccurring issues its best to check through the log files and fix any issues but this will help reduce down time on vital software crashes to less than a minute by checking for  Apache and Mysql services running and if none are found they get restarted.

Save this into a .sh file somewhere on your server and run this every minute usinng the built in Ubuntu Cron. If you are using a different OS and this doesn’t work replace the restart commands.

 

#!/bin/bash

# APACHE SECTION
RESTART="/etc/init.d/apache2 restart"
PGREP="/usr/bin/pgrep"
HTTPD="apache"
$PGREP ${HTTPD}
if [ $? -ne 0 ]
then
$RESTART
fi

# MYSQL SECTION
RESTARTM="/etc/init.d/mysql restart"
MYSQLD="mysqld"
$PGREP ${MYSQLD}
if [ $? -ne 0 ]
then
$RESTARTM
fi

 

To improve this script you could add email notifications and other vital services like sendmail which if they go down may be less apparent.

 

Apache MaxClients

Working with Ubuntu or any other Linux distribution you really do learn something new every day. Yesterday one of my servers looked like Apache had Crashed.

Symptoms:

  • Loading a web page wont return a 404 or 500 error just a blank page
  • Restarting Apache will help for a minute or two
  • It’s a reoccurring issue
  • Happens when you have large spikes in traffic

Like most things in Linux it’s an easy fix as long as you know where to look.

To double check this is the issue load up the Apache Log, in Ubuntu it’s /var/log/apache2/error.log

You should see something like :

[Sat Jun 25 14:14:17 2011] [error] server reached MaxClients setting, consider raising the MaxClients setting

To resolve this issue go to /etc/apache2/apache2.conf and change the MaxClients settings from to a higher number. By default it’s 10 and I would recommend changing it to about 30+ if it’s shutting down at 10 requests. You will also need to restart Apache after you change the setting.

More information from Apache on MaxClients

Re: [#MQV-17419-739] nothing works

X
Inbox
X
WizzVPS Support
Thank you for your email with subject nothing works. Your request has been as…
Jun 18 (8 days ago)
Victor Inceu, WizzVPS Support
Hello, I have checked your system status and sshd daemon appears to be runnin…
Jun 18 (8 days ago)
Adrian Mursec
Hi What does the repair mode actually do, I’m trying to reset the server to t…
Jun 18 (8 days ago)
Victor Inceu, WizzVPS Support
Hi Adrian, With regards to the ‘Repair’ mode, please note that this won’t rei…
Jun 18 (8 days ago)
Adrian Mursec
Hi My websites don’t seem to load some times, Apache2 is still running and it…
2:12 PM (17 hours ago)
Reply
|
Ioan Nistor, WizzVPS Support to me
show details 2:21 PM (17 hours ago)
Hi Adrian,Something has to do with the sites, the maxclients value is reached pretty fast:

[Sat Jun 25 14:10:40 2011] [notice] Digest: generating secret for digest authentication …
[Sat Jun 25 14:10:40 2011] [notice] Digest: done
[Sat Jun 25 14:10:40 2011] [notice] Apache/2.2.14 (Ubuntu) DAV/2 SVN/1.6.6 mod_fcgid/2.3.4 PHP/5.3.2-1ubuntu4.9 with Suhosin-Patch mod_ruby/1.2.6 Ruby/1.8.7(2010-01-10) mod_ssl/2.2.14 OpenSSL/0.9.8k configured — resuming normal operations
[Sat Jun 25 14:10:45 2011] [error] server reached MaxClients setting, consider raising the MaxClients setting
[Sat Jun 25 14:13:13 2011] [notice] caught SIGTERM, shutting down
[Sat Jun 25 14:14:12 2011] [notice] suEXEC mechanism enabled (wrapper: /usr/lib/apache2/suexec)
[Sat Jun 25 14:14:12 2011] [notice] Digest: generating secret for digest authentication …
[Sat Jun 25 14:14:12 2011] [notice] Digest: done
[Sat Jun 25 14:14:12 2011] [notice] Apache/2.2.14 (Ubuntu) DAV/2 SVN/1.6.6 mod_fcgid/2.3.4 PHP/5.3.2-1ubuntu4.9 with Suhosin-Patch mod_ruby/1.2.6 Ruby/1.8.7(2010-01-10) mod_ssl/2.2.14 OpenSSL/0.9.8k configured — resuming normal operations
[Sat Jun 25 14:14:17 2011] [error] server reached MaxClients setting, consider raising the MaxClients setting

Please try to review first the sites you are hosting or increase the value for maxclients in apache config.

Regards,

Ioan Nistor

- Show quoted text -
Technical Support Engineer
WizzVPS.comAny prices stated exclude VAT at 20% (where applicable to EEC customers) unless explicitly stated otherwise. E&OE.

Access this ticket online: https://help.wizzvps.com
Follow us on Twitter: http://twitter.com/WizzVPS

WizzVPS is a trading name of Layershift Limited

Layershift Limited | Delta House | Wavell Road | Manchester | M22 5QZ | UK
Layershift Limited is a company registered in England and Wales (6036217). EU VAT number: GB 903 0349 62

=================================================================================
This email is confidential. If you are not the intended recipient of this email, please notify Layershift Limited immediately. Any form of  reproduction, dissemination, copying, disclosure, modification, distribution and/or publication of this e-mail message, either in whole or in part, is strictly prohibited without permission from Layershift Limited.

Reply
Forward
Adrian Mursec
Wow thanks for that, i’ve upped it to 50 for now and will do some research fo…
2:43 PM (16 hours ago)
Reply
|
Ioan Nistor, WizzVPS Support to me
show details 2:45 PM (16 hours ago)
Apache logs under debian/ubuntu are in /var/log/apache2/ directory.

- Show quoted text -
Regards,Ioan Nistor
Technical Support Engineer
WizzVPS.com

Any prices stated exclude VAT at 20% (where applicable to EEC customers) unless explicitly stated otherwise. E&OE.

Access this ticket online: https://help.wizzvps.com
Follow us on Twitter: http://twitter.com/WizzVPS

WizzVPS is a trading name of Layershift Limited

Layershift Limited | Delta House | Wavell Road | Manchester | M22 5QZ | UK
Layershift Limited is a company registered in England and Wales (6036217). EU VAT number: GB 903 0349 62

=================================================================================
This email is confidential. If you are not the intended recipient of this email, please notify Layershift Limited immediately. Any form of  reproduction, dissemination, copying, disclosure, modification, distribution and/or publication of this e-mail message, either in whole or in part, is strictly prohibited without permission from Layershift Limited.

Reply
Forward