zoukankan      html  css  js  c++  java
  • windows服务器自动删除日志文件

    背景:

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

    原因分析:

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

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

    解决方案:

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

    步骤:

    1、新建一个bat脚本。

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

    具体操作

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

    内容:

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

    脚本意思为:

    路径:为E:workinglogs 的下 以匹配 .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的是 控制面板-管理工具-任务计划程序)

    修改服务器密码会导致任务执行失败

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

  • 相关阅读:
    asp.net的Context.Cache缓存过期策略
    sql语句执行时算术运算导致溢出。
    sqlserver进行join的方式选择
    Apollo配置中心
    sqlserver的left join优化
    iis设置上传文件大小限制
    Android中的颜色值
    Network authentication method and device for implementing the same
    MongoDB GridFS
    MongoDB 正则表达式
  • 原文地址:https://www.cnblogs.com/xiaohuhu/p/15124303.html
Copyright © 2011-2022 走看看