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…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...

10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...

排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...