如何实现linux自动压缩指定日志

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实现linux自动压缩指定日志相关的知识,希望对你有一定的参考价值。

/bin/bash
# logs zip
dir=你的日志路径
log=日志名称
bak_dir=压缩后的日志存放位置
echo "###########开始备份###################"
tar -zcvf $bak_dir/bak_$(date "+%Y%m%d_%H%M").tar.gz $dir/$log
参考技术A 写一个脚本,作用是压缩指定日志到某个目录下
然后把脚本放到cron job中定期执行就可以了

Linux自带的logrotate 来管理日志

起因:nginx日志以及服务日志竟然高达57G

  大家可能都有管理日志的需要,比如定时压缩日志,或者当日志超过一定大小时就自动分裂成两个文件等,我发现其实Linux自带的logrotate命令就能够实现这样的功能。

  

  为了使用它,主要有两个地方需要修改一下:一个是/etc/logrotate.conf,另一个是/etc/logrotate.d/下面的文件。

你既可以在logrotate.conf中直接定义如何处理你的log文件,也可以在/logrotate.d/下面针对自己的log新建一个对应的文件来定义处理log的行为。

cat << EOF > /etc/logrotate.d/smartpub
/data/smartpub/logs/nginx/* {
  size 500M
  rotate 10
  dateext
  compress
}

/data/smartpub/logs/uwsgi/* {
  size 500M
  rotate 10
  dateext
  compress
}
EOF

默认的logrotate是一天运行一次

以上是关于如何实现linux自动压缩指定日志的主要内容,如果未能解决你的问题,请参考以下文章

如何清理SQL Server中的事务日志

linux samba 如何实现指定用户看见此文件夹,而其他用户无法看见。

linux samba 如何实现指定用户看见此文件夹,而其他用户无法看见。

linux下如何做到自动远端拷贝文件

shell脚本怎么实现日志备份到本地Linux系统

java如何实现把一个大图片压缩到指定大小的图片且长宽比不变