linux 从头开始その十四 (日志)

哎,感慨万千,我真是个菜鸡,

一 插入文件的隐藏属性

1 charrr 设置隐藏属性

+   增加某一个特殊特殊参数, 其他原本存在的参数则不动

-    删除某一个特殊参数,其他原本存在的参数不动

=   直接设置参数

a    文件只能增加数据, 不能删除也不能修改数据, 只有root才能设置这个属性

i     文件不能删除,改名,不能写入新数据

s    当文件设置了属性时,如该文件被删除, 它将会被完全从硬盘删除,无法恢复

u    与s相反,文件被删除, 数据还在磁盘里,可以恢复文件

cd  /tmp
touch attrtest
chattr +i attrtest
rm attrtest                 会报错

chattr -i attrtest          取消这个权限

2 lsattr  显示文件的隐藏属性

-a    将隐藏文件的属性也显示出来

-d    如果接的是目录, 仅列出目录本身的属性而非目录内的文件名

-R   连同子目录数据列出来

 

二 关于日志

  1. /var/log/boot.log      开机启动的时候系统内核会去检测与启动硬件,接下来开始启动各种内核支持的功能。只会储存本次开机的启动的消息。
  2. /var/log/cron            查看计划任务执行的情况
  3. /var/log/messages      系统放生错误信息都会存在这个文件中
  4. /var/log/secure           设计登陆,不管登陆是否正确, 都会记录在这
  5. /var/log/wtmp    /var/log/faillog     记录正确登陆的信息和登陆错误的信息

 

1 rsyslog.service   记录日志文件的服务

1) rsyslog.service的配置文件, /etc/rsyslog.conf

这个文件规定了  什么服务什么等级信息,要被记录在哪里

这个配置大概是这个样子

mail .info     /var/log/maillog_info    

服务名称:

序号服务类别说明
0kern内核产生的信息
1user用户层级所产生的信息
2mail只要是邮件收发有关的信息
3daemon只要是系统的服务所产生的信息
4ayth主要认证/授权有关的机制
5syslog就是syslog相关协议产生的信息
6lpr打印的相关信息
7news与新闻组服务器相关的信息
8uucp。。。。
9cron计划任务
10authpriv记录多人账号
11ffpFTP 通讯协议
16~23local0~loacl7保留给本机用户使用的一些日志文件信息

信息等级:

7defbug用来debug时产生的数据
6info仅是一些基本的信息说明
5notice正常信息,但是比info等级高
4warning警示的信息。
3err一些重大的错误信息
2crit严重错误信息
1alert警告,已经很有问题的等级
0emerg疼痛等级,指系统几乎要宕机

另外: none(不需要登陆等级)

.   一个点,代表比它严重的等级都被记录下来

.=  代表所需要的等级就是后面接的等级

.!  代表不等于

 

信息记录的文件名或设备或主机

  • 绝对路径
  • * 代表目前在线的所有人
1 将mail 相关数据写入到/var/log/maillog 
mail.info /var/log/maillog 



2 将新闻组数据和计划任务的信息都写入到一个/var/log/cronnews文件中, 但是这两个的警告信息都额外放在/var/log/cronnews.warn

news.*;cron.* /var/log/cronnews
news.=warn;cron.=warn /var/log/cronnews.warn

3 messages 不要记录cron, mail, news的信息
*.*,news,corn,mail.none /var/log/messages 
或
*.*; news.none; corn.none;mail.none /var/log/messages

 

自行添加日志文件功能,

vim /etc/rsyslog.conf
*.info  /var/log/admin.log

systemctl restart rsyslog.service       需要重启

 

日志文件服务器的设置

就是把多台服务器的日志,传到一台服务器。

服务端:

修改/etc/rsyslog.conf  的如下内容

客户端:

vim /etc/rsyslog.conf
*.* @@192.168.1.100   # tcp
#*.* @192.168.1.100    udp

 

日志文件的循环 logrotate

/etc/logrotate.conf

/etc/logrotate.d/

其中logrotate.conf是主要的参数文件,至于logrotate.d是个目录,该目录的所有文件都会主动地读入logrotate.conf的设置

 

/etc/logrotate.conf

[root@ ~]# vim /etc/logrotate.conf
# 下面是默认值

weekly    # 没星期设置对日志文件进行一次轮询

rotate 4  # 保留几个日志
 
create    # 因为日志文件被更名,因此建立一个新的来继承存贮之意

dateext   # 可以让被轮询的文件名称加上日期

include /etc/logrotate.d  # 这个目录中的所有的文件都读入这个配置

/var/log/wtmp {            # 针对这个日志文件的配置
    monthly
    create 0664 root utmp   # 指定新建文件的权限与所属账号的/组
        minsize 1M          # 文件一定要超过1M后才进行轮询(略过时间参数)
    rotate 1                # 仅保留一个日志文件
}

 

/etc/logrotate.d/

[root@ ~]# vim /etc/logrotate.d/syslog

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
    missingok
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

 

  • 被处理的日志文件的绝对路径
  • 参数, 用{}
  • 执行的脚本,需要 sharedscripts    endscript 写在这里面, prerotate, 在启动logrotate之前进行的命令,如修改日志文件的属性等;postrotate 在做完prerotate之后启动命令,例如重启。

所以配合/etc/logrotate.conf的默认设置,/etc/logrotate.d/syslog就是 这样:

设置只对cron, maillog,messages, secure, spooler 有效,日志文件每周轮询一次,保留4个文件不进行压缩,轮询往后重启syslogd

 

当然也可以自己设置,加上隐藏属性a,让日志只能加, 不能删除

在轮询前先-a, 轮询后再-a

[root@ ~]# vim /etc/logrotate.d/syslog

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
    missingok
    sharedscripts
    prerotate
        /usr/bin/chattr -a /var/log/messages
    endscript


    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /usr/bin/chattr +a /var/log/messages
    endscript
}

 

主动执行日志轮询

logrotate

-v : 启动模式,回显示过程

-f:  不管配置文件的轮询时间, 强制轮询

logrotate -vf /etc/logrotate.conf

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值