RotateFSLogs

The logrotate doesn't necessarily work as advertised with FreeSWITCH. The cause is due to the way FS handles the sighup. When received, FS will automatically mv /usr/local/freeswitch/log/freeswitch.log to /usr/local/freeswitch/log/freeswitch.log.`date "+%whatever" In some rare instances, logrotate can cause FS to crash when it tries to write/mv to a file that has already been handled by logrotate.

A better way is to let FreeSWITCH do it's thing, and rotate the logfiles via a cron job. Here is one example (for CentOS change www-data.www-data to apache.apache)

NUMBERDAYS=30 FSPATH="/usr/local/freeswitch" $FSPATH/bin/fs_cli -x "fsctl send_sighup" |grep '+OK' >/tmp/rotateFSlogs if [ $? -eq 0 ]; then #-cmin 2 could bite us (leave some files uncompressed, eg 11M auto-rotate). Maybe -1440 is better? find $FSPATH/log/ -name "freeswitch.log.*" -cmin -2 -exec gzip {} \; find $FSPATH/log/ -name "freeswitch.log.*.gz" -mtime +$NUMBERDAYS -exec /bin/rm {} \; chown apache.apache $FSPATH/log/freeswitch.log chmod 660 $FSPATH/log/freeswitch.log logger FreeSWITCH Logs rotated /bin/rm /tmp/rotateFSlogs else logger FreeSWITCH Log Rotation Script FAILED mail -s '$HOST FS Log Rotate Error' root < /tmp/rotateFSlogs /bin/rm /tmp/rotateFSlogs fi
 * 1) !/bin/bash
 * 2) logrotate replacement script
 * 3) put in /etc/cron.daily
 * 4) don't forget to make it executable
 * 5) you might consider changing /usr/local/freeswitch/conf/autoload_configs/logfile.conf.xml
 * 6)  
 * 1) number of days of logs to keep