如何让logrotate定时执行
时间: 2024-06-22 07:04:04 浏览: 101
Logrotate是一个Linux系统工具,用于定期管理日志文件,将其归档、压缩并删除过期的日志,以节省磁盘空间和优化性能。以下是设置logrotate定时执行的基本步骤:
1. **安装logrotate(如有必要)**:
在大多数Linux发行版中,logrotate已经预装,但如果没有,你可以使用包管理器安装,如在Ubuntu/Debian上运行 `sudo apt-get install logrotate`。
2. **编辑logrotate配置文件**:
Logrotate的配置文件通常位于 `/etc/logrotate.d` 目录下,每个要管理的日志文件或目录对应一个配置文件。例如,你可能有一个名为 `myapp.log` 的文件,可以创建一个名为 `myapp.log` 的新文件,内容如下:
```bash
/var/log/myapp.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
}
```
这里,`daily` 指定每天执行,`rotate 7` 表示保留7天的日志副本,`compress` 后续的日志会被压缩,`delaycompress` 保证当天的日志被处理前不被压缩,`missingok` 如果日志文件不存在不会报错,`notifempty` 只有当文件为空时才进行删除操作。
3. **配置cron定时任务**:
使用crontab来设置logrotate的定时执行。打开crontab编辑器,输入命令:
```bash
crontab -e
```
在文件底部添加一行,例如每小时执行一次:
```bash
*/1 * * * * /usr/sbin/logrotate /etc/logrotate.conf
```
或者按每天的特定时间执行,如每天凌晨1点:
```bash
0 1 * * * /usr/sbin/logrotate /etc/logrotate.conf
```
4. **重启或测试logrotate服务**:
修改配置后,你需要重启logrotate服务或者运行一次手动检查来应用新的设置:
```bash
sudo service logrotate restart
/usr/sbin/logrotate /etc/logrotate.conf
```
阅读全文