论坛首页 Java企业应用论坛

使用批处理备份日志

浏览 4411 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-06-19  
客户要求JBoss日志级别是DEBUG,这个级别的日志,每天估计得有3G的日志产生,服务器的硬盘可吃不消啊,呵呵。。。就想使用备份的机制,把前一天的日志打包,然后删除原文件。这种文本日志,一压缩就很想了,3G压缩完估计也就200M吧。
D:\SystemUtil\WinRAR\Rar a -ag -k -r -s -ibck -df -inul a.rar server.log.%SortYest%*
使用这段代码进行压缩。
1.D:\SystemUtil\WinRAR\Rar:这个是我winrar执行文件的位置。
2.a.rar 这个是压缩完的名字,自动会在a的后面加入当前的日期
3.server.log.%SortYest%* 要压缩的文件
4.%SortYest%这个是前一天的日期
@echo off
FOR /F "TOKENS=1-3 DELIMS=- " %%A IN ('echo %DATE%') do (set Year=%%A&SET Month=%%B&SET Day=%%C)
FOR %%A IN (%Year%)  DO SET Year=%%A
FOR %%A IN (%Month%) DO SET Month=%%A
FOR %%A IN (%Day%)   DO SET Day=%%A
SET SortDate=%Year%%Month%%Day%
FOR %%A IN (%Date%) DO SET Today=%%A
SET DayS=%Day%
IF %DayS% EQU 1 (
SET YesterY=%Year%
CALL :RollMonth
) ELSE (
SET /A YesterD=%DayS% - 1
SET YesterM=%Month%
SET YesterY=%Year%
)
IF %YesterD% LSS 10 SET YesterD=0%YesterD%
SET SortYest=%YesterY%-%YesterM%-%YesterD%
CALL ECHO %SortYest%

ENDLOCAL
GOTO:EOF
:RollMonth
IF %Month%==01 (
SET YesterD=31
SET YesterM=12
SET /A YesterY = %Year% - 1
)
IF %Month%==02 (
SET YesterD=31
SET YesterM=01
)
IF %Month%==03 (
SET YesterD=28
SET YesterM=02
CALL :LeapYear
)
IF %Month%==04 (
SET YesterD=31
SET YesterM=03
)
IF %Month%==05 (
SET YesterD=30
SET YesterM=04
)
IF %Month%==06 (
SET YesterD=31
SET YesterM=05
)
IF %Month%==07 (
SET YesterD=30
SET YesterM=06
)
IF %Month%==08 (
SET YesterD=31
SET YesterM=07
)
IF %Month%==09 (
SET YesterD=31
SET YesterM=08
)
IF %Month%==10 (
SET YesterD=30
SET YesterM=09
)
IF %Month%==11 (
SET YesterD=31
SET YesterM=10
)
IF %Month%==12 (
SET YesterD=30
SET YesterM=11
)
GOTO:EOF

:LeapYear
SET /A mod400 = %Year% %% 400
SET /A mod100 = %Year% %% 100
SET /A mod4   = %Year% %% 4
IF %mod400% EQU 0 (
SET YesterD=29
) ELSE (
IF %mod100% EQU 0 (
  SET YesterD=28
) ELSE (
  IF %mod4% EQU 0 (
   SET YesterD=29
  ) ELSE (
   SET YesterD=28
  )
)
)
GOTO:EOF
:Syntax
ECHO PREV: Get yesterday


其他命令参考如下:
a 添加文件到压缩文件
c 添加压缩文件注释
ch 改变压缩文件参数
cv 转换压缩文件
cw 写入一个压缩文件注释到文件
d 从压缩文件删除文件
e 从压缩文件解压压缩,忽略路径 
f 刷新压缩文件中的文件
i 在压缩文件中查找字符串
k 锁定压缩文件
m 移动文件和文件夹到压缩文件
r 修复受损的压缩文件
rc 重建丢失的卷
rn 重命名压缩文件
rr[N] 添加数据恢复记录
rv[N] 创建恢复卷
s[name] 转换压缩文件成为自解压文件类型 
s- 删除自解压模块
t 测试压缩文件
u 从压缩文件中更新文件
x 以完整路径名称从压缩文件解压压缩 
   发表时间:2009-06-20  
windows上有工具能开3G的log文件吗?你这log压缩了以后以后怎么查呢?
0 请登录后投票
   发表时间:2009-06-20  
我是按50m一个文件这么来存的,扩展了jboss中的日志方式
0 请登录后投票
   发表时间:2009-10-07  
查找前一天的文件可以用forfiles
这个命令在windows 2003有效
forfiles /p "查找目录" /M "*server.log*" /C "cmd /c del @path" /D -1

顺便送上从我Windows 2003 R2 ENT SP2系统里拷贝出来的forfiles
http://www.jsharer.com/blog/295453.htm
JS最近没办法直接传文件地址了...里面附带了forfiles的帮助
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics