前言
明智的做法是把你的愤怒指向问题,而不是指向人,把你的精力集中在寻求解决方案上,而不是集中在寻找借口上。
一、计划任务
计划任务,帮助我们完成一些周期性任务
1.一次性计划任务
一次性计划任务,到指定时间执行一次计划任务结束
yum install at -y
使用方式一 at 时间 任务
[root@localhost ~]# systemctl start atd
[root@localhost ~]# systemctl enable atd
[root@server1 ~]# at now +2min
at> useradd zhangsan
#ctrl D
job 1 at Tue Feb 2 11:29:00 2021
[root@server1 ~]# atq
1 Tue Feb 2 11:29:00 2021 a root
[root@server1 ~]# id zhangsan
id: zhangsan: no such user
[root@server1 ~]# id zhangsan
uid=1000(zhangsan) gid=1000(zhangsan) 组=1000(zhangsan)
使用方式二 at 时间 < 任务文件
[root@localhost ~]# vi at.jobs
touch /root/`date +%F`.txt
useradd eagleslab
[root@localhost ~]# at now +1min < at.jobs
[root@localhost ~]# ls
2020-08-27.txt anaconda-ks.cfg at.jobs
[root@localhost ~]# id eagleslab
uid=1001(eagleslab) gid=1001(eagleslab) 组=1001(eagleslab)
2. 周期性计划任务
周期性计划任务,周期性的重复执行计划任务
[root@localhost ~]# crontab -l # 列出当前用户所有计划任务
[root@localhost ~]# crontab -r # 删除当前用户计划任务
[root@localhost ~]# crontab -e # 编辑当前用户计划任务
管理员可以使用 -u username,去管理其他用户的计划任务(可和前三连用)
[root@localhost ~]# vi /etc/cron.deny # 这个文件中加入的用户名无法使用cron
与之相关有很多的系统文件
[root@server1 ~]# vim /etc/cr
cron.d/ cron.daily/ cron.deny cron.hourly/ cron.monthly/ crontab cron.weekly/ crypttab
常见日志
二、常见日志
日志文件 | 作用描述 |
---|---|
tail /var/log/messages | 系统主日志文件 |
tail -20 /var/log/messages | |
tail -f /var/log/messages | 动态查看日志文件的尾部 |
tailf /var/log/secure | 认证、安全 |
tail /var/log/maillog | 和邮件postfix相关 |
tail /var/log/cron | crond、at进程产生的日志 |
tail /var/log/dmesg | 和系统启动相关 |
tail /var/log/audit/audit.log | 系统审计日志 |
tail /var/log/yum.log | yum |
tail /var/log/mysqld.log | MySQL |
tail /var/log/xferlog | 访问FTP服务器相关 |
w | 当前登录的用户 /var/log/wtmp |
last | 最近登录的用户 /var/log/btmp |
lastlog | 所有用户的登录情况 /var/log/lastlog |
三、rsyslogd子日志文件系统
[root@localhost ~]# rpm -qc rsyslog
/etc/logrotate.d/syslog # 日志轮转(切割)相关
/etc/rsyslog.conf # rsyslogd的主配置文件
/etc/sysconfig/rsyslog # rsyslogd相关文件
设备,其中local0-local7 一般用户自己使用
日志等级
设备类型(表示日志类型) | 解释 |
---|---|
LOG_AUTHPRIV | 安全认证 |
LOG_CRON | cron 和 at |
LOG_DAEMON | 后台进程 |
LOG_FTP | ftp进程 |
LOG_KERN | 内核信息 |
LOG_LOCAL0 through LOG_LOCAL7 | 用户自定义设备 |
LOG_LPR | 打印机子系统 |
LOG_MAIL | 邮件系统 |
LOG_NEWS | 新闻子系统 |
LOG_SYSLOG | syslogd自身产生的日志 |
级别(日志重要级别) | 解释 |
---|---|
LOG_EMERG | 紧急,致命,服务无法继续运行,如配置文件丢失 |
LOG_ALERT | 报警,需要立即处理,如磁盘空间使用95% |
LOG_CRIT | 致命行为 |
LOG_ERR | 错误行为 |
LOG_WARNING | 警告信息 |
LOG_NOTICE | 普通 |
LOG_INFO | 标准信息 |
LOG_DEBUG | 调试信息,排错才开,一般不建议使用 |
sshd日志案例
- 修改server1的rsyslog.conf配置文件,打开tcp、udp监听端口
[root@server1 httpd]# vim /etc/rsyslog.conf
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
- 重启rsyslog,检查端口是否在监听
[root@server1 ~]# yum install net-tools -y
[root@server1 ~]# netstat -nltup |grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 1342/rsyslogd
tcp6 0 0 :::514 :::* LISTEN 1342/rsyslogd
udp 0 0 0.0.0.0:514 0.0.0.0:* 1342/rsyslogd
udp6 0 0 :::514 :::* 1342/rsyslogd
- 修改server2的ssh配置文件,将日志发送到local0中
[root@server2 ~]# vim /etc/ssh/sshd_config
SyslogFacility LOCAL0
[root@server2 ~]# systemctl restart sshd
- 修改server2的rsyslog.conf
[root@server2 ~]# vim /etc/rsyslog.conf
local0.* @192.168.80.193
[root@server2 ~]# systemctl restart rsyslog.service
- 登录server2 观察server1的messages的消息
[root@server1 ~]# tailf /var/log/messages
五、日志切割
作用:防止日志文件过大
法一:shell语句自行切割备份,可写入计划任务周期性执行
法二:将切割策略写入文档/etc/logrotate.conf 中,计划任务会每天读取,来帮助完成日志切割
- 主配置文件
[root@localhost ~]# vim /etc/logrotate.conf
weekly # 一周轮转一次
rotate 4 # 保留4份日志
create # 主动创建新的日志文件
dateext # 使用日期来作为文件名的后缀
#compress # 每次轮转需不需要进行压缩
include /etc/logrotate.d # 导入其他应用的日志轮转规则
/var/log/wtmp { # 对该日志文件设置轮转的方法
monthly # 一个月轮转一次
create 0664 root utmp # 轮转后创建新文件,并设置权限
minsize 1M # 最小达到1M才会轮转
rotate 1
}
/var/log/btmp {
missingok # 丢失不提醒
monthly
create 0600 root utmp
rotate 1
}
总结
以上就是今天总结的内容,本文仅仅简单介绍了日志管理。感兴趣的小伙伴可以再多多阅读其他的详细博客进行进一步学习。