smeserver-base/root/etc/e-smith/events/actions/logrotate-migrate

55 lines
1.5 KiB
Bash

#!/bin/bash
# this script is to migrate old symlink log to regular file in order
# to be handled by logrotate
#known files that could be symlinks
FILES="/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
/var/log/boot.log
/var/log/httpd/admin_access_log
/var/log/httpd/admin_error_log
/var/log/httpd/access_log
/var/log/httpd/error_log
/var/log/httpd/fpbx_error_log
/var/log/httpd/fpbx_access_log
/var/log/httpd/bkpc_access_log
/var/log/httpd/bkpc_error_log
/var/log/httpd/issoqlog_access_log
/var/log/httpd/isoqlog_access_log
/var/log/httpd/isoqlog_error_log
/var/log/httpd/pki_access_log
/var/log/httpd/pki_error_log
/var/log/pluto/pluto.log"
#counter
found=0
# could do also $(find /var/log/ -type l)
for f in $FILES
do
if [ -L "$f" ]; then
echo "Processing $f"
mylink=$(readlink "$f")
unlink $f
touch $f
if [ -f "$mylink" ]; then
cp --attributes-only "$mylink" "$f"
fi
((found+=1))
fi
done
# exit if we are running bootstrap-console.service, to avoid systemd queue loop
/usr/bin/systemctl --quiet is-active bootstrap-console.service && exit 0;
# restart the needed services
if [ $found -gt 0 ] ; then
/usr/bin/systemctl daemon-reload > /dev/null 2>/dev/null
/usr/bin/systemctl --quiet is-active httpd-*.service && /usr/bin/systemctl reload httpd-*.service > /dev/null 2>/dev/null
/usr/bin/systemctl --quiet is-active rsyslog.service && /usr/bin/systemctl restart rsyslog.service > /dev/null 2>/dev/null
fi