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 (推荐)
相关文章:
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 , inst…...
RESTful API,以及如何使用它构建 web 应用程序。
RESTful API是一种基于REST(Representational State Transfer)架构风格的API(Application Programming Interface),它采用HTTP协议中的GET、POST、PUT、DELETE等方法,对资源进行操作。RESTful API的核心思想…...
【华为OD题库-075】拼接URL-Java
题目 题目描述: 给定一个url前缀和url后缀,通过,分割。需要将其连接为一个完整的url。 如果前缀结尾和后缀开头都没有/,需要自动补上/连接符 如果前缀结尾和后缀开头都为/,需要自动去重 约束:不用考虑前后缀URL不合法情况 输入描述: url前缀(一个长度小于…...
【Unity动画】为一个动画片段添加事件Events
动画不管播放到那一帧,我们都可以在这里“埋伏”一个事件(调用一个函数并且给函数传递一个参数,参数在外部设置,甚至传递一个物体)! 嗨,亲爱的Unity小伙伴们!你是否曾想过为你的动画…...
CoDeF视频处理——视频风格转化部署使用与源码解析
一、算法简介与功能 CoDef是作为一种新型的视频表示形式,它包括一个规范内容场,聚合整个视频中的静态内容,以及一个时间变形场,记录了从规范图像(即从规范内容场渲染而成)到每个单独帧的变换过程。针对目标…...
ubuntu server 20.04 备份和恢复 系统 LTS
ubuntu server 20.04 备份和恢复 系统 LTS tar命令系统备份与恢复(还原or新装) 备份系统 cd / su root tar cvpzf backup.tgz --exclude/tmp --exclude/run --exclude/dev --exclude/snap --exclude/proc --exclude/lostfound --exclude/backup.tgz …...
NFC对物联网开发的影响及用途
当谈到NFC对物联网的影响时,不得不提它的几个重要的优势,可能在未来几年影响着物联网的发展方向。 全球智能手机的普及是其中一个重要因素:市面上已有数十亿部支持NFC的智能手机,专家们相信这个数字还会大幅增长。智能手机用户已…...
企业级SQL开发:如何审核发布到生产环境的SQL性能
自从上世纪 70 年代数据库开始普及以来,DBA 们就不停地遭遇各种各样的数据库管理难题,其中最为显著的,可能就是日常的开发任务中,研发人员们对于核心库进行变更带来的一系列风险。由于针对数据库的数据变更是一项非常常见的任务&a…...
linux 手动安装移植 haveged,解决随机数初始化慢的问题
文章目录 1、问题描述2、安装 haveged3、问题解决4、将安装好的文件跟库移植到开发板下 Haveged是一个软件工具,用于生成高质量的熵(Entropy)源,以供计算机系统使用。熵在计算机科学中指的是一种随机性或不可预测性的度量…...
如何使用llm 制作多模态
首先将任何非字符的序列信息使用特殊n个token 编码。 具体编码方法以图像为例子说明: 将固定尺寸图像如256256 的图像分割为1616 的子图像块。 将已知的所有图像数据都分割后进行str将其看做是一个长的字符,而后去重后方式一个词表。 使用特殊1024 个tok…...
k8s(二):Pod
Pod pod 是K8s中最小的可部署单元,用于容纳一个或多个容器。Pod为容器提供了一个共享的环境,包括网络命名空间、存储卷和IP地址。 pod的阶段(phase) Pending: Pod 已被 Kubernetes 系统接受,但有一个或者多个容器尚未创建亦未运行。此阶段包…...
Python 字典详解(dict)
文章目录 1 概述1.1 性质 2 常用方法2.1 以列表返回所有键:keys()2.2 以列表返回所有值:values()2.3 以列表返回所有键值对:items()2.4 返回键对应的值:get()2.5 添加键值对:setdefault()2.6 修改键值对:di…...
IPoIB在国产并行系统上的实现与优化
目录 1 国产异构众核系统 2 相关工作 3 IPoIB在国产并行系统上的实现 3.1 IPoIB协议原理...
东南大学与OpenHarmony携手共建开源生态,技术俱乐部揭牌成立并迎来TSC专家进校园
11月25日,OpenAtom OpenHarmony(以下简称“OpenHarmony”)项目群技术指导委员会(以下简称“TSC”)与东南大学携手,于东南大学九龙湖校区金智楼一楼报告厅举办了“东南大学OpenHarmony技术俱乐部成立仪式暨OpenHarmony TSC专家进校园”活动。此次盛会标志着OpenHarmony开源社区和…...
NPU、CPU、GPU算力及算力计算方式
NVIDIA在9月20日发布的NVIDIA DRIVE Thor 新一代集中式车载计算平台,可在单个安全、可靠的系统上运行高级驾驶员辅助应用和车载信息娱乐应用。提供 2000 万亿次浮点运算性能(2000 万亿次8位浮点运算)。NVIDIA当代产品是Orin,算力是…...
华清远见嵌入式学习——C++——作业6
作业要求: 代码: #include <iostream>using namespace std;class Animal { public:virtual void perform() 0;};class Lion:public Animal { private:string foods;string feature; public:Lion(){}Lion(string foods,string feature):foods(foo…...
k8s安装学习环境
目录 环境准备 配置hosts 关闭防火墙 关闭交换分区 调整swappiness参数 关闭setlinux Ipv4转发 时钟同步 安装Docker 配置Yum源 安装 配置 启动 日志 安装k8s 配置Yum源 Master节点 安装 初始化 配置kubectl 部署CNI网络插件 Node节点 检查 环境准备 准…...
RepidJson将内容写入文件简单代码示例
以下是使用RapidJSON将内容写入文件的示例代码: #include <rapidjson/document.h> #include <rapidjson/writer.h> #include <rapidjson/stringbuffer.h> #include <iostream> #include <fstream>using namespace rapidjson;int mai…...
golang构建docker镜像的几种方式
目前docker支持以下几种方式指定上下文来构建镜像 本地项目路径(如:/tmp/xxx)本地压缩包路径(如:/tmp/xxx.tar)docekrfile文本链接(如:https://x.com/xxx/dockerfile)压…...
golang使用sip协议 用户名和密码注册到vos3000
在Go语言中,要使用SIP协议进行注册,您可以使用第三方库,如github.com/cloudwebrtc/sip。以下是一个简单的示例代码,演示如何使用Go语言中的该库进行基本的SIP注册: 首先,您需要安装该库: go ge…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
