定期清理linux服务器日志文件的几个思路
定期清理linux服务器日志文件的几个思路
1,在跑批程序中,用java代码调用shell脚本;
2,在跑批程序中,用纯java代码实现,也就是使用java的文件操作类File;
3,纯shell脚本方式,使用linux服务器的调度程序调用shell脚本;
结合最近的项目,这里提供一个示例。首先,我们是在跑批项目中实现的定期清理日志功能,
因为我们有跑批项目,使用的是Control M进行调度,所以这种方式还是很方便的。
第一步:写shell脚本
find /home/logs/ -mtime +30 -name "log" -exec rm -rf {} \;
脚本其实很简单,一行代码就够了,把这个代码放在一个shell文件中,然后放在服务器的
指定目录下,等待java程序调用。
第二步:写java代码,调用shell脚本,示例代码仅提供思路,请大家自己调试
// 设置可执行权限
String commond = "chmod 777 clearLogFileOnTimesh";
Process proc = RuntimegetRuntime()exec(commond);
procwaitFor();
// 执行shell脚本
commond = "bash clearLogFileOnTimesh";
proc = RuntimegetRuntime()exec(commond);
第三步:配置Control M,进行作业调度
关于Control M的配置不再赘述,主要就是设置跑批程序的执行时间,以及一些其他参数。
如何收集Domino服务器日志
在论坛已久,发现用户提交问题,太过于简单,很多就是说明现象,不太便于分析和理解。
来论坛发帖大部分都是Domino管理员和开发者,希望更加细致和专业,同时提高自己分析能力。
以下来自ibm的邮件或者帮助:
1 当Windows平台上服务器挂起(非HTTP)时,收集数据的流程:
1 在服务器的控制台上输入
set config CONSOLE_LOG_ENABLED=1
set config DEBUG_THREADID=1
set config DEBUG_CAPTURE_TIMEOUT=1
set config DEBUG_SHOW_TIMEOUT=1
2 当服务器挂起,在Domino控制台上执行如下命令:
sh server
sh task debug
sh task time
sh user
sh stat
3 用Dos命令手工收集nsd日志,当nsd完成收集后,请在五分钟内执行'dump'命令对所有Domino服务器线程做另一个快照。
下面是如何收集nsd的提示:
I 打开一个dos命令窗口
II 进入domino data目录,例如"cd c:\lotus\domino\"
III 在Domino程序目录下执行nsd,例如"c:\lotus\domino\nsd"
当nsd运行结束,命令行中的提示符会更改为:
nsd>
IV 五分钟后执行dump命令,用来dump线程堆栈。在问题期内至少收集两次dump
V 退出Domino服务器,如果可以,可在Domino控制台输入'q'或者'quit'命令来退出Domino,如果服务器不能正常退出,就需要在"nsd>"提示符下用'kill'这个命令来杀掉所有Domino进程。
4 需要收集的数据有:
- nsd log, 文件名: nsd_<plaftform>_<ServerName>_date@timelog, date/time 应是nsd运行的时刻
- console log, 文件名: console_name_yyyy_mm_dd@hh_mm_sslog,the date/time 应是服务器最后一次启动的时刻
- SEMDEBUG txt, 文件名: SEMDEBUG_name_yyyy_mm_dd@hh_mm_ssTXT, the date/time 应是服务器最后一次启动的时刻
上面的文件位于Domino Data目录,IBM_TECHNICAL_SUPPORT 子目录
2 Lotus Traveller服务器日志收集
收集服务器日志
本主题包含有关收集日志文件和信息以协助 Lotus Notes® Traveler 支持人员解决服务器安装、启动和运行时问题的指示信息。
提高记录级别
执行以下操作,为 Lotus Notes Traveler 服务器任务提高记录级别、增加日志文件大小和最大活动日志文件数。请注意,可能不必增加日志文件大小或最大活动文件数。
在 IBM® Lotus® Domino® Administrator 中,打开 Lotus Notes Traveler 服务器的服务器配置文档。
在文档中单击 Lotus Traveler 选项卡,然后单击编辑服务器。
将记录级别更改为最详细。
将活动日志的最大文件大小更改为所需的最大文件大小。
将最大活动日志文件数更改为所需的最大活动日志数。
保存并关闭服务器文档。
等几分钟让更改生效,然后重现问题。
注: 还可以为每个用户逐个设置记录以节约输入/输出空间和带宽。有关记录命令的详细信息,请参阅控制台命令。
收集日志
以下文件和目录包含记录或配置信息,这些信息在对服务器启动/运行时问题进行故障诊断时很有用。以 Zip 或 tar 格式压缩下面指定的所有文件和目录。当指示目录时,包括整个目录。
\Lotus\Domino\notesini
\Lotus\Domino\data\servletsproperties
\Lotus\Domino\data\traveler\cfg\
\Lotus\Domino\data\traveler\logs\
如果问题涉及在创建 \traveler 目录前安装失败,请提供以下临时日志(如果存在):%TEMP%\Idatetime\Windows\NTSInstalllog(例如 C:\Documents and Settings\Administrator\Local Settings\Temp\I1206535899\Windows\NTSInstalllog)。
如果问题涉及 Domino 服务器崩溃,另请提供以下日志:
用于捕获崩溃的 NSD 日志,位于 \Lotus\Domino\data\IBM_TECHNICAL_SUPPORT\NSDdatetimelog 中
Javacore 文件,根据具体安装情况,其位置可能会有不同,但或许能在 \Lotus\Domino\javacoredatetimetxt 中找到
注: 为了不影响性能,在收集日志并解决问题后,建议您将日志级别恢复到原来的设置。
二 以上主要收集的是服务器日志,Notes客户端也是类似
本地存在lognsf,同时在数据目录下也存在:
data\IBM_TECHNICAL_SUPPORT\
和服务器类似,同样用来分析Notes客户端问题。
0条评论