ansible-freebsd-jailhost-tools/tools/reset-syslog-socketpaths.sh

65 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env sh
#set -xe
EXTRA_SOCKETS=/etc/syslogd.sockets.extra
SCRIPTNAME=$(basename $0)
# Create default list of syslog sockets to watch
#
( umask 022 ; > $EXTRA_SOCKETS )
for i in /jails/static/*/var/run
do
echo $i >>$EXTRA_SOCKETS
done
add_all_dynamic_dirs() {
for i in /jails/dynamic/*
do
echo $i/var/run >>$EXTRA_SOCKETS
done
}
add_latest_only_dirs() {
_jailnames=$(ls -d /jails/dynamic/*|cut -f 4 -d '/'|sed -E 's/-[[:digit:]]+-[[:digit:]]+$/-/g'|uniq)
for jailname in $_jailnames
do
_latest_dir=$(ls -d /jails/dynamic/$jailname*|sort -r|head -1)
echo $_latest_dir/var/run >>$EXTRA_SOCKETS
done
}
TEMP=$(getopt 'ar' "$@")
eval set -- "$TEMP"
_dynamic_dirs=no
_restart_syslogd=no
# extract options and their arguments into variables.
while true ; do
case "$1" in
-a)
shift
_dynamic_dirs=yes
;;
-r)
shift
_restart_syslogd=yes
;;
--)
shift
break
;;
*)
echo "Internal error!"
exit 1
;;
esac
done
test $_dynamic_dirs == "yes" && add_all_dynamic_dirs || add_latest_only_dirs
test $_restart_syslogd == "yes" && service syslogd restart
# vim: sw=4:smarttab