Linux下Apache日志按日期分割并自动备份
目的:实现服务器A的Apache访问日志和错误日志每天按日期分割为一个文件保存,然后由另一台备份服务器B每天凌晨自动复制服务器A的日志文件并打包压缩备份。
首先要设置服务器A的apache,实现日志文件自动按日期分割,以下为CentOS为例,httpd.conf文件配置如下:以上配置利用了apache的rotatelogs功能实现了站点日志文件每天如20081221的形式保存到指定目录下,rotatelogs的用法可以参考这里。 服务器A设置好之后,就可以去备份服务器B写备份脚本了,这里假设服务器A的IP为:192.168.0.3,脚本如下:
在准备运行以上脚本以前,要先确认两台服务器之间用ssh-keygen命令生成的密钥设置了信任关系,可以参考我之前写的这篇日志:Linux下用SCP无需输入密码获取文件。
然后将该脚本命名为apachelog_backup.sh保存到/var/cron/目录下。
最后用 crontab -e 命令在linux的定时任务中加入自动执行任务,让脚本在每天凌晨12点之后自动执行,如下:
这里我设置了每天零点30分执行脚本。 大功告成。
写完这篇日志后,虽然是实现了自动备份,但是时间长了就会导致备份目录内文件越来越多,不易管理,等有时间再完善一下,让日志文件按年月来分目录保存,不知道rotatelogs可不可以实现,但可以确定apache官方曾推荐过一个叫cronolog的日志分割/轮巡工具可以实现,有兴趣的朋友可以研究下。
另外如果需要用软件来分析apache日志文件的话还需要将其合并,嗯,有时间再写一篇关于日志合并分析的日志。
顶(0)
踩(0)
- 最新评论