From e97e5873625af6df0cb60c5595237f82ff2d113f Mon Sep 17 00:00:00 2001 From: FusionPBX Date: Sat, 18 Sep 2021 12:39:13 -0600 Subject: [PATCH] Update fusionpbx-maintenance --- debian/resources/backup/fusionpbx-maintenance | 109 +++++++++++------- 1 file changed, 69 insertions(+), 40 deletions(-) diff --git a/debian/resources/backup/fusionpbx-maintenance b/debian/resources/backup/fusionpbx-maintenance index 8a65e10..6e51c05 100755 --- a/debian/resources/backup/fusionpbx-maintenance +++ b/debian/resources/backup/fusionpbx-maintenance @@ -6,66 +6,95 @@ db_host=127.0.0.1 db_port=5432 switch_package=true # true or false +purge_voicemail=false +purge_call_recordings=false +purge_cdrs=false +purge_fax=false +purge_switch_logs=true + +days_keep_voicemail=90 +days_keep_call_recordings=90 +days_keep_cdrs=90 +days_keep_fax=90 +days_keep_switch_logs=7 #set the date now=$(date +%Y-%m-%d) #make sure the directory exists -mkdir -p /var/backups/fusionpbx/postgresql +if [ -e /var/backups/fusionpbx/postgresql ]; then + echo "postgres backup directory exists" +else + mkdir -p /var/backups/fusionpbx/postgresql +fi #show message to the console echo "Maintenance Started" -#delete freeswitch logs older 7 days -if [ .$switch_package = .true ]; then - find /var/log/freeswitch/freeswitch.log.* -mtime +7 -exec rm {} \; +if [ .$purge_switch_logs = .true ]; then + #delete freeswitch logs older 7 days + if [ .$switch_package = .true ]; then + find /var/log/freeswitch/freeswitch.log.* -mtime +$days_keep_switch_logs -exec rm {} \; + else + find /usr/local/freeswitch/log/freeswitch.log.* -mtime +$days_keep_switch_logs -exec rm {} \; + fi else - find /usr/local/freeswitch/log/freeswitch.log.* -mtime +7 -exec rm {} \; + echo "not purging Freeswitch logs" fi -#delete fax older than 90 days -if [ .$switch_package = .true ]; then - echo "."; - #find /var/lib/freeswitch/storage/fax/* -name '*.tif' -mtime +90 -exec rm {} \; - #find /var/lib/freeswitch/storage/fax/* -name '*.pdf' -mtime +90 -exec rm {} \; +if [ .$purge_fax = .true]; then + #delete fax older than 90 days + if [ .$switch_package = .true ]; then + echo "."; + find /var/lib/freeswitch/storage/fax/* -name '*.tif' -mtime +$days_keep_fax -exec rm {} \; + find /var/lib/freeswitch/storage/fax/* -name '*.pdf' -mtime +$days_keep_fax -exec rm {} \; + else + echo "."; + find /usr/local/freeswitch/storage/fax/* -name '*.tif' -mtime +$days_keep_fax -exec rm {} \; + find /usr/local/freeswitch/storage/fax/* -name '*.pdf' -mtime +$days_keep_fax -exec rm {} \; + fi + #delete from the database + psql --host=127.0.0.1 --username=fusionpbx -c "delete from v_fax_files WHERE fax_date < NOW() - INTERVAL '$days_keep_fax days'" + psql --host=127.0.0.1 --username=fusionpbx -c "delete from v_fax_logs WHERE fax_date < NOW() - INTERVAL '$days_keep_fax days'" else - echo "."; - #find /usr/local/freeswitch/storage/fax/* -name '*.tif' -mtime +90 -exec rm {} \; - #find /usr/local/freeswitch/storage/fax/* -name '*.pdf' -mtime +90 -exec rm {} \; + echo "not purging Faxes" fi -#delete from the database -#psql --host=127.0.0.1 --username=fusionpbx -c "delete from v_fax_files WHERE fax_date < NOW() - INTERVAL '90 days'" -#psql --host=127.0.0.1 --username=fusionpbx -c "delete from v_fax_logs WHERE fax_date < NOW() - INTERVAL '90 days'" -#delete call recordings older than 90 days -if [ .$switch_package = .true ]; then - find /var/lib/freeswitch/recordings/*/archive/* -name '*.wav' -mtime +90 -exec rm {} \; - find /var/lib/freeswitch/recordings/*/archive/* -name '*.mp3' -mtime +90 -exec rm {} \; +if [ .$purge_call_recordings = .true ]; then + #delete call recordings older than 90 days + if [ .$switch_package = .true ]; then + find /var/lib/freeswitch/recordings/*/archive/* -name '*.wav' -mtime +$days_keep_call_recordings -exec rm {} \; + find /var/lib/freeswitch/recordings/*/archive/* -name '*.mp3' -mtime +$days_keep_call_recordings -exec rm {} \; + else + find /usr/local/freeswitch/recordings/*/archive/* -name '*.wav' -mtime +$days_keep_call_recordings -exec rm {} \; + find /usr/local/freeswitch/recordings/*/archive/* -name '*.mp3' -mtime +$days_keep_call_recordings -exec rm {} \; + fi + psql --host=127.0.0.1 --username=fusionpbx -c "delete from v_call_recordings WHERE call_recording_date < NOW() - INTERVAL '90 days'" else - find /usr/local/freeswitch/recordings/*/archive/* -name '*.wav' -mtime +90 -exec rm {} \; - find /usr/local/freeswitch/recordings/*/archive/* -name '*.mp3' -mtime +90 -exec rm {} \; + echo "not purging Recordings." fi -psql --host=127.0.0.1 --username=fusionpbx -c "delete from v_call_recordings WHERE call_recording_date < NOW() - INTERVAL '90 days'" - -#delete voicemail older than 90 days -if [ .$switch_package = .true ]; then - echo "."; - #find /var/lib/freeswitch/storage/voicemail/default/* -name 'msg_*.wav' -mtime +90 -exec rm {} \; - #find /var/lib/freeswitch/storage/voicemail/default/* -name 'msg_*.mp3' -mtime +90 -exec rm {} \; +if [ .$purge_voicemail = .true ]; then + #delete voicemail older than 90 days + if [ .$switch_package = .true ]; then + echo "."; + find /var/lib/freeswitch/storage/voicemail/default/* -name 'msg_*.wav' -mtime +$days_keep_voicemail -exec rm {} \; + find /var/lib/freeswitch/storage/voicemail/default/* -name 'msg_*.mp3' -mtime +$days_keep_voicemail -exec rm {} \; + else + echo "."; + find /usr/local/freeswitch/storage/voicemail/* -name 'msg_*.wav' -mtime +$days_keep_voicemail -exec rm {} \; + find /usr/local/freeswitch/storage/voicemail/* -name 'msg_*.mp3' -mtime +$days_keep_voicemail -exec rm {} \; + fi + psql --host=127.0.0.1 --username=fusionpbx -c "delete from v_voicemail_messages WHERE to_timestamp(created_epoch) < NOW() - INTERVAL '$days_keep_voicemail days'" else - echo "."; - #find /usr/local/freeswitch/storage/voicemail/* -name 'msg_*.wav' -mtime +90 -exec rm {} \; - #find /usr/local/freeswitch/storage/voicemail/* -name 'msg_*.mp3' -mtime +90 -exec rm {} \; + echo "not purging voicemails." fi -#psql --host=127.0.0.1 --username=fusionpbx -c "delete from v_voicemail_messages WHERE to_timestamp(created_epoch) < NOW() - INTERVAL '90 days'" - -#delete call detail records older 90 days -#psql --host=127.0.0.1 --username=fusionpbx -c "delete from v_xml_cdr WHERE start_stamp < NOW() - INTERVAL '90 days'" - - -#delete database_transactions older 90 days -psql --host=127.0.0.1 --username=fusionpbx -c "delete from v_database_transactions where transaction_date < NOW() - INTERVAL '90 days'" +if [ .$purge_cdrs = .true ]; then + #delete call detail records older 90 days + psql --host=127.0.0.1 --username=fusionpbx -c "delete from v_xml_cdr WHERE start_stamp < NOW() - INTERVAL '$days_keep_cdrs days'" +else + echo "not purging CDRs." +fi #completed message echo "Maintenance Completed";