我开发了一个 shell 脚本,以便在磁盘空间达到 90% 时自动删除日志。
我可以将此 shell 脚本添加到 crontab 作业中。
答案1
如果您压缩文件并保留较少的旧日志而不是花时间创建脚本不是更好吗?这就是 logrotate 存在的原因。
看看你的logrotate.conf
.它应该从这样开始:
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
compress
# packages drop log rotation information into this directory
include /etc/logrotate.d
取消注释该compress
选项,并将 更改rotate
为 3 例如,看看它是否适合您的磁盘空间。它也需要满足您公司的需求。我们有一台服务器,出于法律原因需要将登录信息保留十八个月,因此我们将登录文件更改为每月轮换:
/var/log/wtmp {
monthly
minsize 1M
create 0664 root utmp
rotate 18
}
/var/log/btmp {
missingok
monthly
minsize 1M
create 0600 root utmp
rotate 18
}
如果指向文件或目录,并将参数放在大括号之间,则可以创建特定的旋转规则。
不是特权用户?。这根本不是问题,因为cron
和logrotate
可以配置为无需 root 即可运行: