统信UOS_麒麟KYLINOS配置日志轮转

原文链接:统信UOS/麒麟KYLINOS配置日志轮转
hello,大家好啊,今天给大家带来一篇在统信UOS/麒麟KYLINOS上配置日志轮转的文章。本文举例的内容如下:首先我们创建一个定时任务,在每天00:00给/var/log/hello路径下的hello.txt文件中添加hello pdsyw,然后配置一个/etc/logrotate.d/hello文件,每天对hello.txt文件进行压缩,这是一个简单的示例,大家可以根据需要进行配置。关注我吧!
1、查看系统信息

pdsyw@pdsyw-PC:~/Desktop$ cat /etc/os-version 
[Version] 
SystemName=UOS Desktop
SystemName[zh_CN]=统信桌面操作系统
ProductType=Desktop
ProductType[zh_CN]=桌面
EditionName=Professional
EditionName[zh_CN]=专业版
MajorVersion=20
MinorVersion=1060
OsBuild=11014.100.100
pdsyw@pdsyw-PC:~/Desktop$ 
pdsyw@pdsyw-PC:~/Desktop$ uname -a
Linux pdsyw-PC 4.19.0-arm64-desktop #6030 SMP Tue Jun 27 15:28:10 CST 2023 aarch64 GNU/Linux
pdsyw@pdsyw-PC:~/Desktop$ 

image.png

2、创建/var/log/hello并编写crontab

pdsyw@pdsyw-PC:~/Desktop$ sudo -i
请输入密码:
验证成功
root@pdsyw-PC:~# mkdir /var/log/hello
root@pdsyw-PC:~# 
root@pdsyw-PC:~# crontab -e
no crontab for root - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny

Choose 1-3 [1]: 2
crontab: installing new crontab
root@pdsyw-PC:~# crontab -l
# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# 
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
# 
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# 
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# 
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# 
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command
0 0 * * * echo "hello pdsyw" >> /var/log/hello/hello.txt
root@pdsyw-PC:~# 

image.png

3、crontab内容
image.png

4、修改日期,查看hello.txt是否生成

root@pdsyw-PC:~# date -s 2023-11-26
2023年 11月 26日 星期日 00:00:00 CST
root@pdsyw-PC:~# 
root@pdsyw-PC:~# cd /var/log/hello/
root@pdsyw-PC:/var/log/hello# 
root@pdsyw-PC:/var/log/hello# ls -ltr
总用量 4
-rw-r--r-- 1 root root 12 11月 24 00:00 hello.txt
root@pdsyw-PC:/var/log/hello# cat hello.txt 
hello pdsyw
hello pdsyw
root@pdsyw-PC:/var/log/hello# 

image.png

5、编写 /etc/logrotate.d/hello文件

root@pdsyw-PC:~# cd /etc/logrotate.d/
root@pdsyw-PC:/etc/logrotate.d# 
root@pdsyw-PC:/etc/logrotate.d# vi hello
root@pdsyw-PC:/etc/logrotate.d# cat hello 
/var/log/hello/hello.txt {
    #指定 logrotate 以 root 用户和 root 组的身份执行日志文件的轮转
    su root root
    #保留最近7个轮转周期的日志文件副本
    rotate 7
    #每天轮转一次日志文件
    daily
    #压缩轮转后的旧日志文件,通常是使用gzip压缩
    compress
    #压缩轮转后的旧日志文件,通常是使用gzip压缩
    missingok
    #只有当日志文件非空时才进行轮转
    notifempty
    #创建新的日志文件,设置权限为 640,所有者为 root,组为 adm。
    create 640 root adm
    #在轮转的日志文件名后添加日期作为扩展名
    dateext
    #定义添加到轮转日志文件名中的日期格式。这里的格式是 年月日(如 20231128)
    dateformat -%Y%m%d

    # 在所有日志轮转之前执行
    firstaction
        echo "Starting log rotation for /var/log/hello"
    endscript

    # 在轮转每个日志文件之前执行
    prerotate
        echo "Preparing to rotate /var/log/hello log files"
    endscript

    # 在轮转每个日志文件之后执行
    postrotate
        echo "Finished rotating /var/log/hello log files"
    endscript

    # 在所有日志轮转之后执行
    lastaction
        echo "Log rotation for /var/log/hello completed"
    endscript

    # 当日志文件超过指定大小时进行轮转
    maxsize 1M

    # 如果设置了此选项,则在处理所有匹配的日志文件之后只运行一次 postrotate 脚本
    sharedscripts

    # 复制原始日志文件并将其截断,适用于无法轻易重启的服务
    copytruncate
}

