#!/bin/bash ############################################################## # File Name: syslog.sh # Version: V1.0 # Author: sanshi # Organization: https://www.9133w.cn # Created Time : 2019-02-17 21:13:30 # Description: ############################################################## [ $EUID -ne 0 ] && echo "root privileges need...." && exit 0 Log_Path="/data/logs" [ -d $Log_Path ] || mkdir -p $Log_Path if ! rpm -q syslog-ng &> /dev/null then rpm -q epel-release &> /dev/null || yum install -y epel-release req=$? [ $req -ne 0 ] && echo "epel-release install failure" && exit 1 yum install -y syslog-ng req=$? && [ $req -ne 0 ] && echo "syslog-ng install failure" && exit 1 fi sed -i 's/create_dirs (no)/create_dirs (yes)/' /etc/syslog-ng/syslog-ng.conf while : do echo "input a program name:" read Pro_Name if [ "$Pro_Name" = "q" -o "$Pro_Name" = "quit" ] then break elif [ "$Pro_Name" =~ [[:space:]] ] then echo "program name can not include space." continue fi for i in {15510..15600} do if grep -q "port($i)" /etc/syslog-ng/syslog-ng.conf then Port_Log=$i break fi done cat >> /etc/syslog-ng/syslog-ng.conf << EOF source ${Pro_Name}_log { udp((0.0.0.0) port($Port_Log)); }; destination d_${Pro_Name} { file("$Log_Path/${Pro_Name}.log"); }; log { source(${Pro_Name}_log); destination(d_${Pro_Name}); }; EOF done systemctl start syslog-ng