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

自动化运维-配置Mysql、emqx、redis、nginx等通用性Linux日志分割工具 - logrotate

前言:logrotate 是一个在 Linux 系统中用于管理和轮转日志文件的工具。它的主要目的是帮助系统管理员自动执行日志文件的轮转、压缩、删除和邮件通知等任务,以防止日志文件占用过多的磁盘空间,同时保持日志文件的可管理性。

参考命令:
1、手动运行 logrotate 命令来测试配置,并查看是否生成日志:
命令:sudo /usr/sbin/logrotate -v /etc/logrotate.d/当前服务
2、测试配置,不做实际操作
命令:logrotate -d /etc/logrotate.d/当前服务
3、手动执行 logrotate
命令:logrotate -vf /etc/logrotate.d/当前服务
4、查看 cron 日志,确定 logrotate 是否执行
命令:tail /var/log/cron
5、查看 logrotate 的状态文件,确定是否执行了具体切割任务
命令:cat /var/lib/logrotate/logrotate.statu

一、Mysql日志切割配置

1、服务实际情况

mysql日志文件路径为:/var/log/mysqld.log
日志文件的权限、用户、用户组为: -rw-r--r-- 1 mysql mysql
mysql.pid路径为:/var/run/mysqld/mysqld.pid

2、需求:保留最近3个月的

3、详细操作步骤

创建logrotate配置文件
在/etc/logrotate.d/目录下创建一个新的配置文件,例如命名为mysql。
命令:vim /etc/logrotate.d/mysql

添加以下l配置内容

/var/log/mysqld.log {dailyrotate 90compressmissingoknotifemptycreate 0640 mysql mysqlpostrotateif [ -f /var/run/mysqld/mysqld.pid ]; thenkill -USR1 `cat /var/run/mysqld/mysqld.pid`fiendscript
}
配置解释如下:
daily:表示每天进行日志轮转。
rotate 90:表示保留90天的日志文件,大约3个月。
compress:轮转后的日志文件将被压缩。
missingok:如果日志文件缺失,logrotate不会报错。
notifempty:如果日志文件为空,则不进行轮转。
create 0640 mysql mysql:创建新的日志文件,并设置权限为0640,所有者为mysql,组为mysql。
Postrotate:在日志轮转之后执行的命令,这里使用if语句检查/var/run/mysqld/mysqld.pid文件是否存在,如果存在,则发送USR1信号给MySQL,使其重新打开日志文件。

4.保存并退出vim编辑器

5. 测试logrotate配置

为了确保配置文件没有错误,手动运行logrotate并测试配置:
命令:sudo logrotate -d /etc/logrotate.d/mysql
注释:-d参数会打印出将要执行的操作,而不会实际执行它们。
(权限限制,无法截图,复制的输出信息)