root@pdsyw-PC:/etc/logrotate.d# 

image.png

6、修改时间查看/etc/logrotate.d/hello是否生效

root@pdsyw-PC:/etc/logrotate.d# logrotate /etc/logrotate.d/hello 
root@pdsyw-PC:/etc/logrotate.d# cd /var/log/hello/
root@pdsyw-PC:/var/log/hello# ls -ltr
总用量 4
-rw-r--r-- 1 root root 24 11月 26  2023 hello.txt
root@pdsyw-PC:/var/log/hello# date -s 2023-11-27
2023年 11月 27日 星期一 00:00:00 CST
root@pdsyw-PC:/var/log/hello# 
root@pdsyw-PC:/var/log/hello# ls -ltr
总用量 4
-rw-r--r-- 1 root root 35 11月 26 00:00 hello.txt-20231127.gz
-rw-r--r-- 1 root root  0 11月 27 00:00 hello.txt
root@pdsyw-PC:/var/log/hello# 

image.png

7、生成7个压缩文件

root@pdsyw-PC:/var/log/hello# ls -ltr
总用量 28
-rw-r--r-- 1 root root 25 11月 22 15:19 hello.txt-20231127.gz
-rw-r--r-- 1 root root 23 11月 22 15:20 hello.txt-20231201.gz
-rw-r--r-- 1 root root 23 11月 27 00:00 hello.txt-20231128.gz
-rw-r--r-- 1 root root 23 11月 28 00:00 hello.txt-20231129.gz
-rw-r--r-- 1 root root 23 11月 29 00:00 hello.txt-20231130.gz
-rw-r--r-- 1 root root 23 12月  1 00:00 hello.txt-20231202.gz
-rw-r--r-- 1 root root 23 12月  2 00:00 hello.txt-20231203.gz
-rw-r--r-- 1 root root  0 12月  3 00:00 hello.txt
root@pdsyw-PC:/var/log/hello# 

image.png

8、生成第8个压缩文件,查看第一个是否被删除

root@pdsyw-PC:/var/log/hello# date -s 2023-12-4
2023年 12月 04日 星期一 00:00:00 CST
root@pdsyw-PC:/var/log/hello# ls -tlr
总用量 28
-rw-r--r-- 1 root root 23 11月 22 15:20 hello.txt-20231201.gz
-rw-r--r-- 1 root root 23 11月 27 00:00 hello.txt-20231128.gz
-rw-r--r-- 1 root root 23 11月 28 00:00 hello.txt-20231129.gz
-rw-r--r-- 1 root root 23 11月 29 00:00 hello.txt-20231130.gz
-rw-r--r-- 1 root root 23 12月  1 00:00 hello.txt-20231202.gz
-rw-r--r-- 1 root root 23 12月  2 00:00 hello.txt-20231203.gz
-rw-r--r-- 1 root root 23 12月  3 00:00 hello.txt-20231204.gz
-rw-r--r-- 1 root root  0 12月  4 00:00 hello.txt
root@pdsyw-PC:/var/log/hello# 

image.png

9、/etc/logrotate.d/hello文件选项详解
9.1、su root root选项

su [user] [group]
[user] 是执行日志轮转操作的用户。
[group] 是执行日志轮转操作的用户组。
su 指令的选项只有两个:用户和用户组。你可以根据需要将其设置为任何有效的系统用户和用户组。例如:
su syslog adm:指示 logrotate 使用 syslog 用户和 adm 组来处理日志文件。
su apache www-data:对于 Apache 日志文件,你可能会使用 apache 或 www-data 用户和用户组。

