2

我正在运行以下脚本来备份我的 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

而且我无法找到导致它的原因。任何的想法?

4

2 回答 2

2

logrotate是你的朋友

于 2009-07-21T14:31:47.310 回答
1

我会检查:

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

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

另外,我无法弄清楚您的第二个命令。access_log072某处是否有文件,或者您的命令是否以某种方式被截断?

于 2009-07-21T14:39:22.930 回答