Fusionpbx – release disk space

handle history files voicemail + fax

cd /var/lib/freeswitch/storage/voicemail/
find . -mtime +360 -print > /tmp/a
# remove entries in /tmp/a 
:/g/com$/d
:g/\d$/d

cd /var/lib/freeswitch/storage/fax

handle database (postgres)

# get cdr tables schema
pg_dump --verbose -cs  -U fusionpbx fusionpbx -t v_xml_cdr -f /tmp/b.sql

# export database
root@fusionpbx:~# more fusionpbx_backup.sh

#!/bin/sh
now=$(date +%Y-%m-%d)
fname="fusionpbx_pgsql_$now.sql"
echo "Server Backup at "$now;
export PGPASSWORD="1CQorF0aQYmBnRIpNklTUz3pU"

#delete postgres logs older than 7 days
#find /var/log/postgresql/postgresql-9.4-main* -mtime +7 -exec rm {} \;
#delete freeswitch logs older 3 days
#find /usr/local/freeswitch/log/freeswitch.log.* -mtime +2 -exec rm {} \;

pg_dump --verbose -Fc --host=127.0.0.1 --port=5432 -U fusionpbx fusionpbx --schema=public -f /root/f.sql
echo 'Backup Complete';

stop freeswitch, make sure no new entries generated in database

create a new table, same with cdr, select recent 12 months cdr entries in it, drop cdr, rename temp table as cdr, create index

service nginx stop
systemctl stop freeswitch

DROP INDEX public.index_start_stamp;
DROP INDEX public.index_cdr_start_epoch;
DROP INDEX public.index_cdr_domain_uuid;

DROP TABLE public.v_xml_cdr;
ALTER TABLE wu RENAME TO v_xml_cdr;
ALTER TABLE v_xml_cdr OWNER TO fusionpbx;

CREATE INDEX index_cdr_domain_uuid ON v_xml_cdr USING btree (domain_uuid);
CREATE INDEX index_cdr_start_epoch ON v_xml_cdr USING btree (start_epoch);
CREATE INDEX index_start_stamp ON v_xml_cdr USING btree (start_stamp);

GRANT ALL ON TABLE v_xml_cdr TO neon_user;

systemctl start freeswitch
service nginx start

## maybe purge the table
fusionpbx=# TRUNCATE TABLE v_database_transactions ;