9.2、rotate 7选项

rotate [number]
[number] 是要保留的日志文件副本数量。
可以将 [number] 设置为任何合理的整数值,这取决于你需要保留日志文件的时间长度和可用的磁盘空间。
设置为 0 时,不会保留旧的日志文件副本,每次轮转都会删除旧文件。
设置为一个较大的数字时,可以长期保留日志文件。

9.3、daily选项

daily: 这是一个无参数指令,仅通过包含它来设置每天的轮转频率。
除了 daily,logrotate 还提供了其他几种基于时间的轮转频率选项:
hourly: 每小时轮转一次日志文件。这适用于那些生成大量日志的场景。
weekly: 每周轮转一次日志文件。这是比较常见的设置,适用于一般的日志轮转需求。
monthly: 每月轮转一次日志文件。这适用于日志产生较少或者可以保留较长时间的场景。

9.4、compress选项

1)compress:
这个无参数指令启用压缩功能,使得 logrotate 在轮转日志文件后自动压缩它们。默认是 gzip,但你可以指定其他如 bzip2 的命令:
compresscmd /usr/bin/bzip2
2)nocompress:
如果你不想压缩轮转的日志文件,可以使用 nocompress。这可以在某些情况下节省处理时间,尤其是当磁盘空间不是问题时。默认是 gzip,但你可以指定其他如 bzip2 的命令:
uncompresscmd /usr/bin/bunzip2
3)compressext:
指定压缩文件的扩展名。默认情况下,使用 gzip 时扩展名是 .gz。
compressext .bz2
4)compressoptions:
提供给压缩命令的额外选项。例如,调整压缩级别。
compressoptions -9
5)delaycompress:
与 compress 一起使用时,延迟压缩一个轮转周期。这对于仍在写入的日志文件很有用。
delaycompress

9.5、missingok选项

missingok:
如果设置了 missingok,当 logrotate 无法找到指定的日志文件时,它不会报错。这个指令在日志文件可能不会每天都生成或者在某些情况下可能被删除的场景中特别有用。
nomissingok:
这是 missingok 的默认行为(尽管通常不需要明确指定 nomissingok)。如果没有设置 missingok,并且 logrotate 找不到指定的日志文件,它会报错。这可以确保你知道某个重要的日志文件没有按预期生成。

9.6、notifempty选项

notifempty:
当设置了 notifempty,logrotate 将不会轮转那些空的日志文件。也就是说,如果一个日志文件没有内容(大小为零),logrotate 将忽略它并不进行轮转。这对于避免生成大量空的日志文件很有用。
empty (通常不需要明确指定):
这是 notifempty 的反操作,意味着即使日志文件是空的,logrotate 也会对其进行轮转。在默认情况下,logrotate 会轮转所有匹配的日志文件,包括空文件,所以通常不需要特别指定这个行为。

9.7、create 640 root adm选项

create [mode] [owner] [group]
[mode]: 设置新创建的日志文件的权限。通常以八进制数字表示(如 0640)。
[owner]: 设置新日志文件的所有者。这通常是一个有效的用户名。
[group]: 设置新日志文件的所属用户组。通常是一个有效的组名。
文件权限:
设置任何有效的 UNIX 文件权限。例如,create 600 root root 会创建一个只有 root 用户可读写的文件。
所有者:
可以是系统中任何有效的用户名。例如,create 640 www-data www-data 适用于网站日志文件。
用户组:
可以是系统中任何有效的用户组名。确保指定的用户是该组的成员。

9.8、dateext选项

dateext:
启用日期扩展名。启用后,轮转的日志文件名将包括一个基于当前日期的扩展名。
dateext:
启用日期扩展名。启用后,轮转的日志文件名将包括一个基于当前日期的扩展名。

9.9、dateformat -%Y%m%d选项

