第十九章: 日志文件二
1\. logrotate -- 日志轮循
|---> 配置文件 : /etc/logrotate.conf && /etc/logrotate.d
|---> 其实里面文件格式都是一样的,logrotate.d 就是图个直观,一个程序放在一个文件多好,是吧。
|---> 插入bash命令
sharedscripts
prerotate -----> prerotate表示在lograte开始前做的操作
...
endscript
sharedscripts
postrotate-----> postrotate表示在lograte完成后做的操作
...
endscript
2\. 日志安全
|---> 防止日志内容被黑客删除 : 利用 chattr 的 a 属性即可. chattr +a /var/log/demo
|---> 一般 log 文件被修改后,服务就不会运行了(rsyslog)
|---> 有了 a 属性,这样logrotate就不能重命名,删除了. 修改后也必须要重新启动文件服务(rsyslog)
sharedscripts
prerotate
/usr/bin/chattr -a /var/log/demo
endscript
sharedscripts
prerotate
/bin/kill -HUP `cat /var/run/syslog.pid 2> /dev/null` 2> /dev/null || true
/bin/kill -HUP `cat /var/run/rsyslog.pid 2> /dev/null` 2> /dev/null || true
/usr/bin/chattr +a /var/log/demo
endscript
/bin/kill -HUP `cat /var/run/rsyslog.pid 2> /dev/null` 2> /dev/null || true
1\. cat /var/run/rsyslog.pid 2> /dev/null
第一个/dev/null是相对cat来说的,取出rsyslog的pid,显示出来
2\. /bin/kill -HUP ... 2> /dev/null
第二个/dev/null是相对kill来说的,在``中通过cat得到了pid,然后利用kill重启即可
3\. true
如果错误的话可能就lograte就在这里终止了,下面不执行,所以要让这条语句一定是true
4\. 小trick
一个运行syslog,一个运行rsyslog,是因为不同linux版本用的不一样。
最后要加上属性a哦,千万不要忘记