Difference between revisions of "CDR MySQL FreePBX database opruimen/oude gespreks-logs wissen"
4allbusiness (talk | contribs) |
4allbusiness (talk | contribs) |
||
Line 13: | Line 13: | ||
exit | exit | ||
− | '''Wis van | + | '''Wis van ouder dan 6 maanden:''' |
# mysql | # mysql | ||
use asteriskcdrdb; | use asteriskcdrdb; | ||
− | DELETE from cdr WHERE calldate < | + | DELETE from cdr WHERE calldate < DATE_SUB(NOW(), INTERVAL 6 MONTH); |
OPTIMIZE TABLE asteriskcdrdb.cdr; | OPTIMIZE TABLE asteriskcdrdb.cdr; | ||
exit | exit | ||
Line 24: | Line 24: | ||
show tables; | show tables; | ||
describe cel; | describe cel; | ||
− | DELETE from cel WHERE eventtime < | + | DELETE from cel WHERE eventtime < DATE_SUB(NOW(), INTERVAL 6 MONTH); |
OPTIMIZE TABLE asteriskcdrdb.cel; | OPTIMIZE TABLE asteriskcdrdb.cel; | ||
exit | exit | ||
'''Cronjob of verzamellijnen, om het script uit te voeren zodat > 6 maanden 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 | + | Sla het volgende sript op en gebruik deze naam in de cronjob. Sla het bestand op in de ROOT directory |
− | + | Maak een cleanup script (for example) “DeleteCDR6Mnd.sh” in your “asterisk root directory” of in de “root” home directory. | |
cd /root | cd /root | ||
Line 46: | Line 46: | ||
crontab -e | crontab -e | ||
− | invoegen van de volgende lijn | + | invoegen van de volgende lijn in crontab. Het bestand staat in /var/spool/cron/root |
* 5 * * 0 mysql -u root asteriskcdrdb < /root/DeleteCDR6mnd.sh >/dev/null 2>&1 | * 5 * * 0 mysql -u root asteriskcdrdb < /root/DeleteCDR6mnd.sh >/dev/null 2>&1 | ||
− | |||
− |
Latest revision as of 11:48, 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 ouder dan 6 maanden:
# mysql use asteriskcdrdb; DELETE from cdr WHERE calldate < DATE_SUB(NOW(), INTERVAL 6 MONTH); 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 < DATE_SUB(NOW(), INTERVAL 6 MONTH); 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 cronjob. Sla het bestand op in de ROOT directory
Maak een cleanup script (for example) “DeleteCDR6Mnd.sh” in your “asterisk root directory” of in de “root” home directory.
cd /root echo "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;" >DeleteCDR6mnd.sh
Voeg het script toe aan de crontab voor automatische uitvoer, elke zondag om 5 uur
crontab -e
invoegen van de volgende lijn in crontab. Het bestand staat in /var/spool/cron/root
* 5 * * 0 mysql -u root asteriskcdrdb < /root/DeleteCDR6mnd.sh >/dev/null 2>&1