当前位置: 首页 > news >正文

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.confsudo 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
EOFsudo 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 test@192.168.1.100 "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/profiledateStr=`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 (推荐)
http://www.lryc.cn/news/253786.html

相关文章:

  • RESTful API,以及如何使用它构建 web 应用程序。
  • 【华为OD题库-075】拼接URL-Java
  • 【Unity动画】为一个动画片段添加事件Events
  • CoDeF视频处理——视频风格转化部署使用与源码解析
  • ubuntu server 20.04 备份和恢复 系统 LTS
  • NFC对物联网开发的影响及用途
  • 企业级SQL开发:如何审核发布到生产环境的SQL性能
  • linux 手动安装移植 haveged,解决随机数初始化慢的问题
  • 如何使用llm 制作多模态
  • k8s(二):Pod
  • Python 字典详解(dict)
  • IPoIB在国产并行系统上的实现与优化
  • 东南大学与OpenHarmony携手共建开源生态,技术俱乐部揭牌成立并迎来TSC专家进校园
  • NPU、CPU、GPU算力及算力计算方式
  • 华清远见嵌入式学习——C++——作业6
  • k8s安装学习环境
  • RepidJson将内容写入文件简单代码示例
  • golang构建docker镜像的几种方式
  • golang使用sip协议 用户名和密码注册到vos3000
  • 第4章 互联网
  • 【JavaWeb】前端工程化(VUE3)
  • JAVA基础知识:异常处理
  • PostGIS学习教程十:空间索引
  • LeetCode 13 罗马数字转整数
  • 【动态规划】LeetCode2111:使数组 K 递增的最少操作次数
  • SpringCloud面试题——Nacos
  • leetcode:统计感冒序列的数目【数学题:组合数含逆元模版】
  • 外贸建站平台工具推荐?做海洋建站的平台?
  • 【智能家居】三、添加语音识别模块的串口读取功能点
  • 物联网开发(一)新版Onenet 基础配置