运维编排场景系列-----定时清理Windows服务器日志
本文介绍在运维编排OOS的控制台,通过OOS服务下的定时运维功能,定时执行一个功能性模版,实现某些需定时管理服务器或定时管理其它服务的需求。
应用背景
运行中的实例内部运行了很多服务程序,随时间的推移系统会产生大量的日志文件或一些垃圾文件。其中产生的某些日志文件可能并无实际作用,时间久了产生越来越多的日志文件会占用实例中很大的存储空间,所以需要定期清理无用的日志文件,优化实例存储空间。
前提条件
- 实例状态为运行中(
Running
)
模版介绍:
模版功能:
模版参数:
参数 | 说明 | 示例 |
---|---|---|
LogFilePath | 存放日志文件的绝对路径。 | C:\Users\Administrator\testlogway |
LogKeepTime | 清理几天之前的日志文件。 | 5 |
Targets | 根据实例标签(tags)或实例ID(InstanceId)选定需要的实例。 | i-11111111111 |
RateControl | 固定参数。 - 速率控制类型:并发控制 - 并发速率:1 - 最大错误次数:0 | |
OOSAssumeRole | 可选参数。 - (默认设置)当前账号的已有权限:执行您使用的账号的权限动作。请确保您拥有创建自定义镜像涉及的所有ECS API调用权限。 - 指定RAM角色,使用该角色的权限:如果指定了RAM角色名称,OOS扮演该RAM角色执行运维任务。 | 当前账号的已有权限 |
模版内容:
(注:模版设置的测试删除的文件名为模糊匹配的方式,本模版匹配的名称为“ info.log. ”,请根据实际的日志文件名称更改模版内的需要删除文件的模糊名称。)
FormatVersion: OOS-2019-06-01 Description: en: Compared to the current time, specify the period of time to keep log files and delete log files outside the time period. zh-cn: 相比于当前时间,指定保留日志文件的时间段,并删除时间段之外的日志文件。 Parameters: LogFilePath: Type: String Description: en: Log file storage location. zh-cn: 日志文件存放位置。 LogKeepTime: Type: Number Description: en: How long to pre-retain log files compared to the current time. zh-cn: 相比于当前时间,预保留日志文件的时间天数。 Default: 5 Targets: Type: Json AssociationProperty: Targets AssociationPropertyMetadata: ResourceType: 'ALIYUN::ECS::Instance' RateControl: Description: en: Concurrency ratio of task execution. zh-cn: 任务执行的并发比率。 Type: Json AssociationProperty: RateControl Default: Mode: Concurrency MaxErrors: 0 Concurrency: 10 OOSAssumeRole: Description: The RAM role to be assumed by OOS. Type: String Default: OOSServiceRole RamRole: '{{ OOSAssumeRole }}' Tasks: - Name: getInstance Description: en: Views the ECS instances. zh-cn: 获取ECS实例。 Action: 'ACS::SelectTargets' Properties: ResourceType: 'ALIYUN::ECS::Instance' Filters: - '{{ Targets }}' Outputs: instanceIds: Type: List ValueSelector: 'Instances.Instance[].InstanceId' - Name: runCommand Action: 'ACS::ECS::RunCommand' Properties: commandContent: |- $pathExistOrNot = Test-Path -Path "{{ LogFilePath }}" if ($pathExistOrNot) { $timeOutDay = {{ LogKeepTime }} $filePath = "{{ LogFilePath }}" $allFile = Get-ChildItem -Path $filePath foreach($file in $allFile) { $daySpan = ((Get-Date) - $file.LastWriteTime).Days if ($daySpan -gt $timeOutDay -and $file.FullName.contains("info.log.")) { Remove-Item $file.FullName -Recurse -Force echo "delete:" $file.FullName } } } else { echo "path not exist" } instanceId: '{{ ACS::TaskLoopItem }}' commandType: RunPowerShellScript Loop: Items: '{{ getInstance.instanceIds }}' RateControl: '{{ RateControl }}' Outputs: commandOutputs: AggregateType: 'Fn::ListJoin' AggregateField: commandOutput Outputs: commandOutput: Type: String ValueSelector: invocationOutput Outputs: commandOutput: Type: String Value: '{{ runCommand.commandOutputs }}'
模版执行效果:
- 未执行上述模版前,实例内测试文件夹下的文件如下所示。
- 执行模版后测试文件下模糊匹配的日志文件全部被删除。
控制台操作步骤
步骤一:创建模版
- 请访问运维编排OOS的控制。单击我的模版,单击创建模板按钮,选取空白模板。将上述提供的模板粘贴到yaml栏,输入名称DeleteWindowsLogFile或自定义名称,点击创建模板。
步骤二:设置定时触发及参数
- 单击定时运维,在定时运维内部,设置模版的执行周期频率。操作步骤如下图所示。
- 在选择模版下,选择我的模版,通过搜索框找到刚刚创建完成的模版。
- 在定时运维下的设置参数一栏,设置模版需要的参数。参数设置完成单击立即执行。
步骤三:查看执行运行情况
- 在执行管理中查看创建的运维任务。
系列文章
主题文章
最佳实践
玩转运维编排服务的权限:Assume Role+Pass Role
阿里云运维编排新功能:一键批量克隆ECS
批量在多台ECS内执行命令
场景系列
运维编排场景系列----更新ECS镜像
运维编排场景系列----给ECS实例自动打TAG
运维编排场景系列----从实例中拷贝文件到OSS
运维编排场景系列----给实例加到SLS机器组
运维编排场景系列----检测MFA功能状态
运维编排场景系列----每日统计多Region实例的运行状态
运维编排场景系列----如何使用jq
运维编排场景系列----分批到机器上运行命令
运维编排场景系列----更新镜像后自动更新伸缩配置镜像
运维编排场景系列----向Linux实例上传文件
运维编排场景系列----运行远端shell脚本
运维编排场景系列----在ECS实例上运行Ansible-playbook
运维编排场景系列----下载JVM堆栈到OSS
运维编排系列场景----将实例的固定公网IP转换为其它新EIP
运维编排场景系列----自动定时升级临时带宽
运维编排场景系列----批量更新云助手客户端
运维编排系列场景----批量释放实例
运维编排场景系列----ECS实例系统快照下载到本地
运维编排场景系列----批量更换系统盘
运维编排场景系列----自动创建多个区域同类型存储空间
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
CUBA Platform 7.1.4 发布,企业级应用开发平台
CUBA Platform 7.1.4 发布,这次发布主要包含对 CUBA Core 以及报表等扩展组件的 Bug 修复,共计20多项,推荐升级。 主要的 Bug 修复和改进: 1. 升级 Spring 框架到 5.1.13 ,升级 Spring Security 到 5.1.7 ,解决 Spring中已知的安全问题 2. 修正了在进行了 commit 和 merge 操作后 DataContext 会丢失未获取的引用信息的问题 3. 修正了Table 组件 getSelected 方法返回结果不一致的问题 4. 报表扩展:更新 YARG 版本到 2.1.8 5. FTS扩展:增加属性配置以便开发人员可以选择性地启用文件内容索引 详细修复列表请参阅:已解决问题列表 CUBA Platform 是一款开源且免费的企业级应用开发框架,已有将近10年的发展历史,由俄罗斯的 Haulmont 公司开发。 CUBA Platform 已登陆中国,为中国开发人员提供了中文网站、中文学习资源、中文开发文档以及中文论坛,社区活跃度日益提升。有任何开发问题可访问 CUBA 平台中国官方网站(https:...
- 下一篇
EFK教程(5) - ES集群开启用户认证
基于ES内置及自定义用户实现kibana和filebeat的认证 作者:“发颠的小狼”,欢迎转载 目录 ▪ 用途▪ 关闭服务▪ elasticsearch-修改elasticsearch.yml配置▪ elasticsearch-开启服务▪ elasticsearch-建立本地内置用户▪ kibana-创建私钥库▪ kibana-WEB界面确认用户▪ filebeat-在WEB界面创建角色及用户▪ filebeat-服务器上创建密钥库▪ filebeat-配置filebeat.yml▪ 测试▪ 附录 用途 前情提要: ▷ 在第一篇《EFK教程 - 快速入门指南》中,阐述了EFK的安装部署,其中ES的架构为三节点,即master、ingest、data角色同时部署在三台服务器上。▷ 在第二篇《EFK教程 - ElasticSearch高性能高可用架构》中,阐述了EFK的data/ingest/master角色的用途及分别部署三节点,在实现性能最大化的同时保障高可用。▷ 在第三篇《EFK教程(3) - ElasticSearch冷热数据分离》中,阐述了ES多实例部署,将不同热度的数据存在不...
相关文章
文章评论
共有0条评论来说两句吧...