[root@ap04_mysql mysqld]# sudo logrotate -d /etc/logrotate.d/mysql
reading config file /etc/logrotate.d/mysql
Allocating hash table for state file, size 15360 BHandling 1 logsrotating pattern: /var/log/mysqld.log  after 1 days (90 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/mysqld.loglog does not need rotating (log has been already rotated)[root@ap04_mysql mysqld]#

6. 验证logrotate能否正常运行

检查/etc/cron.daily/logrotate文件,确保logrotate的定时任务是启用的。
方法一:
命令:cat /etc/cron.daily/logrotate
(无法截图,复制的输出信息)

[root@ap04_mysql mysqld]# cat /etc/cron.daily/logrotate
#!/bin/sh/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

结论:这个脚本的目的是确保 logrotate 能够每天自动执行,并且在执行过程中如果遇到任何问题,会通过系统日志服务记录一个警告。这样,系统管理员也可以通过查看系统日志来监控 logrotate 的运行状况。

方法二:

命令:journalctl -xe | grep logrotate
(无法截图,复制的输出信息)

[root@ap04_mysql mysqld]# journalctl -xe | grep logrotate
Feb 15 04:48:01 ap04_mysql run-parts(/etc/cron.daily)[7233]: starting logrotate
Feb 15 04:48:01 ap04_mysql run-parts(/etc/cron.daily)[7242]: finished logrotate
Feb 16 03:44:01 ap04_mysql run-parts(/etc/cron.daily)[5443]: starting logrotate
Feb 16 03:44:01 ap04_mysql run-parts(/etc/cron.daily)[5448]: finished logrotate
Sep 12 19:37:01 ap04_mysql run-parts(/etc/cron.daily)[15728]: starting logrotate
Sep 12 19:37:01 ap04_mysql run-parts(/etc/cron.daily)[15737]: finished logrotate
Sep 13 03:20:01 ap04_mysql run-parts(/etc/cron.daily)[20829]: starting logrotate
Sep 13 03:20:01 ap04_mysql run-parts(/etc/cron.daily)[20834]: finished logrotate
Sep 13 10:13:19 ap04_mysql sudo[21880]:     root : TTY=pts/2 ; PWD=/run/mysqld ; USER=root ; COMMAND=/sbin/logrotate -d /etc/logrotate.d/mysql

结论:从journalctl命令输出来看,logrotate任务已在系统上定期执行,并且没有显示错误或失败的记录。这表明logrotate正在正常运行,并且能够成功完成日志文件的轮转

以下是输出信息的具体解释:

① starting logrotate 和 finished logrotate:这些行表明logrotate任务已经开始并成功完成。run-parts(/etc/cron.daily)是cron任务的一部分,它运行/etc/cron.daily目录下的所有脚本。
② sudo[21880]: root : TTY=pts/2 ; PWD=/run/mysqld ; USER=root ; COMMAND=/sbin/logrotate -d /etc/logrotate.d/mysql:这行显示了一次手动执行logrotate测试命令的记录。这里使用了-d选项,表示这是一个调试运行,用于测试配置文件而不实际进行轮转。

这些日志条目表明logrotate任务已经按照计划执行,并且没有遇到任何问题。如果您想要进一步验证轮转是否按预期工作,可以定期检查日志文件本身是否已经被轮转和压缩,以及是否创建了新的日志文件。

二、emqx日志切割配置:

1、服务实际情况

(无法截图,复制的输出信息)

[root@ap02_mp log]# ll -sh
total 924K
428K -rw-r--r-- 1 root root 428K Sep 12 23:39 emqx.log.1
4.0K -rw-r--r-- 1 root root   18 Sep 13 08:43 emqx.log.idx
4.0K -rw-r--r-- 1 root root   13 Sep 13 08:43 emqx.log.siz
484K -rw-r--r-- 1 root root 482K Sep 13 10:43 erlang.log.1
4.0K -rw-r--r-- 1 root root  260 Sep 13 08:43 run_erl.log

emqx的日志路径为:/apps/emqx/log/emqx.log ; /apps/emqx/log/erlang.log ; /apps/emqx/log/run_erl.log
日志文件的权限、用户、用户组都为:-rw-r--r-- 1 root root

日志功能解析:

emqx.log.1:这是一个日志文件,大小为428K,看起来像是EMQX Broker(一个MQTT消息代理)的日志。日志切割可以帮助管理这个文件的大小,避免它无限制地增长。
erlang.log.1:这是另一个日志文件,大小为484K,可能是与EMQX相关的Erlang应用程序的日志。Erlang VM的日志通常包含应用程序的运行时信息。
run_erl.log:这个文件可能包含了Erlang运行时的启动日志。虽然它目前的大小只有4.0K,但是如果它随着时间增长,也可能需要日志切割。

2、需求:日志保留最近2周

3、详细步骤

编辑配置文件
命令:vim /etc/logrotate.d/emqx
添加以下内容

/apps/emqx/log/emqx.log {weeklyrotate 2compressmissingoknotifemptycreate 0644 root root
}/apps/emqx/log/erlang.log {weeklyrotate 2compressmissingoknotifemptycreate 0644 root root
}/apps/emqx/log/run_erl.log {weeklyrotate 2compressmissingoknotifemptycreate 0644 root root
}
配置解释如下:
weekly:表示每周进行日志轮转。
rotate 2:表示保留2周的日志文件。
compress:轮转后的日志文件将被压缩。
missingok:如果日志文件缺失,logrotate不会报错。
notifempty:如果日志文件为空,则不进行轮转。
create 0644 root root:创建新的日志文件,并设置权限为0644,所有者为root,组为root。

4、保存并退出编辑器

5、测试logrotate配置

为了确保配置文件没有错误,手动运行logrotate并测试配置:
命令:sudo logrotate -d /etc/logrotate.d/emqx
注释:-d参数会打印出将要执行的操作,而不会实际执行它们。

6. 验证logrotate能否正常运行:

命令:journalctl -xe | grep logrotate
(无法截图,复制的输出信息)

[root@ap02_mp logrotate.d]# journalctl -xe | grep logrotate
Sep 13 11:37:23 ap02_mp sudo[30010]:     root : TTY=pts/3 ; PWD=/etc/logrotate.d ; USER=root ; COMMAND=/sbin/logrotate -d /etc/logrotate.d/emqx

三、redis日志切割配置

1、服务实际情况

redis日志路径为:/apps/redis/log/redis.log
日志文件的权限、用户、用户组、为:-rw-r--r--. 1 redis redis

2、需求:日志保留最近2周

3、详细操作步骤

编辑配置文件
命令:vim /etc/logrotate.d/redis
添加以下内容

/apps/redis/log/redis.log {weeklyrotate 2compressmissingoknotifemptycreate 0640 redis redis
}
配置解释如下:
weekly:指定 logrotate 每周执行一次日志轮转。
rotate 2:指定保留最近两周的日志文件。这意味着 logrotate 会保留两个轮转周期的日志,超过这个时间范围的旧日志文件将被删除。
compress:指定在轮转时压缩旧的日志文件。这通常会使用 gzip 来压缩日志,以节省磁盘空间。
missingok:如果日志文件丢失或不存在,logrotate 不会报错,而是继续执行其他任务。
notifempty:如果日志文件为空,则不进行轮转。这可以防止创建不必要的压缩日志文件。
create 0640 redis redis:指定在轮转时创建新的日志文件,并设置其权限为 0640,所有者为 redis 用户,组为 redis 组。这意味着新日志文件将允许所有者读写,而组用户和其他用户只能读取。

4、保存并退出编辑器

5、测试logrotate配置

命令:logrotate -d /etc/logrotate.d/redis

6. 验证logrotate能否正常运行

命令:journalctl -xe | grep logrotate
(无法截图,复制的输出信息)

[root@ap02_mp log]# journalctl -xe | grep logrotate
Sep 13 13:56:33 ap02_mp sudo[5259]:     root : TTY=pts/3 ; PWD=/apps/redis/log ; USER=root ; COMMAND=/usr/sbin/logrotate -v /etc/logrotate.d/redis

四、nginx日志切割配置

1、服务实际情况

(无法截图,复制的输出信息)

[root@ap02_mp nginx]# ll -sh
total 136K
128K -rw-r--r--. 1 root root 115K Sep 13 14:05 access.log
8.0K -rw-r--r--. 1 root root 6.2K Sep 13 13:54 error.log
[root@ap02_mp nginx]# pwd
/apps/log/nginx

nginx日志路径为:/apps/log/nginx/access.log ; /apps/log/nginx/error.log
日志文件的权限、用户、用户组都为:-rw-r--r--. 1 root root
nginx.pid路径为:/var/run/nginx.pid

2、需求:日志保留最近2周

3、详细步骤操作

编辑配置文件
命令:vim /etc/logrotate.d/nginx
添加以下内容

/apps/log/nginx/*.log {weeklyrotate 2compressmissingoknotifemptycreate 0640 root rootpostrotateif [ -f /var/run/nginx.pid ]; thenkill -USR1 `cat /var/run/nginx.pid`fiendscript
}
配置解释如下:
weekly:表示每周进行日志轮转。
rotate 2:表示保留2周的日志文件。
compress:轮转后的日志文件将被压缩。
missingok:如果日志文件缺失,logrotate 不会报错。
notifempty:如果日志文件为空,则不进行轮转。
create 0640 root root:创建新的日志文件,并设置权限为 0640,所有者为 root,组为 root。
postrotate:在日志轮转之后执行的命令,这里发送 USR1 信号给 Nginx,使其重新打开日志文件。

4、保存并退出编辑器

5、使用-d选项进行测试

命令:sudo logrotate -d /etc/logrotate.d/nginx
(无法截图,复制的输出信息)

[root@ap02_mp ~]# sudo logrotate -d /etc/logrotate.d/nginx
reading config file /etc/logrotate.d/nginx
Allocating hash table for state file, size 15360 BHandling 1 logsrotating pattern: /apps/log/nginx/*.log  weekly (2 rotations)
empty log files are not rotated, old logs are removed
considering log /apps/log/nginx/access.loglog does not need rotating (log has been already rotated)considering log /apps/log/nginx/error.loglog does not need rotating (log has been already rotated)[root@ap02_mp ~]#

执行结果解释:

①reading config file /etc/logrotate.d/nginx:logrotate 正在读取 /etc/logrotate.d/nginx 配置文件。
②Allocating hash table for state file, size 15360 B:logrotate 正在为状态文件分配哈希表,这是用于跟踪日志轮转状态的内部数据结构。
③Handling 1 logs:表示配置文件中定义了一组日志需要处理。
④rotating pattern: /apps/log/nginx/*.log weekly (2 rotations):表示配置文件中定义了每周轮转一次 /apps/log/nginx/*.log 日志文件,并且保留2周的日志。
⑤empty log files are not rotated, old logs are removed:表示空的日志文件不会被轮转,旧的日志文件会被删除。
⑥considering log /apps/log/nginx/access.log 和 considering log /apps/log/nginx/error.log:logrotate 正在考虑是否需要轮转 access.log 和 error.log 文件。
⑦log does not need rotating (log has been already rotated):表示 access.log 和 error.log 文件不需要轮转,因为它们已经被轮转过了。

结论:这个输出表明 logrotate 配置文件是正确的,但是 access.log 和 error.log 文件已经被轮转过了,所以没有执行新的轮转操作

6. 验证logrotate能否正常运行

命令:journalctl -xe | grep logrotate
(无法截图,复制的输出信息)

[root@ap02_mp ~]# journalctl -xe | grep logrotate
Sep 13 15:58:00 ap02_mp sudo[5669]:     root : TTY=pts/3 ; PWD=/root ; USER=root ; COMMAND=/sbin/logrotate -d /etc/logrotate.d/nginx

温馨提示:
记录当前配置时间,以上所有服务的日志切割日志logrotate任务是否按照计划预期执行,怠执行日期到后 需检查日志文件本身是否已经被轮转和压缩,以及是否创建了新的日志文件。

相关文章:

自动化运维-配置Mysql、emqx、redis、nginx等通用性Linux日志分割工具 - logrotate

前言:logrotate 是一个在 Linux 系统中用于管理和轮转日志文件的工具。它的主要目的是帮助系统管理员自动执行日志文件的轮转、压缩、删除和邮件通知等任务,以防止日志文件占用过多的磁盘空间,同时保持日志文件的可管理性。 参考命令&#x…...

71、docker镜像制作上传/下载到阿里云

基本思想:简单学习一下如何制作镜像和上传下载到私有阿里云,然后构建一个gpu的训练/推理环境,以备后续使用 一、配置环境 ubuntu@ubuntu:~$ sudo apt-get install docker.ioubuntu@ubuntu:~$ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS P…...

力扣--LCR 178.训练计划VI

题目 教学过程中,教练示范一次,学员跟做三次。该过程被混乱剪辑后,记录于数组 actions,其中 actions[i] 表示做出该动作的人员编号。请返回教练的编号。 示例 1: 输入:actions [5, 7, 5, 5] 输出&#…...

独孤思维:又有一个副业项目降价了

不要过早量出底牌,不然会变得低贱且廉价。 昨天在一个群里,看到有个博主,没有成交订单。 她把和用户的聊天对话发出来,我们大致看了下。 发现人家是有意向付费的。 但是这个博主过于心急,说今天加入可以优惠&#…...

【笔记】分布式任务调度平台XXL-JOB

这篇笔记主要记录以下内容: (1)第一次启动xxl-job的过程 (2)模块、文件、数据库(表和字段)的作用 (3)极少的源码解读(XxlJobConfig) 有点像实…...

Java基础总结上(Ref:JavaGuide)

基础概念与常识 Java语言有哪些特点,优点? 简单易学,是一门面向对象的语言,有封装继承多态三大特性,而且有多重防护机制保证安全性,例如权限修饰符,限制程序直接访问操作系统资源。通过JIT编译…...

嘉誉府5区共有产权看房记

特地工作日来看下嘉誉府5区的网红共有产权的房子,主要是冲着均价2.1万/平才来看。说实话从塘尾地铁步行到嘉誉府5区还挺需要时间的哈。可能以后需要电驴代步到地铁?确实楼盘现在是现楼,今年买明年住。鸿荣源确实很666哈。 今天来不需要排队&a…...

PostgreSQL函数中使用now()或current_timestamp的异同

在PostgreSQL函数中使用now()或current_timestamp可以获取当前的日期和时间。 now()函数返回当前的日期和时间,包括时区信息。它可以用于记录操作的时间戳或在查询中进行时间比较。 current_timestamp函数也返回当前的日期和时间,但不包括时区信息。它…...

跟李笑来学美式俚语(Most Common American Idioms): Part 56

Most Common American Idioms: Part 56 前言 本文是学习李笑来的Most Common American Idioms这本书的学习笔记,自用。 Github仓库链接:https://github.com/xiaolai/most-common-american-idioms 使用方法: 直接下载下来(或者clone到本地…...

类和对象一

目录 1.类的引入 2.类的定义 3.访问限定符 4.类的作用域 5.类对象模型 6.类的大小 1.类的引入 C语言结构体中只能定义变量,在C中,结构体不仅可以定义变量,也可以定义函数。 C兼容C语言,结构用法可以继续使用 同时sruct也升…...

两个数的和最小

两个数的和最小 C 代码C 代码Java 代码Python 代码 💐The Begin💐点点关注,收藏不迷路💐 给你n个整数,你可以从中任意取两个数a和b,问a加上b的和的绝对值最小可能是多少? 输入 有多组测试数据…...

Mac mini m4本地跑大模型(ollama + llama + ComfyUI + Stable Diffusion | flux)

安装chat大模型(不推荐,本地运行的大模型只能聊废话,不如网页版使用openAI等高效) 首先下载ollama的安装包 https://ollama.com/ 点击启动访问:http://localhost:11434 Ollama is running 代表已经运行起来了&#x…...

IoTDB AINode 报错,call inference 301: Error ocurred while executing inference

问题及现象 使用时序数据库 IoTDB 的 AINode 的 call inference 语句后报错: Msg: org.apache.iotdb.jdbc.IoTDBSOLException:301: Error ocurred while executing inference:[tuple object has no attribute inference]解决方法 可以替换 venv 里面的…...

Linux网络 UDP socket

背景知识 我们知道, IP 地址用来标识互联网中唯一的一台主机, port 用来标识该主机上唯一的一个网络进程,IPPort 就能表示互联网中唯一的一个进程。所以通信的时候,本质是两个互联网进程代表人来进行通信,{srcIp&…...

Day2——需求分析与设计

教师端签到应用软件的需求分析; 产品经理如何写好产品需求文档(附模板) 需求分析是软件开发过程中的关键步骤,它确保了开发的软件能够满足用户的需求。以下是进行需求分析的具体步骤: 1. 确定分析目标 明确教师端签到…...

aosp15上winscope离线html如何使用?

背景: aosp15上的如何使用Winscope前面已经有分享过相关的blog,这块其实和aosp14没啥大的差别,具体可以看如下2个文章: 手把手教你aosp14编译Winscope 安卓aosp15手机上如何离线获取winscope文件 文章中也说明在aosp15如果直接使…...

AttributeError: module numpy has no attribute int .报错解决

AttributeError: module numpy has no attribute int .报错解决方案_attributeerror: module numpy has no attribute i-CSDN博客 以上为参考教程,试了卸载再安装,不行,报错: Found existing installation: numpy 1.24.3 error: …...

python爬虫常用数据保存模板(Excel、CSV、mysql)——scrapy中常用数据提取方法(CSS、XPATH、正则)(23)

文章目录 1、常用数据保存模板2.1 保存为Excel格式2.2 保存为CSV格式2.3 保存至mysql数据库2、scrapy中常用数据提取方法2.1 XPath选择器2.2 CSS选择器2.3 正则表达式1、常用数据保存模板 2.1 保存为Excel格式 # 1、导入模块 from openpyxl import workbook# 2、创建一个exce…...

【面试题】简述rabbitmq的组织架构

[面试题]简述rabbitmq的组织架构 RabbitMQ 是一种流行的消息中间件,其架构设计围绕消息生产者, 消息消费者和消息中转(Broker)展开。以下是 RabbitMQ 的主要组织架构组件和它们之间的关系: 1. 核心组件 1.1 Producer&#xff0…...

C#-WPF 常见类型转换方法(持续更新)

目录 一、普通类型转换 1、Convert类 2、Parse(转String) 3、TryParse(转String) 4、ToString(转String) 5、int转double 6、String转DateTime 7、自定义类型的显示/隐式转换 二、byte[]转ImageSource 方法一 方法二 一、普通类型转换 1、Convert类 提供了一种安全…...

c基础加堆练习题

1】思维导图: 2】在堆区空间连续申请5个int类型大小空间,用来存放从终端输入的5个学生成绩,然后显示5个学生成绩,再将学生成绩升序排序,排序后,再次显示学生成绩。显示和排序分别用函数完成 要求&#xff…...

做了一份前端面试复习计划,保熟~

前言 以前我看到面试贴就直接刷掉的,从不会多看一眼,直到去年 9 月份我开始准备面试时,才发现很多面试经验贴特别有用,看这些帖子(我不敢称之为文章,怕被杠)的过程中对我的复习思维形成影响很大…...

虚幻引擎开发命名规则

UE的命名规则如下: 模版类以T作为前缀,例如TArray, TMap, TSet。UObject派生类都以U前缀。AActor派生类都以A前缀。SWidget派生类都以S前缀。全局对象使用G开头,如GEngine。抽象接口以I前缀。枚举以E开头。bool变量以b前缀,如bPe…...

【蓝桥杯每日一题】砍竹子

砍竹子 2024-12-7 蓝桥杯每日一题 砍竹子 STL 贪心 题目大意 这天, 小明在砍竹子, 他面前有 nn 棵竹子排成一排, 一开始第 ii 棵竹子的 高度为 h i h_i hi​. 他觉得一棵一棵砍太慢了, 决定使用魔法来砍竹子。魔法可以对连续的一 段相同高度的竹子使用, 假设这一段竹子的高度为…...

Lambda表达式随记

学习链接 目录 作用定义[capture list] 捕获列表(paramter) 参数列表mutable 可变规格throw() 异常说明-> return-type 返回类型{function statement} lambda函数体 Lambda表达式的优缺点Lambda表达式工作原理适用场景STL算法库短小不需要复用函数场景 作用 Lambda表达式&…...

Vulhub:Log4j[漏洞复现]

CVE-2017-5645(Log4j反序列化) 启动靶场环境 docker-compose up -d 靶机IPV4地址 ifconfig | grep eth0 -A 5 ┌──(root㉿kali)-[/home/kali/Desktop/temp] └─# ifconfig | grep eth0 -A 5 eth0: flags4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 in…...

ubuntu系统生成SSL证书配置https

自签名【Lets Encrypt】的测试证书&#xff0c;有效期三个月。 第一步&#xff1a;安装acme&#xff0c;如果没有安装git&#xff0c;需要提前安装 下载came资源 git clone https://github.com/Neilpang/acme.sh.git 无法访问&#xff0c;可以试用gitee的资源&#xff0c;安…...

记录 idea 启动 tomcat 控制台输出乱码问题解决

文章目录 问题现象解决排查过程1. **检查 idea 编码设置**2. **检查 tomcat 配置**3.检查 idea 配置文件4.在 Help 菜单栏中&#xff0c;修改Custom VM Options完成后保存&#xff0c;并重启 idea 问题现象 运行 tomcat 后&#xff0c;控制台输出乱码 解决排查过程 1. 检查 id…...

C++ unordered_map和unordered_set的使用

1.unordered_set系列的使用 1.1unordered_set和unordered_multiset参考文档 unordered_set和unordered_multiset参考文档 1.2unordered_set类的介绍 • unordered_set的声明如下&#xff0c;Key就是unordered_set底层关键字的类型 • unordered_set默认要求Key⽀持转换为整…...

【探商宝】OpenAI 发布 Sora:视频生成领域的重大突破

2024 年 12 月 10 日&#xff0c;OpenAI 正式推出了备受瞩目的人工智能视频生成模型 Sora&#xff0c;这一举措在科技界引起了轩然大波&#xff0c;为视频创作领域带来了全新的可能性和变革. 一、Sora 的功能与特性 1. 强大的视频生成能力 Sora 能够根据用户输入的文本描述生…...

[代码随想录Day32打卡] 理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

理论基础 题型 动归基础&#xff08;这一节就是基础题&#xff09;背包问题打家劫舍股票问题子序列问题 动态规划五部曲 确定dp数组及其下标的含义确定递推公式dp数组如何初始化遍历顺序打印dp数组 509. 斐波那契数 简单~ dp数组及下标含义&#xff1a; dp[i]表示第i各斐…...

【实操GPT-SoVits】声音克隆模型图文版教程

项目github地址&#xff1a;https://github.com/RVC-Boss/GPT-SoVITS.git官方教程&#xff1a;https://www.yuque.com/baicaigongchang1145haoyuangong/ib3g1e/tkemqe8vzhadfpeu本文旨在迅速实操GPT-SoVits项目&#xff0c;不阐述技术原理&#xff08;后期如果有时间研究&#…...

开发一套SDK 第一弹

自动安装依赖包 添加条件使能 #ex: filetypesh bash_ls 识别 达到预期,多个硬件环境 等待文件文件系统挂在完成 或者创建 /sys/class/ 属性文件灌入配置操作 AI 提供的 netlink 调试方法,也是目前主流调用方法,socket yyds #include <linux/module.h> #include <linux…...

2024149读书笔记|Hans的阿狸五部曲——成长的路上分离在所难免

2024149读书笔记|Hans的阿狸五部曲——成长的路上分离在所难免 1. 《阿狸和小小云》2. 《阿狸和小玉》3. 《阿狸呓语》4. [202480读书笔记|《阿狸和弯月亮》——生的再普通&#xff0c;也是限量版](https://blog.csdn.net/qq_40985985/article/details/139731131)5. 《阿狸永远…...

外包干了5天,技术明显退步。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入南京某软件公司&#xff0c;干了接近3年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的功能测试&…...

Ubuntu22.04 安装Isaac Lab

目录 1.1 安装IsaacLab 1.1.1 下载文件 1.1.2 创建Isaac Sim符号链接 1.1.3 创建并激活conda环境 1.1.4 安装依赖 1.1.5 安装IsaacLab扩展 1.1.6 安装完成&#xff0c;要source一下 1.2 验证IsaacLab安装 1.1 安装IsaacLab 1.1.1 下载文件 将 Isaac Lab 仓库克隆到您的…...

unity 2D像素种田游戏学习记录(自用)

一、透明度排序轴 改变sprite的排序方式&#xff0c;默认按照z轴进行排序&#xff08;离摄像机的远近&#xff09;。可以将其改变成y轴的排序方式&#xff0c;这样可以使2D人物走在草丛的下方就不被遮挡&#xff0c;走在草丛上方就被遮挡&#xff0c;如下图。 在项目设置-图形…...

NIFI使用

1 从Kafka接收消息&#xff0c;存储到数据库中。 &#xff08;1&#xff09; ConsumerKafka processor &#xff08;2&#xff09;Execute Scripts Processor 我这里是使用JS脚本进行处理。 还有很多其他语言的脚本。 var flowFile session.get(); if (flowFile ! null) {v…...

vue3+vite+ts 使用webrtc-streamer播放海康rtsp监控视频

了解webrtc-streamer webrtc-streamer 是一个使用简单机制通过 WebRTC 流式传输视频捕获设备和 RTSP 源的项目&#xff0c;它内置了一个小型的 HTTP server 来对 WebRTC需要的相关接口提供支持。相对于ffmpegflv.js的方案&#xff0c;延迟降低到了0.4秒左右&#xff0c;画面的…...

Nanolog起步笔记-9-log解压过程(3)寻找meta续

Nanolog起步笔记-9-log解压过程-3-寻找meta续 当前的目标新的改变decompressNextLogStatementmetadata查看业务面的log语句注释掉 runBenchmark();改过之后&#xff0c;2条记录之后&#xff0c;这里就直接返回了 小结 当前的目标 没有办法&#xff0c;还要继续。 当前的目标&a…...

未来网络技术的新征程:5G、物联网与边缘计算(10/10)

一、5G 网络&#xff1a;引领未来通信新潮流 &#xff08;一&#xff09;5G 网络的特点 高速率&#xff1a;5G 依托良好技术架构&#xff0c;提供更高的网络速度&#xff0c;峰值要求不低于 20Gb/s&#xff0c;下载速度最高达 10Gbps。相比 4G 网络&#xff0c;5G 的基站速度…...

【北京迅为】iTOP-4412全能版使用手册-第六十八章 U-boot基础知识

iTOP-4412全能版采用四核Cortex-A9&#xff0c;主频为1.4GHz-1.6GHz&#xff0c;配备S5M8767 电源管理&#xff0c;集成USB HUB,选用高品质板对板连接器稳定可靠&#xff0c;大厂生产&#xff0c;做工精良。接口一应俱全&#xff0c;开发更简单,搭载全网通4G、支持WIFI、蓝牙、…...

go 中线程安全map

在 Go 语言中&#xff0c;官方包 sync.Map 确实提供了线程安全的映射数据结构。然而&#xff0c;正如你所提到的&#xff0c;使用 sync.Map 时&#xff0c;有时需要进行类型断言&#xff0c;这可能会让代码显得冗长或不直观。 如果你希望使用一个更加易用的线程安全映射&#…...

封装类与普通类的区别

1 封装类的好处 数据隐藏&#xff1a;通过封装&#xff0c;我们可以将类的内部实现细节隐藏起来&#xff0c;只暴露有限的接口。这样&#xff0c;外部代码就不能直接访问或修改类的内部状态&#xff0c;从而保证了数据的安全性和完整性。 数据保护&#xff1a;封装可以…...

StarRocks-hive数据类型导致的分区问题

背景&#xff1a; 有个hive的表&#xff0c;是月分区的&#xff08;month_id&#xff09;&#xff0c;分区字段用的是string类型。数据量比较大&#xff0c;为了保证计算性能&#xff0c;所以把数据导入到SR里&#xff0c;构建一个内部表。但是在建表的时候想使用月分区使用pa…...

Java面试题精选:设计模式(二)

1、装饰器模式与代理模式的区别 1&#xff09;代理模式(Proxy Design Pattern ) 原始定义是&#xff1a;让你能够提供对象的替代品或其占位符。代理控制着对于原对象的访问&#xff0c;并允许将请求提交给对象前后进行一些处理。 代理模式的适用场景 功能增强 当需要对一个对…...

【JavaEE】多线程(7)

一、JUC的常见类 JUC→java.util.concurrent&#xff0c;放了和多线程相关的组件 1.1 Callable 接口 看以下从计算从1加到1000的代码&#xff1a; public class Demo {public static int sum;public static void main(String[] args) throws InterruptedException {Thread …...

技术型企业如何高效搭建企业博客以增强品牌影响力和市场竞争力

在数字化时代&#xff0c;技术型企业面临着激烈的市场竞争和快速变化的行业环境。为了在这场竞争中脱颖而出&#xff0c;企业需要寻找新的营销渠道和品牌建设工具。企业博客作为一种低成本、高效率的在线内容平台&#xff0c;已经成为技术型企业增强品牌影响力和市场竞争力的重…...

【qt环境配置】windows下的qt与vs工具集安装\版本对应关系

vs工具集安装通过vs的在线安装器勾选工具集即可 工具包下载路径&#xff1a;https://www.microsoft.com/zh-cn/download/details.aspx?id40784 配置工具集在qt中可以自动扫描到 《正确在 Windows 上配置 MSVC(2019) 作为 Qt 编译器》https://b3logfile.com/pdf/article/15922…...

XTuner 微调实践微调

步骤 0. 使用 conda 先构建一个 Python-3.10 的虚拟环境 cd ~ #git clone 本repo git clone https://github.com/InternLM/Tutorial.git -b camp4 mkdir -p /root/finetune && cd /root/finetune conda create -n xtuner-env python3.10 -y conda activate xtuner-env…...