3.5. Automating Satellite Database Backups
Backup tasks can be automated so that they occur in non-peak times, such as the late evening or early morning. This also ensures they are performed regularly, and are not forgotten. The most effective way to automate backups is using
cron
.
Procedure 3.6. To Automate Satellite Server Database Backups:
Create a new file called
backup-db.sh
containing the following script. This script will stop the satellite, perform a database backup, and restart the satellite:
#!/bin/bash { /usr/sbin/rhn-satellite stop d=db-backup-$(date "+%F"); mkdir -p /tmp/$d; db-control backup /tmp/$d /usr/sbin/rhn-satellite start } &> /dev/null
- Create a new file called
move-files.sh
containing the following script. This script will usersync
to move the backup files to a directory to be stored:#!/bin/bash rsync -avz /tmp/db-backup-$(date "+%F") <destination> &> /dev/null
Replace <destination> with the path to the backup directory.Alternatively, use the following script to achieve the same goal:#!/bin/bash scp -r /tmp/db-backup-$(date "+%F") <destination> &> /dev/null
- Switch to the root user, and open the
crontab
file in a text editor:# crontab -e
Note
Thecrontab
file opens in vi by default. To change this behavior, change theEDITOR
variable to the name of the text editor you prefer. - Create a suitable job definition to schedule the backup scripts to run:
0 3 * * * backup-db.sh 0 6 * * * move-files.sh
Thiscrontab
entry will run the backup at 03:00, and transfer the backup files at 06:00. Other options can be included as needed. You can also include a clean up script to remove older backup directories and prevent the backup storage from filling up. - Exit the editor to save the
crontab
file. The new rules take effect immediately.