dateformat:
当使用 dateext 时,dateformat 指令用于自定义日期扩展名的格式。默认情况下,日期格式是 -YYYYMMDD(例如,-20210901),但你可以使用 dateformat 来更改它。
dateformat 指令仅在启用了 dateext 时有效,因为它是用于修改 dateext 生成的日期后缀的格式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/204724.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Yolov8实现瓶盖正反面检测

一、模型介绍 模型基于 yolov8n数据集采用SKU-110k&#xff0c;这数据集太大了十几个 G&#xff0c;所以只训练了 10 轮左右就拿来微调了 基于原木数据微调&#xff1a;训练 200 轮的效果 10 轮SKU-110k 20 轮原木 200 轮瓶盖正反面 微调模型下载地址https://wwxd.lanzouu.co…

新建的springboot项目中application.xml没有绿色小叶子(不可用)

经常有朋友会遇到新建了一个springboot项目&#xff0c;发现为啥我创建的application.xml配置文件不是绿色的&#xff1f;&#xff1f;&#xff1f; 下面教大家如何解决&#xff0c;这也是博主在做测试的时候遇到的&#xff1a; 将当前位置application.xml删掉&#xff0c;重新…

销售客户分配管理细则

随着市场竞争的不断加剧&#xff0c;销售团队的有效管理变得愈发重要。其中&#xff0c;客户分配是销售团队成功的关键之一。一个科学合理的销售客户分配管理细则不仅可以提高销售团队的整体工作效率&#xff0c;还能够优化客户体验&#xff0c;促使销售业绩持续增长。下面是一…

排序分析(Ordination analysis)及R实现

在生态学、统计学和生物学等领域&#xff0c;排序分析是一种用于探索和展示数据结构的多元统计技术。这种分析方法通过将多维数据集中的样本或变量映射到低维空间&#xff0c;以便更容易理解和可视化数据之间的关系。排序分析常用于研究物种组成、生态系统结构等生态学和生物学…

将360调配成绿色无弹窗软件

相信很多小伙伴都跟我一样喜欢杀毒软件的功能。而小编认为最好用的杀毒软件就是360了。360功能齐全&#xff0c;界面美观&#xff0c;但总是有很多弹窗小广告&#xff0c;怎么办呢&#xff1f; 今天就来就来教大家如何将360设置为绿色无弹窗软件 将360调配成绿色无弹窗软件 一…

9款高效绘图神器,提升你的工作效率

在日常工作或生活中&#xff0c;我们必须绘制各种图表、流程图、思维导图等图形&#xff0c;或者想用画笔描述自己的想法。然而&#xff0c;我们在许多绘图软件面前感到困惑。我们不知道哪个绘图软件好&#xff0c;也没有足够的时间一一尝试 在接下来的空间里&#xff0c;我们…

python之pyqt专栏9-鼠标事件

目录 需求 UI界面 代码实现 代码解析&#xff1a; Label初始化设置 重写鼠标按下事件 重写鼠标释放事件 重写鼠标移动事件 运行结果 需求 当鼠标进入窗口时&#xff0c;点击鼠标左键&#xff0c;出现一个label并在显示光标在窗口的坐标&#xff1b;按住左键不释放拖动…

Java学习day15:Object类、set集合(知识点+例题详解)

声明&#xff1a;该专栏本人重新过一遍java知识点时候的笔记汇总&#xff0c;主要是每天的知识点题解&#xff0c;算是让自己巩固复习&#xff0c;也希望能给初学的朋友们一点帮助&#xff0c;大佬们不喜勿喷(抱拳了老铁&#xff01;) 往期回顾 Java学习day14&#xff1a;权限…

软件系统安全漏洞检测应该怎么做?靠谱的软件安全检测公司推荐

软件系统安全漏洞检测是指通过对软件系统进行全面的、系统化的评估&#xff0c;发现和解决其中可能存在的安全漏洞和隐患。这些安全漏洞可能会被不法分子利用&#xff0c;引发数据泄露、系统瘫痪、信息被篡改等安全问题&#xff0c;给企业造成严重的经济和声誉损失。那么软件系…

jenkins 使用 nexus插件,将代码打包好推送到制品库

