Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


In this Discussion

Automated Website + Database Backup Script
New on LowEndTalk? Please Register and read our Community Rules.

All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

Automated Website + Database Backup Script

xaitmixaitmi Member
edited January 2017 in Tutorials

Just thought I'd share a script I made around last April to automate backups for my sites.

I'm not a expert or anything, just a guy who likes making stuff as I learn, and made something to suit my needs.

Line 1 of the script dumps your database into a file with the date in the filename and puts it into a folder called RAW

Line 2 zips up the contents of your site and also puts it into a folder called RAW

Line 3 zips both the site and the database, moves it into a folder called PACKED and deletes the contents of RAW.

Line 4 rSyncs it to your backup server and deletes it from the local server.

Install Instructions

A. Create a file called backup.sh somewhere on your server and insert the script below into the file, modify the script with the db username/pw/dbname and modify the file paths to suit your needs.

B. Give it permission ( chmod +x backup.sh )

mysqldump -u **InsertDBBackupUsernameHere** -p'**InsertDBBackupPasswordHere**' **InsertDBHere** > /home/backups/raw/db_data-`date '+%y%m%d_%H%M%S'`.sql

tar -cjvf /home/backups/raw/domain.com-`date '+%y%m%d_%H%M%S'`.tar.bz2 -C /home/nginx/domains/domain.com .

tar -cjvf /home/backups/packed/backupPackage-`date '+%y%m%d_%H%M%S'`.tar.bz2 -C /home/backups/raw .

rm -rf /home/backups/raw/*

rsync -azP --remove-source-files /home/backups/packed/ 
backups@**InsertIPOfBackupServerHere**:/home/backups/domain.com/

C. Install the cronjob on your server

30 0 * * * /username/tools/backup.sh > /username/backups.log
  1. Ensure your server can ssh into your backup server fine, I highly recommend using ssh-copy-id

  2. Create the proper paths on your backup server and you should be good to go.

If you need a suggestion for backup server, for the past year I've been using a $15/year Ramnode 80gb backup server. Their extremely reliable.

Comments

Sign In or Register to comment.