linux 系统日志轮转,系统日志轮转

系统日志轮转

一,系统日志

何时、何地、(来源ip)、何人(账户或者服务器名称)、做了什么动作。

二、常用的系统日志

/var/log/massage

这个文件相当重要、几乎所发生的错误信息都会在这个文件中;系统莫名出错应首先查询这个目录。

/var/log/secure

基本上,只要涉及到“需要输入密码”的软件,那么登录时(不论密码正确错误)都会记录在此。su,sudo,ssh,telnet等登录信息都记录在这里。

/var/log/boot.log

开机的时候系统核心回去侦察和启动硬件,保存开机信息。

/var/log/cron

b5107616c1ea

图片.png

b5107616c1ea

图片.png

日志服务和配置文件

1.查看日志和服务状态

systemctl status rsyslog.service

rsyslog.service的配置文件

既然是服务,就会有配置文件。

/rtc/rsyslog.conf

配置文件用于设置

(1)什么服务(2)的什么级别信息(3)需要被记录在哪里(设备或文件)

比如:

cron.* /var/log/cron

表示关于计划任务的所有级别的信息,都记录在/var/log/cron文件中

*.info; mail.none; authoriv.none; cron.none /var/log/messages表示所有服务端info级别的信息,邮件的none级别的信息,登录认证的none基本的信息和计划服务的none基本信息都记录到/var/log/message文件中。

Linux核心的syslog认识的服务类型主要有下面这些:

b5107616c1ea

图片.png

Linux核心的syslog定义的日志级别:

b5107616c1ea

图片.png

添加额外的日志文件

1.编辑/etc/rsyslog。conf文件

#Add other file

*.info /var/log/shark.log

保存退出后

重启服务

systemctl restartrsys.log

把一个Linux主机设置为日志服务器

通过配置/etc/rsyslog.conf 可以把一个Linux主机配置成一台日志服务器,这样其他的Linux主机的日志,除了记录在自己的本地外你还会发送这台日志给服务器上一份。

服务端的设置

1.编辑 /etc/rssyslig.conf

#provides TCP syslog reception

$ModLoad imtcp

$InputTCPserverRun 514

重启服务

systenctl restart rsyslog.service

查看监听端口

[~]ss -natal |grep 514

LISTEN 0 25 *:514 *:*

LISTEN 0 25 :::514 :::*

客户端设置

编辑 /etc/rstslog.conf

*.* @@192.168.1.100

b5107616c1ea

图片.png

*日志轮转 !!!

日志轮转也叫日志切割,通俗来讲就是对日志文件进行大小的控制。

Linux 系统通常会长时间的不停机运行,这样就会产生好多信息记录到不同的日志中。随着时间的推移,日志的容量自然会越来越大,那问题就来了,硬盘的空间是有限的,那为了控制日志文件的大小,就需要对日志文件进行控制。

同时是把目前的日志文件改名,紧接着创建一个新的日志文件,名称和原来的一样,重启服务进程,让其向新的日志文件中写日志。

实施程序!!!!!!!!!

logrotate负责对日志的轮转。

通过定时任务每天会执行一次。

[root@shark ~]# 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 的配置文件

/etc/logrotate.conf

主配置文件,设置默认值

/etc/logrotate.d/

被包含的子配置文件,可以对某一些服务设置特定的配置

看下logrotate.conf配置:

cat /etc/logrotate.conf

底下的设定是 "logrotate 的默认值" ,如果別的文件设定了其他的值,

就会以其它文件的设定为主

weekly //默认每一周执行一次rotate轮转工作

rotate 4 //保留多少个日志文件(轮转几次).默认保留四个.就是指定日志文件删除之前轮转的次数,0 指没有备份

create //自动创建新的日志文件,新的日志文件具有和原来的文件相同的权限;因为日志被改名,因此要创建一个新的来继续存储之前的日志

dateext //这个参数很重要!就是切割后的日志文件以当前日期为格式结尾,如xxx.log-20131216这样,如果注释掉,切割出来是按数字递增,即前面说的 xxx.log-1这种格式

compress //是否通过gzip压缩转储以后的日志文件,如xxx.log-20131216.gz ;如果不需要压缩,注释掉就行

monthly //每月一次切割,取代默认的一周

minsize 1M //文件大小超过 1M 后才会切割

create 0664 root utmp //指定新建的日志文件权限以及所属用户和组

rotate 1 //只保留一个日志.

compress 通过gzip 压缩转储以后的日志

nocompress 不做gzip压缩处理

copytruncate 用于还在打开中的日志文件,把当前日志备份并截断;是先拷贝再清空的方式,拷贝和清空之间有一个时间差,可能会丢失部分日志数据。

nocopytruncate 备份日志文件不过不截断

create mode owner group 轮转时指定创建新文件的属性,如create 0777 nobody nobody

nocreate 不建立新的日志文件

delaycompress 和compress 一起使用时,转储的日志文件到下一次转储时才压缩

nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。

missingok 如果日志丢失,不报错继续滚动下一个日志

errors address 专储时的错误信息发送到指定的Email 地址

ifempty 即使日志文件为空文件也做轮转,这个是logrotate的缺省选项。

notifempty 当日志文件为空时,不进行轮转

mail address 把转储的日志文件发送到指定的E-mail 地址

nomail 转储时不发送日志文件

olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统

noolddir 转储后的日志文件和当前日志文件放在同一个目录下

