529 lines
19 KiB
Markdown
529 lines
19 KiB
Markdown
# 计划任务
|
||
|
||
- 计划任务主要是做一些周期性的任务,可以让某个任务按照我们的预期的时间或计划去执行。
|
||
|
||
## 单次调度执行at
|
||
|
||
安装at软件包:
|
||
|
||
`yum install -y at`
|
||
|
||
启动at服务:
|
||
|
||
```bash
|
||
[root@localhost ~]# systemctl start atd
|
||
[root@localhost ~]# systemctl enable atd # 开机自启动
|
||
```
|
||
|
||
### 语法结构
|
||
|
||
`at [options] time`
|
||
|
||
#### 选项:
|
||
|
||
- -f:指定包含具体指令的任务文件
|
||
- -q:指定新任务的队列名称
|
||
- -l:显示待执行任务的列表
|
||
- -d:删除指定的待执行任务
|
||
- -c:根据序号查看具体任务的内容
|
||
|
||
或者也可以使用一下命令查看和删除
|
||
|
||
`atq`:查看待执行的任务
|
||
|
||
`atrm`:通过序号删除任务
|
||
|
||
#### timespec
|
||
|
||
```bash
|
||
at now +5min # 从现在开始5分钟后
|
||
at teatime tomorrow # 明天的下午16:00
|
||
at noon +4 days # 4天后的中午
|
||
at 11:20 AM # 早上11:20
|
||
.....
|
||
.....
|
||
|
||
# 对于at任务的时间写法有很多,不需要记忆,用到的时候查询一下就行
|
||
```
|
||
|
||
|
||
|
||
**示例一:**5分钟后创建一个文件
|
||
|
||
```bash
|
||
[root@localhost ~]# at now +5min
|
||
at> touch /root/file2
|
||
at> <EOT> # ctrl+D 结束任务编辑
|
||
job 1 at Fri May 31 21:03:00 2024
|
||
[root@localhost ~]# at -l # 查看任务
|
||
1 Fri May 31 21:03:00 2024 a root
|
||
```
|
||
|
||
**示例二:**通过文件指定任务
|
||
|
||
```bash
|
||
[root@localhost ~]# vim at.jobs
|
||
useradd testuser
|
||
[root@localhost ~]# at -l
|
||
[root@localhost ~]# at now +5min -f at.jobs
|
||
job 2 at Fri May 31 21:03:00 2024
|
||
[root@localhost ~]# at -l
|
||
2 Fri May 31 21:03:00 2024 a root
|
||
```
|
||
|
||
|
||
|
||
## 循环调度执行cron
|
||
|
||
计划任务(Cron)是一种强大的工具,可以自动执行预定的任务。它非常适合定期运行脚本、备份数据、清理临时文件等一系列重复性任务。
|
||
|
||
crontab:是cron服务提供的管理工具
|
||
|
||
**检查cron服务有没有启动:**
|
||
|
||
```bash
|
||
[root@localhost ~]# systemctl status crond.service
|
||
● crond.service - Command Scheduler
|
||
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
|
||
Active: active (running) since 五 2024-05-31 21:30:35 CST; 3min 48s ago
|
||
Main PID: 6225 (crond)
|
||
CGroup: /system.slice/crond.service
|
||
└─6225 /usr/sbin/crond -n
|
||
|
||
5月 31 21:30:35 localhost.localdomain systemd[1]: Started Command Scheduler.
|
||
5月 31 21:30:36 localhost.localdomain crond[6225]: (CRON) INFO (RANDOM_DELAY...
|
||
5月 31 21:30:36 localhost.localdomain crond[6225]: (CRON) INFO (running with...
|
||
Hint: Some lines were ellipsized, use -l to show in full.
|
||
|
||
|
||
|
||
# 启动
|
||
systemctl start crond.service
|
||
```
|
||
|
||
cron计划任务主要分为用户的任务和系统任务,用户任务是又具体某个用户编写的任务,而系统任务则在系统启动时始终生效
|
||
|
||
### cron的基本语法
|
||
|
||
cron命令的基本语法如下:
|
||
|
||
```text
|
||
crontab [-l | -r | -e | -n | -m]
|
||
```
|
||
|
||
#### 选项:
|
||
|
||
- `-l`:列出当前用户的定时任务。
|
||
- `-r`:删除当前用户的定时任务。
|
||
- `-e`:编辑当前用户的定时任务。
|
||
- `-n`:检查定时任务是否可用。
|
||
- `-m`:发送类似于电子邮件的消息,用于通知定时任务执行的结果。
|
||
|
||
```bash
|
||
[root@localhost ~]# crontab -l # 列出当前用户所有计划任务
|
||
[root@localhost ~]# crontab -r # 删除当前用户计划任务
|
||
[root@localhost ~]# crontab -e # 编辑当前用户计划任务
|
||
管理员可以使用 -u username,去管理其他用户的计划任务
|
||
[root@localhost ~]# vi /etc/cron.deny # 这个文件中加入的用户名无法使用cron
|
||
```
|
||
|
||
### cron任务的配置
|
||
|
||
每个用户可以通过`crontab`命令来编辑自己的任务计划。要编辑cron任务,可以使用`crontab -e`命令。
|
||
|
||
### 编辑cron任务
|
||
|
||
要编辑cron任务计划,可以使用以下命令打开cron编辑器:
|
||
|
||
```bash
|
||
crontab -e
|
||
```
|
||
|
||
### 配置cron任务的格式
|
||
|
||
cron任务的格式如下:
|
||
|
||
```bash
|
||
分 时 日 月 星期 命令
|
||
* 表示任何数字都符合
|
||
0 2 * * * date >> date.txt # 每天的2点
|
||
0 2 14 * * date >> date.txt # 每月14号2点
|
||
0 2 14 2 * date >> date.txt # 每年2月14号2点
|
||
0 2 * * 5 date >> date.txt # 每个星期5的2点
|
||
0 2 * 6 5 date >> date.txt # 每年6月份的星期5的2点
|
||
0 2 2 * 5 date >> date.txt # 每月2号或者星期5的2点 星期和日同时存在,那么就是或的关系
|
||
0 2 2 6 5 date >> date.txt # 每年6月2号或者星期5的2点
|
||
|
||
*/5 * * * * date >> date.txt # 每隔5分钟执行一次
|
||
0 2 1,4,6 * * date >> date.txt # 每月1号,4号,6号的2点
|
||
0 2 5-9 * * date >> date.txt # 每月5-9号的2点
|
||
|
||
* * * * * date >> date.txt # 每分钟
|
||
0 * * * * date >> date.txt # 每整点
|
||
* * 2 * * date >> date.txt # 每月2号的每分钟
|
||
```
|
||
|
||
其中,第一个字段表示分钟(0-59),第二个字段表示小时(0-23),第三个字段表示天(1-31),第四个字段表示月份(1-12),第五个字段表示星期(0-7)。第六个字段是要执行的命令或脚本。
|
||
|
||
例如,要每天上午10点重启系统,可以配置如下:
|
||
|
||
```bash
|
||
0 10 * * * reboot
|
||
```
|
||
|
||
在线crontab测试网站: <https://crontab.guru/#0_*_*_*_*>
|
||
|
||
### 查看任务存放位置
|
||
|
||
`/var/spool/cron/root`
|
||
|
||
```bash
|
||
[root@localhost ~]# cat /var/spool/cron/root
|
||
* * * * * date >> file.txt
|
||
```
|
||
|
||
### 示例
|
||
|
||
这里列举几个常见的cron任务的示例:
|
||
|
||
1. 每天凌晨3点备份文件:
|
||
|
||
```text
|
||
0 3 * * * /path/to/backup.sh
|
||
```
|
||
|
||
2. 每周一上午8点清理临时文件:
|
||
|
||
```text
|
||
0 8 * * 1 /path/to/cleanup.sh
|
||
```
|
||
|
||
3. 每隔10分钟检查服务器状态:
|
||
|
||
```text
|
||
*/10 * * * * /path/to/check_status.sh
|
||
```
|
||
|
||
|
||
|
||
## cron系统任务
|
||
|
||
- 临时文件的清理`/tmp` `/var/tmp`
|
||
- 系统信息的采集 `sar`
|
||
- 日志的轮转(切割) `lgrotate`
|
||
- 通常不是由用户定义
|
||
- 文件的位置
|
||
|
||
```bash
|
||
[root@localhost ~]# vim /etc/crontab # 默认没有定义任何计划任务
|
||
[root@localhost ~]# ls /etc/cron.d # 定义的计划任务每个小时会执行
|
||
0hourly sysstat
|
||
[root@localhost ~]# cat /etc/cron.d/0hourly
|
||
# Run the hourly jobs
|
||
SHELL=/bin/bash
|
||
PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
||
MAILTO=root
|
||
01 * * * * root run-parts /etc/cron.hourly # 每小时01分以root身份执行/etc/cron.hourly/目录下的所有脚本
|
||
```
|
||
|
||
- `crond`仅仅会执行每小时定义的脚本 `/etc/cron.hourly`
|
||
|
||
```bash
|
||
[root@localhost ~]# ls /etc/cron.hourly/
|
||
[root@localhost ~]# cat /etc/cron.hourly/0anacron
|
||
/usr/sbin/anacron -s # anacron是用来检查是否有错过的计划任务需要被执行
|
||
[root@localhost ~]# vi /etc/anacrontab
|
||
1 5 cron.daily nice run-parts /etc/cron.daily
|
||
#每天开机 5 分钟后就检查 /etc/cron.daily 目录内的文件是否被执行,如果今天没有被执行,那就执行
|
||
7 25 cron.weekly nice run-parts /etc/cron.weekly
|
||
#每隔 7 天开机后 25 分钟检查 /etc/cron.weekly 目录内的文件是否被执行,如果一周内没有被执行,就会执行
|
||
©monthly 45 cron.monthly nice run-parts /etc/cron.monthly
|
||
#每隔一个月开机后 45 分钟检查 /etc/cron.monthly 目录内的文件是否被执行,如果一个月内没有被执行,那就执行
|
||
```
|
||
|
||
|
||
|
||
# 日志管理
|
||
|
||
Linux系统和许多程序会产生各种错误信息、告警信息和其他的提示信息,这些各种信息都应该记录到日志文件中。Linux系统日志对管理员来说,是了解系统运行的主要途径,因此需要对Linux日志系统有详细的了解。
|
||
|
||
## 常见的日志文件
|
||
|
||
| 日志文件 | 解释 |
|
||
| :-----------------: | :-------------------------------------------------: |
|
||
| /var/log/messages | 系统主日志文件 |
|
||
| /var/log/secure | 记录认证、安全的日志 |
|
||
| /var/log/maillog | 跟邮件postfix相关 |
|
||
| /var/log/cron | crond、at进程产生的日志 |
|
||
| /var/log/dmesg | 记录系统启动时加载的硬件相关信息日志 |
|
||
| /var/log/yum.log | yum的日志 |
|
||
| /var/log/mysqld.log | MySQL日志 |
|
||
| var/log/xferlog | 和访问FTP服务器相关 |
|
||
| /var/log/boot.log | 系统启动过程日志记录存放 |
|
||
| /var/log/wtmp | 当前登录的用户(可以直接在命令行输入w查看) |
|
||
| /var/log/lastlog | 所有用户的登录情况(可以直接在命令行输入lastlog查看) |
|
||
|
||
## 查看日志
|
||
|
||
有多种方法可以查看日志,可以通过cat、tail等命令来查看
|
||
|
||
但是往往日志文件中内容都是非常多的,所以对于初学者通过cat查看不是很直观。这个时候我们可以配合一些其他过滤工具来过滤日志里面的内容。如:grep,awk等等。
|
||
|
||
### 示例一:查看message日志中关于ens160网卡的信息
|
||
|
||
```bash
|
||
[root@localhost ~]# cat /var/log/messages | grep ens160
|
||
# 通过grep来过滤出跟ens160相关的内容
|
||
[root@localhost ~]# cat /var/log/messages | grep ens160
|
||
Nov 9 11:13:20 localhost kernel: vmxnet3 0000:03:00.0 ens160: renamed from eth0
|
||
Nov 9 11:13:24 localhost NetworkManager[785]: <info> [1731122004.5476] manager: (ens160): new Ethernet device (/org/freedesktop/NetworkManager/Devices/2)
|
||
Nov 9 11:13:24 localhost NetworkManager[785]: <info> [1731122004.5482] device (ens160): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
|
||
Nov 9 11:13:24 localhost kernel: vmxnet3 0000:03:00.0 ens160: intr type 3, mode 0, 5 vectors allocated
|
||
Nov 9 11:13:24 localhost kernel: vmxnet3 0000:03:00.0 ens160: NIC Link is Up 10000 Mbps
|
||
Nov 9 11:13:24 localhost NetworkManager[785]: <info> [1731122004.5604] device (ens160): carrier: link connected
|
||
```
|
||
|
||
### 示例二:统计远程登录信息
|
||
|
||
```bash
|
||
[root@localhost ~]# cat /var/log/secure | grep Accepted
|
||
Nov 9 14:14:19 localhost sshd[4953]: Accepted password for root from 192.168.88.1 port 57324 ssh2
|
||
Nov 28 11:44:38 localhost sshd[1523]: Accepted password for root from 192.168.88.1 port 1665 ssh2
|
||
Nov 28 11:44:38 localhost sshd[1525]: Accepted password for root from 192.168.88.1 port 1666 ssh2
|
||
Nov 28 13:39:50 localhost sshd[1514]: Accepted password for root from 192.168.88.1 port 3682 ssh2
|
||
```
|
||
|
||
### 示例三:查看用户与用户组相关的信息
|
||
|
||
```bash
|
||
[root@localhost ~]# cat /var/log/secure | grep useradd
|
||
May 30 11:09:15 localhost useradd[7762]: new group: name=user1, GID=1001
|
||
May 30 11:09:15 localhost useradd[7762]: new user: name=user1, UID=1001, GID=1001, home=/home/user1, shell=/bin/bash
|
||
May 30 11:09:18 localhost useradd[7767]: new group: name=user2, GID=1002
|
||
May 30 11:09:18 localhost useradd[7767]: new user: name=user2, UID=1002, GID=1002, home=/home/user2, shell=/bin/bash
|
||
[root@localhost ~]# cat /var/log/secure | grep groupadd
|
||
May 30 11:09:29 localhost groupadd[7772]: group added to /etc/group: name=IT, GID=1003
|
||
May 30 11:09:29 localhost groupadd[7772]: group added to /etc/gshadow: name=IT
|
||
May 30 11:09:29 localhost groupadd[7772]: new group: name=IT, GID=1003
|
||
```
|
||
|
||
### 示例四:查看计划任务cron相关
|
||
|
||
```bash
|
||
[root@localhost ~]# cat /var/log/cron
|
||
May 30 10:15:01 localhost run-parts(/etc/cron.daily)[7516]: finished logrotate
|
||
May 30 10:15:01 localhost run-parts(/etc/cron.daily)[7504]: starting man-db.cron
|
||
May 30 10:15:01 localhost run-parts(/etc/cron.daily)[7715]: finished man-db.cron
|
||
May 30 10:15:01 localhost anacron[7492]: Job `cron.daily' terminated
|
||
May 30 10:35:01 localhost anacron[7492]: Job `cron.weekly' started
|
||
May 30 10:35:01 localhost anacron[7492]: Job `cron.weekly' terminated
|
||
May 30 10:55:01 localhost anacron[7492]: Job `cron.monthly' started
|
||
May 30 10:55:01 localhost anacron[7492]: Job `cron.monthly' terminated
|
||
May 30 10:55:01 localhost anacron[7492]: Normal exit (3 jobs run)
|
||
May 30 11:01:01 localhost CROND[7741]: (root) CMD (run-parts /etc/cron.hourly)
|
||
May 30 11:01:01 localhost run-parts(/etc/cron.hourly)[7741]: starting 0anacron
|
||
May 30 11:01:01 localhost run-parts(/etc/cron.hourly)[7750]: finished 0anacron
|
||
```
|
||
|
||
## 日志系统-rsyslogd
|
||
|
||
### 处理日志的进程
|
||
|
||
`rsyslogd`:绝大部分日志记录,和系统操作有关,安全,认证`sshd,su`,计划任务`at,cron`
|
||
|
||
`httpd/nginx/mysql`等等应用可以以自己的方式记录日志
|
||
|
||
```bash
|
||
[root@localhost ~]# ps aux |grep rsyslogd
|
||
root 6808 0.0 0.2 216408 5016 ? Ssl 09:32 0:00 /usr/sbin/rsyslogd -n
|
||
root 7724 0.0 0.0 112724 988 pts/0 S+ 10:39 0:00 grep --color=auto rsyslogd
|
||
```
|
||
|
||
日志可以存放在本地
|
||
|
||
日志可以存放在远程服务器
|
||
|
||
### 配置文件
|
||
|
||
```bash
|
||
[root@localhost ~]# rpm -qc rsyslog
|
||
/etc/logrotate.d/syslog # 日志轮转(切割)相关
|
||
/etc/rsyslog.conf # rsyslogd的主配置文件
|
||
/etc/sysconfig/rsyslog # rsyslogd相关文件
|
||
```
|
||
|
||
```bash
|
||
[root@localhost ~]# vim /etc/rsyslog.conf
|
||
# 告诉rsyslogd进程 哪个设备(facility),关于哪个级别的信息,以及如何处理
|
||
authpriv.* /var/log/secure
|
||
mail.* /var/log/maillog
|
||
cron.* /var/log/cron
|
||
*.emerg :omusrmsg:*
|
||
authpriv.* * # 所有终端
|
||
authpriv.* @192.168.1.123 # UDP
|
||
authpriv.* @@192.168.1.123 # TCP
|
||
```
|
||
|
||
### 日志类型(facility)
|
||
|
||
| 序号 | Facility | 解释 |
|
||
| :---: | :-----------: | :--------------------------------------------------------: |
|
||
| 0 | kern (kernel) | Linux内核产生的信息,大部分是硬件检测和内核功能的启用 |
|
||
| 1 | user | 用户层级产生的信息 |
|
||
| 2 | mail | 所有邮件收发的相关信息 |
|
||
| 3 | daemon | 系统服务产生的信息 |
|
||
| 4 | auth | 与认证、授权相关的信息,如`login`、`ssh`、`su`等产生的信息 |
|
||
| 5 | syslog | `syslogd`服务产生的信息 |
|
||
| 6 | lpr | 打印相关的信息 |
|
||
| 7 | news | 新闻群组相关的信息 |
|
||
| 8 | uucp | Unix to Unix Copy Protocol 早期Unix系统间的数据交换协议 |
|
||
| 9 | cron | 周期性计划任务程序,如`cron`、`at`等产生的信息 |
|
||
| 10 | authpriv | 与auth类似,但记录的多为帐号相关的信息,如pam模块的调用等 |
|
||
| 16~23 | local0~local7 | 保留给本地用户使用的日志类型,通常与终端交互相关。 |
|
||
|
||
**日志级别**
|
||
|
||
| 级别(日志重要级别) | 解释 |
|
||
| :----------------: | :------------------------------------------: |
|
||
| LOG_EMERG | 紧急,致命,服务无法继续运行,如配置文件丢失 |
|
||
| LOG_ALERT | 报警,需要立即处理,如磁盘空间使用95% |
|
||
| LOG_CRIT | 致命行为 |
|
||
| LOG_ERR(error) | 错误行为 |
|
||
| LOG_WARNING | 警告信息 |
|
||
| LOG_NOTICE | 普通 |
|
||
| LOG_INFO | 标准信息 |
|
||
| LOG_DEBUG | 调试信息,排错才开,一般不建议使用 |
|
||
|
||
|
||
|
||
### 案例:远程管理日志
|
||
|
||
**环境准备:**两台服务器,其中server1模仿生产服务器,server2做为日志服务器。
|
||
|
||
**实验要求:**server1和server2可以通信(建议两边的虚拟网卡都调整成NAT模式)
|
||
|
||
**实验目的:**通过配置rsyslog,使得server1上关于ssh连接的日志发送到server2日志服务器上保存,在server2上可以查看到server1上的ssh日志
|
||
|
||
**注意关闭server1和server2上的firewalld!!**
|
||
|
||
`systemctl stop firewalld`
|
||
|
||
|
||
|
||
**server1上配置:**
|
||
|
||
1. 编辑`/etc/rsyslog.conf`文件
|
||
|
||
```bash
|
||
# 在最下面添加如下字段
|
||
[root@localhost ~]# vim /etc/rsyslog.conf
|
||
:msg,contains,"sshd" @192.168.88.20:514
|
||
|
||
#=====字典解释=====
|
||
- msg 要发送的消息
|
||
- contains,"sshd" 过滤器,过滤所有跟sshd有关的日志
|
||
- @192.168.88.20:514 要发送到日志服务器的地址,其中@表示UDP,@@表示TCP
|
||
```
|
||
|
||
2. 重启rsyslog服务
|
||
|
||
```bash
|
||
[root@localhost ~]# systemctl restart rsyslog
|
||
```
|
||
|
||
**server2上配置:**
|
||
|
||
修改配置文件
|
||
|
||
```bash
|
||
[root@localhost ~]# vim /etc/rsyslog.conf
|
||
# Provides UDP syslog reception
|
||
# 在配置文件中下入下面几行
|
||
# 加载imudp模块,启用对UDP网络接口的支持
|
||
$ModLoad imudp
|
||
$UDPServerRun 514
|
||
|
||
$ModLoad imtcp
|
||
$InputTCPServerRun 514
|
||
|
||
:msg,contains,"sshd" /var/log/remote_ssh.log # 任意位置添加规则,
|
||
|
||
# 重启rsyslog服务
|
||
[root@localhost ~]# systemctl restart rsyslog
|
||
```
|
||
|
||
**测试:**
|
||
|
||
通过MobaXterm远程连接server1
|
||
|
||
通过`tail -f /var/log/remote_ssh.log`来实时检测是否又日志记录发过来
|
||
|
||
|
||
|
||
## 日志文件归档
|
||
|
||
如果我们不管理系统产生的上述各种日志文件,那么久而久之日志就会变成“屎山”。日志文件及内容越堆越多,不仅难以查阅,还会因为单一文件过大而影响新的内容写入的效率
|
||
|
||
`logrotate`就是一个不错的日志处理程序,准确的说是对日志进行“归档”之类的工作
|
||
|
||
## logrotate(日志轮转)
|
||
|
||
- 如果没有日志轮转,日志文件会越来越大
|
||
- 将丢弃系统中最旧的日志文件,以节省空间
|
||
- 事实上`logrotate`是挂在`cron`配置目录`cron.daily`下面的,所以会被`cron`每天执行一次:
|
||
|
||
```bash
|
||
[root@localhost ~]# ll /etc/cron.daily/
|
||
-rwx------. 1 root root 219 10月 31 2018 logrotate
|
||
-rwxr-xr-x. 1 root root 618 10月 30 2018 man-db.cron
|
||
|
||
# 查看logrotate内容
|
||
[root@localhost ~]# cat /etc/cron.daily/logrotate
|
||
#!/bin/sh
|
||
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
|
||
|
||
# 日志轮转状态/var/lib/logrotate/logrotate.status
|
||
# 日志轮转规则按照/etc/logrotate.conf中来
|
||
```
|
||
|
||
- logrotate主配置文件
|
||
|
||
```bash
|
||
[root@localhost ~]# vim /etc/logrotate.conf
|
||
weekly # 多久会执行一次“轮转”,这里设置的是每周一次
|
||
rotate 4 # 轮转后会保留几个历史日志文件,这里是4,也就是说轮转后会删除编号为5的历史日志
|
||
create # 轮转后创建新的空白日志
|
||
dateext # 使用日期而非数字编号作为历史日志的标识进行轮转
|
||
include /etc/logrotate.d # 加载/etc/logrotate.d目录下的配置文件
|
||
/var/log/wtmp { # 对/var/log/wtmp日志的特殊设置
|
||
monthly # 每月进行一次轮转
|
||
create 0664 root utmp # 创建的新的空白日志权限为0664,用户为root,用户组为utmp
|
||
minsize 1M # 原始日志文件超过1M大小才进行轮转
|
||
rotate 1 # 仅保留1个历史日志文件
|
||
}
|
||
/var/log/btmp { # 对/var/log/btmp日志的特殊设置
|
||
missingok # 日志轮转期间任何错误都会被忽略
|
||
monthly # 每月进行一次轮转
|
||
create 0600 root utmp # 创建的新日志文件权限为0600,用户为root,用户组为utmp
|
||
rotate 1 # 仅保留1个历史日志文件
|
||
}
|
||
```
|
||
|
||
- 子配置文件
|
||
|
||
```bash
|
||
[root@localhost ~]# cat /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
|
||
}
|
||
```
|