Quinntin Comer Posted September 12, 2023 Report Posted September 12, 2023 Hi folks, Thought I would share this in case anyone was interested. This is just a daily script for backing up the PBX data directory. We have a file "vodiapbx-backup" in the /etc/cron.daily folder with no extension, just named "vodiapbx-backup", so that it will run dailly. You can see when your cron jobs are scheduled by running the following command: grep run-parts /etc/crontab and you will see results similar to: 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) Based on the results above, you can see our daily will run at 6:25 daily. https://crontab.guru/#25_6_*_*_* In that "vodiapbx-backup" file, we have the following script: #!/bin/sh # Set the variables source_dir="/usr/local/pbx" backup_dir="/data/backups" now=$(date +%Y%m%d) filename="VodiaPBX_Backup_$now.tgz" # Delete backups older than 7 days echo "Deleting older backups" find "$backup_dir/*.tgz" -mtime +7 exec rm {} \; # Start Backups echo "Starting Backup" tar -zvcf "$backup_dir/$filename" "$source_dir" This script will perform the following: Define the following variables: source_dir: This is the source directory we want to backup backup_dir: This is the path where we want to store our backup (in our case, we have a mounted volume) now: This is the current datetime stamp with YYYY/MM/DD format. filename: This is the filename to use for the backup file, example: VodiaPBX_Backup_20230912.tgz" Deletes any tgz files older than 7 days from the backup_dir path compresses the source_dir path into $backup_dir/$filename Quote
Scott1234 Posted September 13, 2023 Report Posted September 13, 2023 Noice. thanks for sharing! I use this to replicate every hour to another datacentre for a worst-case scenario. It only does the changes with a bandwidth limit. @hourly rsync --bwlimit=2048 --delete-before -av /usr/local/pbx ******@****.***:/usr/local/ Quote
Quinntin Comer Posted September 14, 2023 Author Report Posted September 14, 2023 On 9/12/2023 at 5:17 PM, Scott1234 said: Noice. thanks for sharing! I use this to replicate every hour to another datacentre for a worst-case scenario. It only does the changes with a bandwidth limit. @hourly rsync --bwlimit=2048 --delete-before -av /usr/local/pbx ******@****.***:/usr/local/ Absolutely could add that as a step! Quote
RichardDCG Posted September 20, 2023 Report Posted September 20, 2023 On 9/13/2023 at 7:37 AM, Quinntin Comer said: find "$backup_dir/*.tgz" -mtime +7 exec rm {} \; I had to modify this line to ... (remove "'s and add - to exec) find $backup_dir/*.tgz -mtime +7 -exec rm {} \; Other than that everything else works perfectly, very helpful, thanks! Quote
Quinntin Comer Posted September 21, 2023 Author Report Posted September 21, 2023 4 hours ago, RichardDCG said: I had to modify this line to ... (remove "'s and add - to exec) find $backup_dir/*.tgz -mtime +7 -exec rm {} \; Other than that everything else works perfectly, very helpful, thanks! Glad that was useful for you! Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.