Difference between revisions of "CDR MySQL FreePBX database opruimen/oude gespreks-logs wissen"

From 4AllBusiness
Jump to navigation Jump to search
Line 28: Line 28:
 
  exit
 
  exit
  
'''Cronjob of verzamellijnen, om het script uit te voeren zodat >2jaar gewist wordt.'''
+
'''Cronjob of verzamellijnen, om het script uit te voeren zodat > 6 maanden gewist wordt.'''
 
Sla het volgende sript op en gebruik deze naam in de crontjob. Sla het bestand op in de ROOT directory
 
Sla het volgende sript op en gebruik deze naam in de crontjob. Sla het bestand op in de ROOT directory
Bestandsnaam in het voorbeeld: /root/DeleteCDR12mnd.sql
 
  
  mysql
+
  Create a script called (for example) “DeleteCDR6Mnd.sh” in your “asterisk root directory” or in the “root” home directory. The example below assumes it’s in the “/root” directory.
 +
 
 
  use asteriskcdrdb;
 
  use asteriskcdrdb;
  delete from cdr where calldate < DATE_SUB(NOW(), INTERVAL 24 MONTH);
+
repair table cdr;
  delete from cel where eventtime < DATE_SUB(NOW(), INTERVAL 1 DAY);
+
repair table cel;
 +
  delete from cdr where calldate < DATE_SUB(NOW(), INTERVAL 6 MONTH);
 +
  delete from cel where eventtime < DATE_SUB(NOW(), INTERVAL 6 MONTH);
 
  optimize table cdr;
 
  optimize table cdr;
 
  optimize table cel;
 
  optimize table cel;
 
  exit;
 
  exit;
  
Crontab -e
+
Voeg het script toe aan de crontab voor automatische uitvoer, elke zondag om 5 uur
  1 1 X X X X mysql -u root asteriskcdrdb < /root/DeleteCDR12mnd.sql
+
 
 +
crontab -e
 +
invoegen van de volgende lijn
 +
  * 5 * * 0 mysql -u root asteriskcdrdb < /root/DeleteCDR6mnd.sh >/dev/null 2>&1
 +
 
 +
The “X” entries are there for your time/date/day entries […]

Revision as of 11:38, 2 March 2024

In FreePBX worden CDR CallDetailRecords bijgehouden. De hoeveelheid kan in de loop der jaren flink oplopen, en soms is het wenselijk om alles of een deel te wissen. Dit moet middels de command line in Linux in MySQL. Middels een webinterface kan dit via phpMyAdmin, een webinterface om MySQL te beheren. CEL tabel wissen ruimt dikwijls veel harddiskruimte op, zie onder.

Wis alle Records:

# mysql
show databases;
use asteriskcdrdb;
delete FROM `cdr` WHERE `duration` >= 0;
OPTIMIZE TABLE  asteriskcdrdb.cdr;
exit

Wis van voor een bepaalde datum bv voor 2018:

# mysql
use asteriskcdrdb;
DELETE from cdr WHERE calldate < '2018-01-01 00:00:00';
OPTIMIZE TABLE  asteriskcdrdb.cdr;
exit

CEL tabel wissen - Dit scheelt vaak veel ruimte op hdd

use asteriskcdrdb;
show tables;
describe cel;
DELETE from cel WHERE eventtime < '2018-01-01 00:00:00';
OPTIMIZE TABLE  asteriskcdrdb.cel;
exit

Cronjob of verzamellijnen, om het script uit te voeren zodat > 6 maanden gewist wordt. Sla het volgende sript op en gebruik deze naam in de crontjob. Sla het bestand op in de ROOT directory

Create a script called (for example) “DeleteCDR6Mnd.sh” in your “asterisk root directory” or in the “root” home directory. The example below assumes it’s in the “/root” directory.
use asteriskcdrdb;
repair table cdr;
repair table cel;
delete from cdr where calldate < DATE_SUB(NOW(), INTERVAL 6 MONTH);
delete from cel where eventtime < DATE_SUB(NOW(), INTERVAL 6 MONTH);
optimize table cdr;
optimize table cel;
exit;

Voeg het script toe aan de crontab voor automatische uitvoer, elke zondag om 5 uur

crontab -e

invoegen van de volgende lijn

* 5 * * 0 mysql -u root asteriskcdrdb < /root/DeleteCDR6mnd.sh >/dev/null 2>&1

The “X” entries are there for your time/date/day entries […]