Upgrade wordpress quickly in 3 easy steps from UNIX shell prompt

Since I use wordpress as CMS for 2-3 different websites, upgrading wordpress is an essential task for me. Upgrading wordpress from shell prompt is the easiest thing.
Please note that if you are not comfortable with UNIX shell prompt (IF YOU ARE new to UNIX/Linux), please follow traditional way of upgrading wordpress and DO NOT use following instructions
Step # 1: Backup existing database and wordpress directory
Type the following commands at shell prompt:
$ mkdir /backup/wp/28nov2006
$ mysqldump -u user -p WP-DATABASENAME > /backup/wp/28nov2006/blog.db.sql
$ tar -zcvf /backup/wp/28nov2006.tar.gz /var/www/html/blog
Step # 2: Download latest wordpress CMS
$ cd /tmp
$ wget http://wordpress.org/latest.zip
$ unzip latest.zip
Step # 3: Overwrite all new files
$ cd /var/www/html/blog
$ cp -avr /tmp/wordpress/* .
$ rm -rf /tmp/wordpress /tmp/latest.zip
Open a browser and run update script such as http://yourblog.com/wp-admin/upgrade.php
And you are done. Thanks to UNIX shell access. It just took less than 1 minute!!! Replace path names and database name with actual values.
In case, if something goes wrong, you can always restore old database and files from /backup/wp/28nov2006 directory.
PS: I wrote this because some one recently asked me how to upgrade wordpess from command line.
Want to stay up to date with the latest Linux tips, news and announcements? Subscribe to our free e-mail newsletter or RSS feed to get all updates.
You can Email this page to a friend.
You may also be interested in other helpful articles:
- Wordpress 2.0.7 available for download
- Download of the day: WordPress 2.0.6
- Wordpress 2.5 Released
- Download Wordpress 2.1
- Wordpress Download of the day: Version 2.2
Discussion on This Article:
Leave a Reply
We encourage your comments, and suggestions. But please stay on topic, be polite, and avoid spam. Thank you very much for stopping by our site!


hey, you cloned my script i wrote recently!
little sidenote: tarballs (.tgz) are smaller than zipfiles… but that doesn’t matter these days.
have fun!
Thanks, this worked perfectly and saved me a huge amount of time.
Be very careful with this method. Since it is basically overwriting existing files with new ones etc it is NOT removing depreciated files which may or may not have security holes in them.
Yes, it sounds very fast and easy. I just wish I had access to the schell.
Thanks for the script, I’ve changed it to make it more generic, can be run via command followed by the instance name of your site’s directory.
#!/bin/bash # Modify these variables for your system BLOG_DIR=/usr/local/www/data-dist BACK_DIR=/root/wp # Do not modify these variables DATE=`date +%Y.%m.%d` INSTANCE=${1} # If there's no variable, explain usage and exit if [ -z "$1" ]; then echo “usage: $0 ” exit 0 fi # Backup existing database and wordpress directory mkdir -p ${BACK_DIR}/${INSTANCENAME}/${DATE} mysqldump -u root -p ${INSTANCE} > ${BACK_DIR}/${INSTANCENAME}/${DATE}/${INSTANCE}.db.sql tar -zcvf ${BACK_DIR}/${INSTANCENAME}/${DATE}/${INSTANCE}.tar.gz ${BLOG_DIR}/${INSTANCE} # Download latest wordpress CMS cd /tmp wget http://wordpress.org/latest.zip unzip latest.zip # Overwrite all new files and cleanup cd ${BLOG_DIR} cp -avr /tmp/wordpress/* . rm -rf /tmp/wordpress /tmp/latest.zip exit 0fak3r,
Nice script :D. Few things
a) change wget http://wordpress.org/latest.zip to
wget http://wordpress.org/latest.zip -O latest.zip
b) add little protection before cd ${BLOG_DIR}
if [ $? -eq 0 ]; then cd ${BLOG_DIR} cp -avr /tmp/wordpress/* . rm -rf /tmp/wordpress /tmp/latest.zip else echo “Error failed to unzip or download failed” fiThanks to this post I was able to upgrade WP on my sites in no time. I dreaded having to wait for the slow ftp process to complete with my sites being down.
After testing the process on one site and seeing how fast it was, I did not even bother activating the maintenance mode plug in on the other sites. My users tend to get pissed off when the site goes down for a few mins and following the steps you provided prevents this.
One thing I did before copying over the new WP files to the site, was delete the wp-contents folder from the new WP files. I did not want it over writing what I had in my existing WP-contents folder (plug-ins and themes)
Thanks again.