Shell 日志文件滚动
我有一个自定义脚本正在运行,我想将脚本的输出和几个执行阶段重定向到日志文件 我的要求是-当日志文件的大小超过20MB时,我会将内容移动到一个新文件中,我的脚本会重新创建日志文件。在任何时候,我都会有一个最近日志内容的备份。我试图提出以下逻辑:Shell 日志文件滚动,shell,Shell,我有一个自定义脚本正在运行,我想将脚本的输出和几个执行阶段重定向到日志文件 我的要求是-当日志文件的大小超过20MB时,我会将内容移动到一个新文件中,我的脚本会重新创建日志文件。在任何时候,我都会有一个最近日志内容的备份。我试图提出以下逻辑: if [ -e "$logfile" ] then logsize=ls -l $logfile |awk '{print $5}' ls -l $logfile |awk '{print $5}' if [ "$logs
if [ -e "$logfile" ]
then
logsize=ls -l $logfile |awk '{print $5}'
ls -l $logfile |awk '{print $5}'
if [ "$logsize" -gt 2097152 ]
then
mv $logfile $(date +"%Y%m%d%H%M").log
touch $logfile
fi
else
touch $logfile
fi
我想听听专家们的想法,如果有其他有效的方法来完成这项任务,请告诉我。我认为您应该使用
logrotate
命令,或者构建自定义脚本
读一读这个
您的需求的示例配置如下所示:
/var/log/logfile {
missingok
size 20M
rotate 5
}感谢Ander2提供的意见