sharedscripts 运行postrotate脚本,作用是在所有日志都轮转后统一执行一次脚本。如果没有配置这个,那么每个日志轮转后都会执行一次脚本

prerotate 在logrotate转储之前需要执行的指令,例如修改文件的属性等动作;必须独立成行

postrotate 在logrotate转储之后需要执行的指令,例如重新启动 (kill -HUP) 某个服务!必须独立成行

daily 指定转储周期为每天

weekly 指定转储周期为每周

monthly 指定转储周期为每月

rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份

dateext 使用当期日期作为命名格式

dateformat .%s 配合dateext使用,紧跟在下一行出现,定义文件切割后的文件名,必须配合dateext使用,只支持 %Y %m %d %s 这四个参数

size(或minsize) log-size 当日志文件到达指定的大小时才转储,log-size能指定bytes(缺省)及KB (sizek)或MB(sizem).

当日志文件 >= log-size 的时候就转储。 以下为合法格式:(其他格式的单位大小写没有试过)

size = 5 或 size 5 (>= 5 个字节就转储)

size = 100k 或 size 100k

size = 100M 或 size 100M

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux 系统中的 etc 目录是一个非常重要的目录,其作用包括但不限于以下几个方面: 1. 存储系统级配置文件:在 Linux 系统中,许多系统级别的配置文件都存储在 etc 目录下。例如,/etc/passwd 存储了系统上所有用户的登录信息,/etc/group 存储了用户组信息,/etc/hosts 存储了主机名和 IP 地址之间的映射关系等等。 2. 存储系统服务配置文件:Linux 系统中的许多服务都是以守护进程的形式运行的,而它们的配置文件通常存储在 etc 目录下的子目录中。例如,/etc/apache2 存储了 Apache 服务器的配置文件,/etc/mysql 存储了 MySQL 数据库服务器的配置文件等等。 3. 存储启动脚本:在 Linux 系统中,许多系统服务都需要在系统启动时自动启动,而这些服务的启动脚本通常存储在 etc/init.d 目录下。 4. 存储一些系统运行日志文件:许多 Linux 系统服务的日志文件也存储在 etc 目录下的子目录中,例如 /var/log 目录就是用来存储各种系统运行日志文件的,而 /etc/rsyslog.conf 则是系统日志服务 rsyslog 的配置文件。 综上所述,etc 目录在 Linux 系统中扮演着非常重要的角色,它存储了许多关键的系统级配置文件和服务配置文件,是系统管理员必须要熟悉和掌握的目录之一。 ### 回答2: Linux系统中的/etc目录是存放系统配置文件的目录,也被称为“系统配置文件的家”。其中存放了系统和服务的各种配置文件,这些文件对系统的正常运行起着至关重要的作用。 /etc目录下的配置文件包括系统级别的配置文件和服务级别的配置文件。系统级别的配置文件用来控制整个系统的行为,如网络配置文件(/etc/network/interfaces)、用户账户配置文件(/etc/passwd)、密码文件(/etc/shadow)等。这些配置文件存储了系统的初始设置和全局设置,用来保证系统的正常运行。 另外,一些服务也有自己的配置文件存放在/etc目录下。比如,Apache服务器的配置文件(/etc/apache2/apache2.conf)、MySQL数据库的配置文件(/etc/mysql/my.cnf)等。这些服务级别的配置文件用来控制相关服务的行为,可以设置相应的参数、权限和安全策略等。 /etc目录还包含了一些特殊的配置子目录,如/etc/init.d存放系统启动时需要执行的初始化脚本,/etc/cron.d存放定时任务的配置文件等。这些子目录也是系统配置的重要部分。 总之,/etc目录是Linux系统中重要的目录之一,用来存放系统配置文件和服务配置文件,起着保证系统正常运行的重要作用。通过修改其中的配置文件,可以个性化定制系统和服务的行为。 ### 回答3: /etc目录是Linux系统中的一个重要目录,它存放着系统的配置文件和一些系统级别的设置。以下是/etc目录的作用: 1. 系统配置文件:/etc目录中包含了很多重要的系统配置文件,例如/etc/passwd、/etc/group、/etc/hosts等。这些文件存储了系统的用户、用户组、网络配置等信息,是系统正常运行所必需的。 2. 服务配置文件:/etc目录还存放了很多与服务相关的配置文件,例如/etc/ssh/sshd_config、/etc/httpd/conf/httpd.conf等。这些文件用于配置相应服务的运行参数、权限、访问控制等,通过修改这些配置文件可以实现对服务的定制化设置。 3. 启动脚本:/etc/init.d目录中存放了系统的启动脚本。这些脚本描述了系统启动时需要执行的各种任务,例如启动服务、加载模块、检查文件系统等。通过修改这些启动脚本,可以控制系统在启动时需要执行的操作。 4. 系统日志:/etc目录下的一些文件用于配置系统的日志记录方式,例如/etc/rsyslog.conf、/etc/logrotate.conf等。这些配置文件定义了系统应该将哪些信息记录到日志文件中,以及日志的存储方式、轮转策略等。 5. 软件包管理:在一些Linux发行版中,/etc目录中还存放了软件包管理工具的配置文件。这些文件定义了软件包的软件源、安装目录、依赖关系等信息。通过修改这些配置文件,可以更改软件包的安装源,或者添加新的软件源。 总之,/etc目录是Linux系统中存放系统配置文件的地方,通过修改其中的文件可以实现对系统行为、服务设置等方面的定制化。它是系统管理员进行系统级别设置和维护的重要目录。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值