User Tools

Site Tools


my_backup_pi_scripts

This is an old revision of the document!


My Backup Pi Scripts



These are the scripts the backup pi is using to pull all the files from the webserver and wiki pi's. There are two scripts:

1. The backup script for webserver1 (cameraangle and shotlive) 2. The backup script for the wiki server

These are both run once a week by a cron job (sudo crontab -e)

Webserver1 Script (wikibackup) Latest

#!/bin/bash
#
# Script to backup webserver pi
#
#
# Alan Walker - Nov 2016
#
#
# stuff this script does
# backup (rsync) cpg15x on webserver1
# backup ShotLive on webserver1
# backup (mysqldump) database on webserver1
#
#
# backup (rsync) cpg15x on webserver1
# create new backup folder
echo "Creating folder /mnt/usbstorage/backups/webserver1/"$(date '+%Y-%m-%d')
# make a folder with the current date
mkdir /home/pi/Backups/webserver1/$(date '+%Y-%m-%d')
#
# copy files from cpg15x on webserver to this server
echo "Copying cpg15x files to /mnt/usbstorage/backups/webserver1/"$(date '+%Y-%m-%d')
sudo sshpass -p "Password" rsync --verbose --recursive --perms --executability --acls --xattrs --owner --group  pi@192.168.1.9:/mnt/usbhdd/cpg15x /home/pi/Backups/webserver1/$(date '+%Y-%m-%d')
#
# copy files from ShotLive on webserver to this server
echo "Copying ShotLive files to /mnt/usbstorage/backups/webserver1/"$(date '+%Y-%m-%d')
#sudo rsync --verbose --recursive --perms --executability --acls --xattrs --owner --group  pi@192.168.1.10:/home/pi/ShotLive /mnt/usbstorage/backups/webserver1/$(date '+%Y-%m-%d')
sudo sshpass -p "Password" rsync --verbose --recursive --perms --executability --acls --xattrs --owner --group  pi@192.168.1.9:/mnt/usbhdd/ShotLive /home/pi/Backups/webserver1/$(date '+%Y-%m-%d')
#
# Backup MySQL Database (the one database is used for both ShotLive and Cameraangle)
echo "Backup database to /mnt/usbstorage/backups/webserver1/"$(date '+%Y-%m-%d')
sudo mysqldump --host 192.168.1.9 -P 3306 -u username -pPassword alan_gallery > /home/pi/Backups/webserver1/$(date '+%Y-%m-%d')/alan_gallery.sql
#
#
echo ""
echo "Finished"



Wiki Server Backup Script (wikibackup)

#!/bin/bash
#
# Script to backup wiki pi
#
#
# Alan Walker - Nov 2016
#
#
# stuff this script does
#
# backup wiki (rsync) on wiki pi
#
#
# backup (rsync) wiki server
# create new backup folder
echo "Creating folder /mnt/usbstorage/backups/wiki/"$(date '+%Y-%m-%d')
# make a folder with the current date
mkdir /home/pi/Backups/wiki/$(date '+%Y-%m-%d')
#
# copy files from /home/pi/dokuwiki on wiki server to this server
echo "Copying dokuwiki files to /home/pi/Backups/wiki/"$(date '+%Y-%m-%d')
#
#
sudo sshpass -p "Password" rsync --super --verbose --recursive --perms --executability --acls --xattrs --owner --group  pi@192.168.1.9:/mnt/usbhdd/dokuwiki /home/pi/Backups/wiki/$(date '+%Y-%m-%d')
#
#
echo ""
echo "Finished"


Cron Automation

To automate this process, I am using the following Cron job (use sudo Crontab -e)

  # Edit this file to introduce tasks to be run by cron.
  #
  # Each task to run has to be defined through a single line
  # indicating with different fields when the task will be run
  # and what command to run for the task
  #
  # To define the time you can provide concrete values for
  # minute (m), hour (h), day of month (dom), month (mon),
  # and day of week (dow) or use '*' in these fields (for 'any').#
  # Notice that tasks will be started based on the cron's system
  # daemon's notion of time and timezones.
  #
  # Output of the crontab jobs (including errors) is sent through
  # email to the user the crontab file belongs to (unless redirected).
  #
  # For example, you can run a backup of all your user accounts
  # at 5 a.m every week with:
  # 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
  #
  # For more information see the manual pages of crontab(5) and cron(8)
  #
  # m h  dom mon dow   command
  #
  #
  # This job is to backup the webserver files and database at 3am every sunday
  00 03 * * 0 /mnt/usbstorage/backups/scripts/websvr1backup | tee /mnt/usbstorage/backups/logs/$(date '+%Y-%m-%d')-websvr1backup.log
  #
  #
  # This job is to backup the wiki server every sunday at 3am
  00 02 * * 0 /mnt/usbstorage/backups/scripts/wikibackup | tee /mnt/usbstorage/backups/logs/$(date '+%Y-%m-%d')-wikiba$



my_backup_pi_scripts.1478457419.txt.gz · Last modified: 2023/03/09 22:35 (external edit)