Backup & Restore

What to Back Up

Data Location Method
ICTCore config /usr/ictcore/etc/ File copy
ICTCore DB MariaDB ictfax mysqldump
ICTCore PBX DB PostgreSQL fusionpbx pg_dump
FreeSWITCH config /etc/freeswitch/ File copy
Recordings /var/lib/freeswitch/recordings/ File copy
Voicemail /var/lib/freeswitch/storage/voicemail/ File copy
Frontend build /usr/ictpbxx/ File copy

Backup Commands

MariaDB (ICTCore)

mysqldump -u root ictfax > /backup/ictfax_$(date +%Y%m%d).sql

PostgreSQL (ICTCore PBX)

PGPASSWORD=”” pg_dump -h 127.0.0.1 -U fusionpbx fusionpbx > /backup/ictpbx_$(date +%Y%m%d).sql

FreeSWITCH config

tar czf /backup/freeswitch_$(date +%Y%m%d).tar.gz /etc/freeswitch/

Recordings & Voicemail

tar czf /backup/media_$(date +%Y%m%d).tar.gz /var/lib/freeswitch/recordings/ /var/lib/freeswitch/storage/voicemail/

Restore Commands

MariaDB

mysql -u root ictfax < /backup/ictfax_20240101.sql

PostgreSQL (ICTCore PBX)

PGPASSWORD=”” psql -h 127.0.0.1 -U fusionpbx fusionpbx < /backup/ictpbx_20240101.sql

Recommended Schedule

Backup Frequency
Full DB dump Daily, retain 7 days
Config files Weekly
Recordings Weekly or on-demand

Tip: Automate with Cron

crontab -e

Add: 0 2 * /usr/local/bin/ictpbx-backup.sh