Welcome to Geeklog Thursday, January 19 2017 @ 06:21 pm EST

Backing Up Geeklog

  • Contributed by:
  • Views: 8,156
Geeklog.net From time-to-time on the geeklog-devel mailing list I see questions about backing up MySQL databases. The answer is pretty simple, write a shell script to do this for you, add it to your crontab or put it in one of the /etc/cron.* directories.

As some of my already know, you can use PHP as a shell scripting language. While as a pure shell language it lacks some of the power of, say, Bash, it is still a viable option for the PHP coder.

This script is a PHP shell script I wrote that will back up a MySQL database. If you already have PHP compiled as a CGI on your system (see php.net's install docs for how to do that) then you can drop this in and it should work fine. The script keeps 7 daily backups, 4 weekly backups and 12 monthly backups which should make recovery much simpler.

In addition to the PHP CGI, you will need tar because the script will compress the database backups. For a point of reference, on my Geeklog database of over 500 stories and 450 users a backup is 1.6MB and only 515KB compressed. Give it a try and let me know what you think!