远程日志
vim /etc/rsyslog.conf日志的主配置文件
/etc/rsyslog.d/*.conf 子配置文件
Provides UDP syslog reception
#$ModLoad imudp #$UDPServerRun 514
Provides TCP syslog reception
#$ModLoad imtcp #$InputTCPServerRun 514
日志管理规则(RULES)(重点)
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
对象.级别 存放位置+文件名
服务-->对象 vim /etc/ssh/sshd_config
ssh --> authpriv/auth
#SYSlogFacility AUTH auth
SyslogFacility AUTHPRIV authpriv
查看都有哪些日志对象和日志级别
#man 5 rsyslog.conf
都有哪些对象: auth,authpriv, cron,daemon,kern,lpr, mail, mark,news, security (same as auth),syslog, user,uucp and local0 through local7 (0-7自定义)
级别: debug,info,notice,warning,warn (same as warning),err,error(same aserr),crit, alert,emerg, panic (same as emerg).
debug ---> panic 级别越低,记录的内容就越多,级别越高,记录的内容就越少
自定义日志
vim /etc/rsyslog.conf
local0 through local7:自己定义的日志文件
例: . /var/log/mylog systemctl restart rsyslog kern.err /var/log/kernel.log *.info;mail.none /var/log/big.log mail.info /var/log/mail.log
cron.info;cron.!err /var/log/newcron
远程日志
两台机器
一台接收日志 一台发送日志
先临时关闭在永久关闭selinux,firewalld
1.所有机器关闭防火墙和selinux systemctl stop firewalld systemctl disable firewalld setenforce 0 (临时关闭selinux) [root@qf-xingdian ~]# getenforce (查看selinux) Disabled
扩展:永久关闭selinux vim /etc/selinux/config SELINUX=disabled
第二种方法永久关闭selinux sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
2.产生日志服务器: vim /etc/rsyslog.conf
*. * @10.11.59.91 //注意@:使用udp @@:使用tcp
3.日志收集服务器 vim /etc/rsyslog.conf 修改配置文件打开接收功能
$ModLoad imudp
$UDPServerRun 514 开启UDP/TCP接收
4.两台机器重新启动日志服务 systemctl restart rsyslog
5.验证 在产生日志服务器安装一个软件,产生一条日志. 在接收的服务器的messages的日志文件中查看
日志轮转
logrotate (轮转,日志切割)
-
如果没有日志轮转,日志文件会越来越大,最后导致日志打不开或者是打开时间过长
-
将丢弃系统中最旧的日志文件,以节省空间
-
logrotate本身不是系统进程,即日志的轮转不会自动执行,它是通过写到相应的配置文件中使用计划任务crond每天执行 4.对日志的切割,你只需要给他定义一个规则
logrotate 配置文件: /etc/logrotate.conf (决定每个日志文件如何轮转) /etc/logrotate.d/* 主配置文件
[root@xingdian ~]# vim /etc/logrotate.conf =========全局设置==========
weekly //轮转的周期,一周轮转
rotate 4 //保留4份
create //轮转后创建新文件
dateext //使用日期作为后缀 #
compress //是否压缩
RPM packages drop log rotation information into this directory
rpm安装的程序,按照下面目录规则进行轮转
include /etc/logrotate.d //包含该目录下的文件
no packages own wtmp and btmp -- we'll rotate them here
对于wtmp和btmp这样无主的日志,按照下面配置进行轮转
/var/log/wtmp { //对该日志文件设置轮转的方法
monthly //一月轮转一次
minsize 1M //最小达到1M才轮转,即到了规定的时间未达到大小不会轮转
create 0664 root utmp //轮转后创建新文件,并设置权限属主和属组
rotate 1 //保留一份 }
/var/log/btmp {
missingok //丢失不提示
monthly //每月轮转一次
create 0600 root utmp //轮转后创建新文件,并设置权限
rotate 1 //保留一份 }
[root@xingdian ~]# vim /etc/logrotate.d/yum //原有的设置,没有说保存几份,看上面的全局设置 /var/log/yum.log
{ //yum日志文件
missingok //丢失不提示
notifempty //如果为空,不轮转
size 30k //达到30k就轮转
yearly //达到一年就轮转一次,两者满足一个就轮转
create 0600 root root //创建新文件 }
[root@xingdian ~]# ls /etc/logrotate.d/
chrony ppp wpa_supplicant syslog yum 日志的轮转规则文件是在安装rpm包时就自动提供的,无需人为手动编写 只有自己创建的日志文件才需要自己编写日志轮转规则文件
[root@xingdian ~]# yum -y install httpd
[root@xingdian ~]# ls /etc/logrotate.d/
chrony ppp wpa_supplicant syslog yum httpd
[root@xingdian logrotate.d]# yum -y install vsftpd
[root@xingdian logrotate.d]# ls chrony httpd ppp syslog vsftpd wpa_supplicant yum
说明: 当切割之后创建新文件,新文件有新的inode number 如果希望进程如rsyslog、nginx进程会把新的日志写入新日志文件中,应该在日志切割后,告诉一下rsyslog、nginx进程reload 或 信号(1 or HUP)
logrotate -f 规则文件 (/etc/logrotate.d)强制执行
计划任务
计划任务: 一次性计划任务
循环性计划任务(重点)
任务:Linux命令 (touch、mkdir等等) --->shell脚本用的最多
计划:时间
at(一次性计划任务) 软件包:at 服务名称:atd
创建:指定时间 指定任务
at 时间
命令 touch liutian
ctrl + d
特殊时间:noon teatime midnight
08:08 12/31/2023
查看:
at -l
ls /var/spool/at 创建计划任务会产生一个文件
删除:
at -d 工作号 (at -l 最前面的数字)
atrm 工作号
rm -rf /var/spool/at/文件名
用户级
系统级
循环计划任务cron crontab执行时间计算 - 在线工具
时间
分* 时* 日* 月* 周*
分钟:00-59
小时:00-23
日:1-31
月:1-12
周:0-7 1-6 0 7 周日
ps: * 表示每... , 取不同的时间点 - 表示范围 */5 每5分钟
00 02 0 2 * * * /mysql_back.sh 0 2 14 * * /mysql_back.sh 0 2 14 2 * /mysql_back.sh 0 2 * * 5 /mysql_back.sh 0 2 * 6 5 /mysql_back.sh 0 2 2 * 5 /mysql_back.sh 0 2 2 6 5 /mysql_back.sh */5 * * * * /mysql_back.sh 0 2 1,4,6 * * /mysql_back.sh 0 2 5-9 * * /mysql_back.sh * * * * * /mysql_back.sh 0 * * * * /mysql_back.sh * * 2 * * /mysql_back.sh 0 12 * * * ls / 示例: 00 02 * * * ls //每天2:00整 00 02 1 * * ls //每月1号2:00整 00 02 14 2 * ls //每年2月14号2:00整 00 02 * * 7 ls //每周日2:00整 00 02 * 6 5 ls //每年6月的周五2:00整 00 02 14 * 7 ls //每月14号2:00整 或者 每周日2:00整,这两个时间都执行 00 02 14 2 7 ls //每年2月14号2:00整 或者 每年2月周日2:00整,这两个时间都执行 00 02 * * * ls //每天2:00整 * 02 * * * ls //每天2:00中的每一分钟 * * * * * ls //每分钟执行ls * * 14 2 * ls //2月14号的每分钟 1440分钟 */5 * * * * ls //每隔5分钟 00 02 1,5,8 * * ls //每月1,5,8号的2:00整 00 02 1-8 * * ls //每月1到8号的2:00整