利用批处理对日志归档

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

在服务器的管理中,日志的归档也是工作中重要的部分。日志膨胀不仅会浪费磁盘空间,严重时甚至导致系统崩溃。

使用下面的批处理配合计划任务,将会使管理日志自动化。下面的脚本采用保留最近7天的日志留作查看,其他的压缩备份,保留最近2个月的日志。

1.复制代码另存为compresslogs.bat

 
  1. @echo off  
  2.  
  3. rem 以下是forfiles注释  
  4. rem /p Path表明要从哪里开始搜索  
  5. rem /m SearchMask按照SearchMask搜索文件,默认*.*  
  6. rem /s指示forfiles在子目录中搜索。  
  7. rem /d与当前日期的差值,+5为后5天,-5为前5天  
  8. rem /c在每个文件上运行指定的Command  
  9. rem /m SearchMask按照 SearchMask 搜索文件,默认*.*  
  10.  
  11. rem 以下是winrar参数注释  
  12. rem a添加文件到压缩文件  
  13. rem -m5设置压缩级别(0-存储...3-默认...5-最大)  
  14. rem -df压缩后删除文件  
  15. rem -ep从名称中排除路径  
  16.  
  17. rem 调用C:\Program Files\WinRAR\Rar.exe将E:\logs目录下7天前所有的*.log文件(含子目录文件)用winrar进行压缩,压缩率为最大,压缩后删除源文件。  
  18. for /f "tokens=1" %%a in ('forfiles /P E:\logs /M "*.log" /S /D -7 /C "cmd /c echo @path"') do "C:\Program Files\WinRAR\Rar.exe" a -m5 -df -ep %%a.rar %%a  
  19.  
  20. rem 删除E:\logs目录下60天前备份的rar文件。  
  21. for /f "tokens=1" %%a in ('forfiles /P E:\logs /M "*.rar" /S /D -60 /C "cmd /c echo @path"') do del %%a  
  22.  
  23. pause>nul0> 

2.1使用下面的bat将compresslogs.bat添加到计划任务,使用system权限。

SCHTASKS /Create /tn CompressLogs /tr D:\CompressLogs.bat /ru SYSTEM /sc DAILY /st 03:30:00

rem /tn CompressLogs定义计划任务名字为CompressLogs

rem /tr D:\CompressLogs.bat定义计划任务程序执行路径

rem /ru SYSTEM定义使用system执行该程序

rem /sc DAILY定义为每日执行

rem /st 03:30:00定义开始时间为凌晨03:30:00

 

2.2或者你也可以使用vbs将compresslogs.bat添加到计划任务,使用system权限。

 
  1. strComputer = "." 
  2. Set objWMIService = GetObject("winmgmts:" _  
  3.     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")  
  4.  
  5. Set objNewJob = objWMIService.Get("Win32_ScheduledJob")  
  6. strcmd = "cmd /c d:\bat\compresslogs.bat" 
  7.  
  8. errJobCreated = objNewJob.Create _  
  9.     (strcmd, "20100101033000.000000+480", True , 1 OR 2 OR 4 OR 8 OR 16 OR 32 OR 64, , , JobID)   
  10. Wscript.Echo errJobCreated 

注:使用bat和vbs的区别就是bat添加的tasks可以修改,vbs添加的tasks为不可修改状态。



本文转自yangye1985 51CTO博客,原文链接:http://blog.51cto.com/yangye/465759,如需转载请自行联系原作者


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
6月前
|
存储 运维 应用服务中间件
[运维日志] Web 服务器日志依日期归档(Powershell 实现,附源代码)
[运维日志] Web 服务器日志依日期归档(Powershell 实现,附源代码)
147 0
|
15天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的控制文件与归档日志文件
本文介绍了Oracle数据库中的控制文件和归档日志文件。控制文件记录了数据库的物理结构信息,如数据库名、数据文件和联机日志文件的位置等。为了保护数据库,通常会进行控制文件的多路复用。归档日志文件是联机重做日志文件的副本,用于记录数据库的变更历史。文章还提供了相关SQL语句,帮助查看和设置数据库的日志模式。
【赵渝强老师】Oracle的控制文件与归档日志文件
|
6月前
|
SQL Oracle 关系型数据库
oracle11g SAP测试机归档日志暴增排查(二)
oracle11g SAP测试机归档日志暴增排查(二)
328 1
|
6月前
|
Oracle 关系型数据库 Shell
oracle11g SAP测试机归档日志暴增排查(一)
oracle11g SAP测试机归档日志暴增排查(一)
79 1
|
3月前
|
SQL Oracle NoSQL
实时计算 Flink版操作报错合集之报错“找不到对应的归档日志文件”,怎么处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
3月前
|
SQL Oracle 关系型数据库
"揭秘!一键解锁Oracle日志清理魔法,让海量归档日志无处遁形,守护数据库健康,告别磁盘空间告急噩梦!"
【8月更文挑战第9天】随着Oracle数据库在企业应用中的普及,归档日志管理对保持数据库健康至关重要。归档日志记录所有更改,对数据恢复极为重要,但也可能迅速占用大量磁盘空间影响性能。利用Oracle提供的RMAN工具,可通过编写Shell脚本来自动清理归档日志。脚本包括设置环境变量、连接数据库、检查和删除指定时间前的日志,并记录执行情况。通过Cron作业定时运行脚本,可有效管理日志文件,确保数据库稳定运行。
102 7
|
4月前
|
存储 SQL Oracle
关系型数据库Oracle归档日志备份
【7月更文挑战第19天】
69 5
|
5月前
|
SQL Oracle 关系型数据库
探索 Linux 命令 `db_archive`:Oracle 数据库归档日志的工具
探索 Linux 中的 `db_archive`,实际与 Oracle 数据库归档日志管理相关。在 Oracle 中,归档日志用于恢复,当在线重做日志满时自动归档。管理员可使用 SQL*Plus 查看归档模式,通过 `RMAN` 进行备份和恢复操作。管理归档日志需谨慎,避免数据丢失。了解归档管理对 Oracle 管理员至关重要,确保故障时能快速恢复数据库。
|
6月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之在读取Oracle归档日志时出现日志数量大幅增加的情况如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
108 1
|
6月前
|
Oracle 关系型数据库
下一篇
无影云桌面