No edit summary
No edit summary
 
Line 19: Line 19:
=== Nightly backup ===
=== Nightly backup ===


The nightly back copies everything to <code>merple</code>. It:
The nightly back copies everything to <code>merple</code>. <code>merple</code> exposes <code/var/backups> via samba as <code>/backups</code>
 
It:
# mounts <code>/mnt/backup</code> to <code>//merple/backups</code>.
# mounts <code>/mnt/backup</code> to <code>//merple/backups</code>.
# iterates over the <code>ms sqlserver</code> databases, backing them up to <code>/mnt/backup/sqlserver/$DAY</code>
# iterates over the <code>ms sqlserver</code> databases, backing them up to <code>/mnt/backup/gonzo/sqlserver/$DAY</code>
# iterates over the <code>mariadb</code> databases, backing them up to <code>/mnt/backup/mysql/$DAY</code>
# iterates over the <code>mariadb</code> databases, backing them up to <code>/mnt/backup/gonzo/mysql/$DAY</code>
# copies the apache config to <code>/mnt/backup/apache2-config/</code>
# copies the apache config to <code>/mnt/backup/gonzo/apache2-config/</code>
# copies the ssl config to <code>/mnt/backup/ssl-config/</code>
# copies the ssl config to <code>/mnt/backup/gonzo/ssl-config/</code>
# finally, using rsync directly because smb has no compression and it's too slow otherwise, it copies <code>/var/www/html</code> directly to <code>merple:/srv/backups/websites/</code>
# using rsync directly because smb has no compression and it's too slow otherwise, it copies <code>/var/www/html</code> directly to <code>merple:/srv/backups/gonzo/websites/</code>
# lastly, again using rsync directly, it copies <code>/home/pdcrew/*</code> to <code>merple:/home/pdcrew</code>


=== Other backups ===
=== Other backups ===


In order to give Matt the ability to roll back any damaging database changes (or recover historical data), we back up the MS Sql Server every 4 hours, every Monday and on the first day of the month. These go to <code>/var/opt/mssql/data/backups/$BACKUP_FOLDER</code> and Matt can restore from them using Sql Server Manager.
In order to give Matt the ability to roll back any damaging database changes (or recover historical data), we back up the MS Sql Server every 4 hours, every Monday and on the first day of the month. These go to <code>/var/opt/mssql/data/backups/$BACKUP_FOLDER</code> and Matt can restore from them using Sql Server Manager.

Latest revision as of 12:53, 13 September 2024

Crontab for gonzo

# m h  dom mon dow   command
# every night (at 5am) back up all databases to merple
  0  5    *   *   *    /root/backup_scripts/nightly_backup.sh > /var/log/nightly_backup.log 2>&1
# local backup jobs
# give Matt a back up of the sql server databases every 4 hours
  0  */4  *   *   *    /root/backup_scripts/sqlserver_backup.sh HOUR > /var/log/hour_backup.log 2>&1
# every Monday
  0  4    1   *   *    /root/backup_scripts/sqlserver_backup.sh WEEK > /var/log/weekly_backup.log 2>&1
# and on the 1st of the month
  0  4    1   *   *    /root/backup_scripts/sqlserver_backup.sh MONTH > /var/log/monthly_backup.log 2>&1

The Scripts

Scripts are located in /root/backup.

Nightly backup

The nightly back copies everything to merple. merple exposes via samba as /backups

It:

  1. mounts /mnt/backup to //merple/backups.
  2. iterates over the ms sqlserver databases, backing them up to /mnt/backup/gonzo/sqlserver/$DAY
  3. iterates over the mariadb databases, backing them up to /mnt/backup/gonzo/mysql/$DAY
  4. copies the apache config to /mnt/backup/gonzo/apache2-config/
  5. copies the ssl config to /mnt/backup/gonzo/ssl-config/
  6. using rsync directly because smb has no compression and it's too slow otherwise, it copies /var/www/html directly to merple:/srv/backups/gonzo/websites/
  7. lastly, again using rsync directly, it copies /home/pdcrew/* to merple:/home/pdcrew

Other backups

In order to give Matt the ability to roll back any damaging database changes (or recover historical data), we back up the MS Sql Server every 4 hours, every Monday and on the first day of the month. These go to /var/opt/mssql/data/backups/$BACKUP_FOLDER and Matt can restore from them using Sql Server Manager.