#/bin/bash
#该脚本用于自动化部署Ryslog服务配置
#作者:雨中落叶
#博客:https://www.cnblogs.com/yuzly/
echo "****************************
1.部署Rsyslog服务器2.部署Rsyslog客户端****************************"read -p "请输入部署选项:"Numcase $Num in
1)
#部署服务端echo "****************************
1.UDP传输方式2.TCP传输方式3.RELP传输方式****************************" read -p "请选择传输方式:"N
#关闭防火墙,避免影响实验
service iptables stop&>/dev/nullsetenforce0 &>/dev/null
case $N in
1)
#修改配置文件,启用udp传输方式
alterudp1=$(grep imudp /etc/rsyslog.conf)
alterudp2=$(grep UDPServerRun /etc/rsyslog.conf)
#“"#"字符串截取,截取#右边的字符sed -i "s/$alterudp1/${alterudp1#\#*}/" /etc/rsyslog.confsed -i "s/$alterudp2/${alterudp2#\#*}/" /etc/rsyslog.conf
listen=$(grep YSLOGD_OPTIONS /etc/sysconfig/rsyslog |awk -F= '{print $2}')
#转义空格以及特殊字符sed -i "s/$listen/\"-r514\ -c2\"/" /etc/sysconfig/rsyslog
service rsyslog restart&>/dev/null;;2)
#修改配置文件,启用tcp传输方式
altertcp1=$(grep imtcp /etc/rsyslog.conf)
altertcp2=$(grep InputTCPServerRun /etc/rsyslog.conf)sed -i "s/$altertcp1/${altertcp1#\#*}/" /etc/rsyslog.confsed -i "s/$altertcp2/${altertcp2#\#*}/" /etc/rsyslog.conf
listen=$(grep YSLOGD_OPTIONS /etc/sysconfig/rsyslog |awk -F= '{print $2}')sed -i "s/$listen/\"-r514\ -c2\"/" /etc/sysconfig/rsyslog
service rsyslog restart&>/dev/null;;3)
#修改配置文件,启用relp传输方式
n=$(rpm -qa rsyslog-relp | wc -l)
#根据返回的行数来判断是否安装rsyslog-relp服务if [ $n -eq 0]then
echo "当前系统没有安装rsyslog-relp服务,正在安装,请稍等....."
mount /dev/sr0 /mnt &>/dev/null#搭建本地yum仓库
cd/etc/yum.repos.dcat >>yuzly.repo<
[yuzly]
name=yuzly
baseurl=file:///mnt
enabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
OK
#cat输入到文件的定界符结束符要顶格
#清空yum缓存echo "正在清除yum缓存...."
yum clean all &>/dev/null
yum makecache &>/dev/null
echo "yum缓存清除结束!"
yum install rsyslog-relp -y &>/dev/null
echo "rsyslog-relp服务安装完成!"#由于配置文件没有关于relp的配置,这里直接追加到文件的末尾echo '$ModLoad imrelp'>>/etc/rsyslog.confecho '$InputRELPServerRun 2514'>>/etc/rsyslog.conf
listen=$(grep YSLOGD_OPTIONS /etc/sysconfig/rsyslog |awk -F= '{print $2}')sed -i "s/$listen/\"-r2514\ -c2\"/" /etc/sysconfig/rsyslog
service rsyslog restart&>/dev/null
else
echo '$ModLoad imrelp'>>/etc/rsyslog.confecho '$InputRELPServerRun 2514'>>/etc/rsyslog.conf
listen=$(grep YSLOGD_OPTIONS /etc/sysconfig/rsyslog |awk -F= '{print $2}')sed -i "s/$listen/\"-r2514\ -c2\"/" /etc/sysconfig/rsyslog
service rsyslog restart&>/dev/null
fi;;*)echo "输入错误,请输入相应的数字!";;esac;;2)
#部署客户端echo "****************************
1.UDP传输方式2.TCP传输方式3.RELP传输方式****************************" read -p "请选择传输方式:"N
#关闭防火墙,避免影响实验
service iptables stop&>/dev/nullsetenforce0 &>/dev/null
case $N in
1)
read-p "请输入服务端的IP地址:"IPecho "*.* @$IP">>/etc/rsyslog.conf
service rsyslog restart
;;2)
read-p "请输入服务端的IP地址:"IPecho "*.* @@$IP">>/etc/rsyslog.conf
service rsyslog restart
;;3)
n=$(rpm -qa rsyslog-relp | wc -l)
#根据返回的行数来判断是否安装rsyslog-relp服务if [ $n -eq 0]then
echo "当前系统没有安装rsyslog-relp服务,正在安装,请稍等....."
mount /dev/sr0 /mnt &>/dev/null#搭建本地yum仓库
cd/etc/yum.repos.dcat >>yuzly.repo<
[yuzly]
name=yuzly
baseurl=file:///mnt
enabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
OK
#清空yum缓存echo "正在清除yum缓存...."
yum clean all &>/dev/null
yum makecache &>/dev/null
echo "yum缓存清除结束!"
yum install rsyslog-relp -y &>/dev/null
echo "rsyslog服务安装完成!"#输入服务端的IP
read-p "请输入服务端的IP地址:"IPecho '$ModLoad omrelp' >>/etc/rsyslog.confecho "*.* :omrelp:$IP:2514">>/etc/rsyslog.conf
service rsyslog restartelse#输入服务端的IP
read-p "请输入服务端的IP地址:"IPecho '$ModLoad omrelp' >>/etc/rsyslog.confecho "*.* :omrelp:$IP:2514">>/etc/rsyslog.conf
service rsyslog restartfi;;*)echo "输入错误,请输入相应的数字!";;esac;;*)echo "输入错误,请输入相应的数字!";;esac