65 lines
1.3 KiB
Bash
Executable File
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
|