Backup procedure
14/6/2018
A year or two ago I my bulk data storage drive died - it was 2TB and held information spanning back to around 2013 when I first got this computer. Of course, none of the data was backed up. I thought this would hurt, but it didn't. I've not thought twice about the data I had lost. I guess none of it was important.
Today, things are a little different. I keep semi up-to-date copies of things that are important to me (namely my anime collection and /home) on an external 1TB drive that I always have on my body. My thought process here is if both the drive I carry and my computer are destroyed at the same time, I'd probably be dead too.
I also keep a similarly semi up-to-date backup of my server on the same drive. This backup is never as up-to-date as I'd like.
I use cronjobs and bash scripts to perform daily backups of my personal computer and server. These are stored on a drive dedicated to backups always mounted on my computer, in the case of my server - a mere directory. Every now and then I copy these backups to the drive I carry everywhere. These are single tar files gzip compressed. I completely understand having the backups mounted and accessible is not the right way to do things.
I keep these backups for a short period after which they are deleted and replaced with newer ones.
Local personal computer backup cronjob and script:
# cronjob # runs everyday at 1pm 0 13 * * * /home/daniel_j/programming/bash/backup/backup.sh # delete backups older than 5 days # runs every day at 3pm 0 15 * * * find /mnt/backups/tar_backups/old_backups/ -type f -mtime +5 -delete # backup script #!/bin/bash # move the last backup performed into the old backups directory mv /mnt/backups/tar_backups/*.tar.gz /mnt/backups/tar_backups/old_backups/ #backups tar -cvpzf /mnt/backups/tar_backups/home-backup-$( date '+%Y-%m-%d_%H-%M-%S' ).tar.gz /home > /dev/null echo "buzz=500" >/dev/tcp/localhost/3001(As a side note, the "echo "buzz" > /dev/tcp/localhost/3001" sends a command to an arduino that sounds a buzzer. I use it as an alert. I'll write more about this in another post.)
Server:
# cronjob # backup @daily /home/username/scripts/backup.sh # delete backups older than 2 days @daily find /home/username/backups/old_backups/ -type f -mtime +2 -delete # backup script #!/bin/bash # move the last backups performed into the old backups directory # (I backup both directories and an sql dump) mv /home/username/backups/*.tar.gz /home/username/backups/old_backups/ mv /home/username/backups/*.sql /home/username/backups/old_backups/ # backups # dump sql databases /usr/bin/mysqldump --all-databases > /home/username/backups/dump-$( date '+%Y-%m-%d_%H-%M-%S' ).sql -u root -pr00tpassw0rd # I backup everything valuable on / tar -cvpzf /home/username/backups/backup-$( date '+%Y-%m-%d_%H-%M-%S' ).tar.gz --exclude=/home/username/backups --exclude=/proc --exclude=sys --exclude=/mnt --exclude=/media --exclude=/run --exclude=/dev --exclude=/var/www/desu/f --exclude=/home/username/old_server --one-file-system / > /dev/nullAs for my anime collection, that is simply an rsync command.