Apache日志轮换脚本

时间:2009-07-21 14:26:59

标签: apache scripting rotation logging

我运行以下脚本来备份我的apache日志

#!/bin/sh
dt=`date +%m%d%Y`
cp /var/log/httpd/domainname/www/error_log /var/log/httpd/domainname/www/oldlogs/error_log$dt
cat /dev/null > /var/log/httpd/domainname/www/error_log
cp /var/log/httpd/domainname/www/access_log /var/log/httpd/domainname/www/oldlogs/access_log$dt
cat /dev/null > /var/log/httpd/domainname/www/access_log

这是通过cron安排的。所以每天晚上都会备份和清空日志。但是,第二天早上我总是在日期之后获得带有奇怪字符的文件

[me@computer oldlogs]# ls
access_log07202009??  access_log07212009??  error_log07202009??  error_log07212009??

[me@computer oldlogs]#cat access_log072
access_log07202009^M^Maccess_log07212009^M^M

我无法找到导致它的原因。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

logrotate是你的朋友

答案 1 :(得分:1)

我正在检查:

  • 来自cron作业(${dt})内的echo "${dt}" | od -xcb >/tmp/qq变量;和
  • 实际脚本本身(od -xcb scriptname);

查看是否在任何地方生成了奇怪的字符。

另外,我无法弄清楚你的第二个命令。那里有某个access_log072文件,或者你的命令被某种方式截断了吗?