Nexus是一个开源的、基于Java的应用程序框架和存储库管理系统&#xff0c;可用于管理软件开发和部署的所有相关构件。 它允许用户创建和维护Maven存储库&#xff0c;使其更易于组织&#xff0c;搜索和共享构建工件和库。 Nexus具有安全性和身份验证、多格式支持、镜像管理和自定…

精彩回顾|迪捷软件先进装备软件技术研讨会之行圆满收官

2023年11月24日&#xff0c;为期3个月的先进装备软件高安全、高可靠、智能化验证技术系列研讨会在成都圆满收官。迪捷软件董事长康烁作为研讨会特邀专家&#xff0c;在西安、上海、成都站进行了演讲分享。 以航空航天、船舶、电力电子、汽车、医疗为代表的先进装备软件发展迅速…

ELK+filebeat+kafka

无需创建logstash的端口&#xff0c;直接创建topic 远程收集mysql和httpd的日志 &#xff08;一&#xff09;安装nginx和mysql服务 1、打开mysql的日志功能 2、创建日志&#xff08;创库、创表、添加数据&#xff09; &#xff08;1&#xff09;mysql服务器上安装http system…

Jenkins持续集成Python项目

一、前言   之前学习了很多自动化测试框架&#xff0c;但是写的脚本都是本地执行&#xff0c;多数用来造数据。最近公司掀起一股自动化测试的风&#xff0c;所以就想研究下如何集成jenkins&#xff0c;本次采用pytest&#xff0c;用的是阿里云服务器centos7。 二、服务器环境…

功能测试常见的测试方法及其使用实例说明

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

软文推广如何自然融入品牌?媒介盒子有妙招

软文推广作为一种柔性推广方式&#xff0c;能将品牌信息融入到用户日常浏览的内容中&#xff0c;让用户不知不觉接触品牌&#xff0c;从而产生好感&#xff0c;这种方式既可以避免广告带来的反感&#xff0c;又可以提高广告的有效性。那么在推广中应该如何自然融入品牌信息呢&a…

一文看懂:库存分析如何做?

在之前的文章中&#xff0c;老李给大家简单介绍了制造业数据分析用到的指标体系和典型分析场景。如果你读过那篇文章&#xff0c;你就会知道制造业主要有两个典型的分析场景&#xff0c;一是库存管理&#xff0c;二是生产管理。虽然老李在之前的文章中提到了这两个场景&#xf…

Cesium.CustomShader颜色值显示错误

官方示例&#xff1a; Cesium Sandcastle 测试过程&#xff1a; 1、修改示例&#xff0c;把customshader中的fragmentShaderText替换为如下代码 void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material) {//注意&#xff1a;下述颜色的b值是0.1&#x…

IPv6+2.0网络切片技术在电子政务网的应用实践详解

IPv6是面向5G、云网/算网融合的智能IP技术&#xff0c;具有包含可编程路径、快速业务发放、自动化运维、质量可视化、SLA保障和应用感知等特点。IPv6将万物互联提升到了万物智联&#xff0c;赋能百行百业高质量数字化转型。 图示&#xff1a;“IPv6”技术创新体系发展的三个阶段…

机器学习模型验证——以数据为中心的方法

构建机器学习模型时&#xff0c;人们往往将激情和精力集中于收集数据和训练模型&#xff0c;对测试模型和验证结果往往缺少应有的关注。正确的验证技术有助于估计无偏见的广义模型的性能&#xff0c;并更好地理解模型训练的效果。您需要确保机器学习模型经过准确的训练&#xf…

骨传导与入耳式耳机哪种音质好?骨传导与入耳式耳机有什么区别?

由于骨传导耳机和入耳式耳机的传声原理不同&#xff0c;入耳式耳机的音质要更好一些&#xff01; 想要了解骨传导耳机和入耳式耳机哪种音质好&#xff0c;首先就要了解骨传导耳机和入耳式耳机的传声原理有什么区别&#xff1f; 一、骨传导耳机和入耳式耳机有什么区别 1、传声…