windows服务器自动删除日志文件

背景:

           有一天发现一系统程序突然终止了,发出了系统异常邮件。然后就去服务器看原因,原因竟然是服务器硬盘被撑爆。

原因分析:

        1、没有对服务器硬盘空间做监控;

           2、我们的产生的日志文件过于庞大,又没有做及时删除。

解决方案:

        为了一劳永逸的解决硬盘空间问题,我们对服务器日志文件进行定时删除处理,只保留最近一个月的日志文件。

步骤:

      1、新建 一个bat脚本

      2、添加到window执行计划中,进行每日执行。

具体操作

         1、新建一个  del_before_30days.bat  文件。

         内容: 

  forfiles -p "E:\working\logs" -s -m *.log -d -30 -c "cmd /c del @path"
 forfiles -p "E:\working\logs" -s -m *.log -d -30 -c "cmd /c del @path"

 脚本意思为:

          路径:为E:\working\logs 的下   以匹配  .log 的文件,删除30天前的日志文件。

   forfiles 命令的用法及参数:
   forfiles /p <目标目录名> /d <天数> /c <执行的命令>

/p 指定的路径 

/s 包括子目录 

/m 查找的文件名掩码 

/d 指定日期,有绝对日期和相对日期, 此处-7指当前日期 的7天前   

/c 运行的命令行   表示为每个文件执行的命令。命令字符串应该用双引号括起来。           

                        默认命令是 "cmd /c echo @file"。下列变量

                        可以用在命令字符串中:

                        @file    - 返回文件名。

                        @fname   - 返回不带扩展名的文件名。

                        @ext     - 只返回文件的扩展。

                        @path    - 返回文件的完整路径。

                        @relpath - 返回文件的相对路径。

                        @isdir   - 如果文件类型是目录,返回 "TRUE"; 如果是文件,返回 "FALSE"。

                        @fsize   - 以字节为单位返回文件大小。

                        @fdate   - 返回文件上一次修改的日期。

                        @ftime   - 返回文件上一次修改的时间。

 

 


     2、添加到windows的任务计划程序。

          我的电脑——>右键——>管理——>系统工具—任务计划程序———

       (win10的是  控制面板-管理工具-任务计划程序)

        (winxp  控制面板-任务计划)

          创建基本任务

          定义好的名字 —定义每天定时删除。即可。

     

 

2018/02/08 10:11 更新问题
莫名的日志一直在堆积,日志已经大量占用硬盘,是一个隐患 ,怀疑是自己之前的自动删除日子的脚本 执行失败?还是遗漏了删除该文件夹下的日志。
发现都没有问题,去查看该计划,发现有执行失败报错信息
显示无法正确登录,导致执行删除任务失败。
才想起前一段时间, 机房把所有服务器的密码已经变更了
因为服务器密码全部更改。导致删除日志的计划任务 执行失败。
只好重新设置密码 进行执行。看来以后多了一个人任务了。

 以上仅是个人操作方案,有好的方案,请路过的朋友指点一二,在下万分感激。

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(工具技巧,IT职场中—快速入门必会技能)