Backup - It's needed!

This is my bakupscript from the web server.

(#!/bin/bash)

day=$(date +%A-%d%m%y-%H%M%S)

echo "Make a backupfile of the web files and folders."
tar cfz web-FILES-$day.tgz /var/www
echo "OK."

echo "Make a MySQL dump of all the databases."
sudo mysqldump -u<USER> -p<PASSWORD> --all-databases > web-SQL-$day.sql
echo "OK."

echo "Make a final backup file."
tar cfz web-$day.tgz web-FILES-$day.tgz web-SQL-$day.sql
echo "OK."

echo "Remove MySQL dump file."
rm web-SQL-$day.sql
echo "OK."

echo "Remove temporary web site backup file."
rm web-FILES-$day.tgz
echo "OK."
echo "Backup done!"

/bin/mv web-$day.tgz /mnt/backup

Run through

To get the day, date and time:

day=$(date +%A-%d%m%y-%H%M%S)

To make a *.tgz of the web folders:

tar cfz web-FILES-$day.tgz /var/www

To make a dump of all the databases in mySQL:

sudo mysqldump -u<USER> -p<PASSWORD> --all-databases > web-SQL-$day.sql

To make a *.tgz file of the web folders and the databases:

tar cfz web-$day.tgz web-FILES-$day.tgz web-SQL-$day.sql

Then the temporary files are removed with the rm command.

The last command, moves the newly created backup file to a designated backup folder, on another computer.

/bin/mv web-$day.tgz /mnt/backup

Time the backup

When the backupscript is working as it should, edit crontab.

# m h dom mon dow command
55 23 * * * bash /home/pi/backup/backup.sh

This line will run the backupscript every day 5 minutes to midnight.