遇到一个问题,有一个网站使用了负载均衡。生成的日志文件为3个以前一天的日期为名称的日志。
例如今天为2007-02-02,那么文件名为:
web1-2007-02-01.log
web2-2007-02-01.log
web3-2007-02-01.log
由于此环境是使用windows2003的操作系统,而我以前接触的一直是linux。在linux下有软件可以满足这种要求。。但是windows下我没找到这种软件,所以只好使用批处理来作了。
刚才在坛子里搜索了一下,看到了两段和我要的差不多的脚本。
原贴在
http://www.cn-dos.net/forum/viewthread.php?tid=24593
按照那里面的东西我写了一份脚本,内容如下:
@echo off
Rem 取1天之前的日期,取回放入变量nowdate
echo wscript.echo dateadd("d",-1,date) >%tmp%\tmp.vbs
for /f "tokens=1,2,3* delims=-" %%i in ('cscript /nologo %tmp%\tmp.vbs') do set y=%%i
for /f "tokens=1,2,3* delims=-" %%i in ('cscript /nologo %tmp%\tmp.vbs') do set m=%%j
for /f "tokens=1,2,3* delims=-" %%i in ('cscript /nologo %tmp%\tmp.vbs') do set d=%%k
if %m% LSS 10 set m=0%m%
if %d% LSS 10 set d=0%d%
set nowdate=%y%-%m%-%d%
copy /b web1-%nowdate%.log + web2-%nowdate%.log + web3-%nowdate%.log web-%nowdate%.log
move web-%nowdate%.log d:/web/logs/web-%nowdate%.log
执行的效果有了,但是执行起来速度稍微有点慢。然后按照那个原贴里的方案改为
@echo off
Rem 取1天之前的日期,取回放入变量nowdate
echo wscript.echo dateadd("d",-1,date) >%tmp%\tmp.vbs
for /f "tokens=1,2,3* delims=-" %%i in ('cscript /nologo %tmp%\tmp.vbs') do (
set y=%%i
set m=%%j
set d=%%k
)
if %m% LSS 10 set m=0%m%
if %d% LSS 10 set d=0%d%
set nowdate=%y%-%m%-%d%
copy /b web1-%nowdate%.log + web2-%nowdate%.log + web3-%nowdate%.log web-%nowdate%.log
move web-%nowdate%.log d:/web/logs/web-%nowdate%.log
可是这样改完执行以后没有反应。因为才接触这个、很菜,不明白那里出错了。请各位帮忙指点一下。谢谢
Last edited by bahaiyxl on 2007-2-11 at 05:42 AM ]