Linux随记(七)

一、欧拉bclinux 21.10安装zabbix-5.0.37.tar.gz (zbx-客户端)

#系统环境:
BigCloud Enterprise Linux For Euler 21.10 LTS
#软件信息:
zabbix-5.0.37.tar.gz , pcre-devel-8.44-2.oe1.x86_64.rpm , installZbxAgent5.sh

安装脚本: installZbxAgent5.sh

#!/bin/bash
#安装所需软件
sudo yum install -y gcc
sudo yum install -y pcre-devel
sudo rpm -Uvh  /tmp/pcre-devel-8.44-2.oe1.x86_64.rpm 
sudo yum install -y make
sudo useradd -s /sbin/nologin zabbix -M
sudo chmod 644 /var/log/messages

#编译安装
sudo sh -c "cd /tmp/zbx-agent5 && sudo tar xf zabbix-5.0.37.tar.gz"
sudo sh -c "cd /tmp/zbx-agent5/zabbix-5.0.37 && ./configure --enable-agent --disable-dependency-tracking && make install && echo 'install zbx-agent-ok' " 

#修改配置文件
sudo mkdir -p /etc/zabbix
sudo cp /usr/local/etc/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf
sudo sed -r -i "s#Server=127.0.0.1#Server=10.xx.xx.xx#g;s#ServerActive=127.0.0.1#ServerActive=10.xx.xx.xx#g" /usr/local/etc/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf


sudo cat << 'EOF' > /lib/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target

[Service]
Environment="CONFFILE=/etc/zabbix/zabbix_agentd.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-agent
Type=forking
KillMode=control-group
ExecStart=/usr/local/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID

[Install]
WantedBy=multi-user.target
EOF


sudo systemctl daemon-reload 
sudo systemctl enable zabbix-agent  --now
ss -naltp | grep 10050

1.1 小结

1、expect脚本调用 bash run.sh "sudo bash /tmp/installZbxAgent5.sh"     不懂为啥编译完后 不继续跑了。
2、cat EOF  要加单引号, 否则内容含有$号的内容,会“消失” (会被转义)
3、绝对路径  sh -c 用法 。如果之前写法是  cd /tmp/zbx/xx  ;  ./configure xxx 会报错 no such filexxxx
4、注意zabbix-agent.service文件的user和group。 (zabbix_agentd.conf里 默认禁止root启动zbx服务。)

5、使用远程调用也要注意执行的路径,所以写成了rpm -Uvh  /tmp/pcre-devel-8.44-2.oe1.x86_64.rpm 。可ssh过去后,pwd查看当前所在路径。 反正写绝对路径,绝没错。 
( ssh [email protected] "bash /tmp/zbx5/installZbxAgent5.sh"6、yum -y install --downloadonly --downloaddir=/tmp  pcre-devel   #下载pcre-devel的rpm包,环境是内网的。有的没配yum源
7、dos2unix installZbxAgent5.sh 

二、替换软连接和普通文件的名称

#使用方法 。   log4j*.jar slfj-log4j*.jar这个是要查找的文件,后面是把log4j换成test
sh changeTest.sh log4j*.jar slfj-log4j*.jar log4j test

#注意事项!
注意find查找的东西,如果你只想替换部分,则只写“部分”的内容,精准替换。 不然他会把findlog.txt的内容全部替换/全部删掉

changeTest.sh 脚本代码: (make by liang)

#! /bin/sh

. /etc/profile

dateStr=`date +"%Y%m%d%H%M%S"`
echo `date +"%Y-%m-%d %H:%M:%S"` > /root/excute_${dateStr}.log
echo "开始执行替换任务................................" >> /root/excute_${dateStr}.log

#备份历史查找记录
if [ -e /root/findlog.txt ];then
cat /root/findlog.txt >> /root/findlog_his.txt
fi

#查找对应文件
#find / -name $1 -o -name $2 > /root/findlog.txt

#先备份文件
cat findlog.txt| while read line
do
#文件路径
filepath=`echo $line |awk -F '/' '{for(i=1;i<=NF-1;i++){printf "%s/", $i}; printf "\n"}'`
bakpath=`echo $line |awk -F '/' '{for(i=1;i<=NF-2;i++){printf "%s/", $i}; printf "\n"}'`
bakname=`echo $line |awk -F '/' '{print $(NF-1)}'`
#备份相关文件
cd ${bakpath}
echo "备份文件............." >> /root/excute_${dateStr}.log
echo "tar -czf ${bakname}.tar.gz ${bakname}" >> /root/excute_${dateStr}.log
tar -czf ${bakname}.tar.gz ${bakname}
done

#执行替换操作
cat findlog.txt| while read line
do
 
#文件路径
filepath=`echo $line |awk -F '/' '{for(i=1;i<=NF-1;i++){printf "%s/", $i}; printf "\n"}'`

if [ -L $line ];then
echo $line"是软连接" >> /root/excute_${dateStr}.log
#软连接目录件
lnpath=`ls -l $line |awk -F ' -> ' '{print $2}'`
#进到对应目录
cd $filepath
newlnfile=`echo $lnpath|sed "s/$3/$4/g"`
newfile=`echo $line|sed "s/$3/$4/g"`
echo "重命名软连接原始文件.............." >> /root/excute_${dateStr}.log
echo "mv $filepath$lnpath $filepath$newlnfile" >> /root/excute_${dateStr}.log
mv $filepath$lnpath $filepath$newlnfile
echo "重新设置软连接..........." >> /root/excute_${dateStr}.log
echo "ln -s $filepath$newlnfile $newfile" >> /root/excute_${dateStr}.log
ln -s $filepath$newlnfile $newfile
echo "删除之前软连接..........." >> /root/excute_${dateStr}.log
echo "rm -rf $line" >> /root/excute_${dateStr}.log
rm -rf $line
else
echo $line" 不是软连接" >> /root/excute_${dateStr}.log
newfile=`echo $line|sed "s/$3/$4/g"`
echo "重命名文件名称..........." >> /root/excute_${dateStr}.log
echo "mv $line $newfile" >> /root/excute_${dateStr}.log
mv $line $newfile
fi 
done

三、定制rpm学习笔记

#博主:
https://zhuanlan.zhihu.com/p/652906168  《如何编译打包OpenSSH 9.4并实现批量升级》 centos7/centos6
https://www.jianshu.com/p/f1ae6f58a089  《虚拟机制作 openssh rpm升级包》 centos7
https://blog.csdn.net/forestqq/article/details/132685885 《编译CentOS6.10系统的OpenSSHV9.4rpm安装包》
https://blog.csdn.net/alwaysbefine/article/details/131217650  《Linux|编译最新版的openssh-server-9.3的rpm包(一)》centos7


#视频:
BV1KZ4y1s7Ve    --> ob
BV1ai4y1N7gp    --> mage (推荐)

你可能感兴趣的:(linux随记,linux,运维,zabbix)