当前位置: 首页 > article >正文

运维提效实战:用 Ansible+Cron 搞定日志自动清理,再也不用半夜爬起来删日志了

前言作为常年和服务器打交道的运维人估计没人没经历过半夜被磁盘爆满告警吵醒的崩溃 —— 远程登服务器、挨个找日志文件、手动删旧日志一套操作下来人彻底清醒回头还得担心误删关键文件。其实这类重复又机械的运维活儿完全没必要耗人精力今天就跟大家分享一套我在生产环境实测好用的日志自动清理方案用 AnsibleCron 搭起自动化框架一次配置几百台服务器都能自动搞定日志清理彻底告别 “人肉运维”。1.什么是Ansible为何选择AnsibleAnsible是一款开源的自动化运维工具旨在简化配置管理、应用部署、任务编排和IT编排等操作。其核心设计理念是“简单、可靠、无侵入”通过声明式语言实现对大规模基础设施的高效管控。在传统运维模式下面对数百台服务器的批量操作往往依赖脚本循环执行SSH命令不仅效率低下还难以保证执行的一致性与可追溯性。Ansible的出现有效解决了这一痛点使运维人员能够以一条命令完成跨节点的标准化操作。核心优势无代理架构Ansible无需在目标主机上安装额外客户端或代理程序仅依赖标准SSH服务即可完成通信与指令下发。这显著降低了系统开销与维护复杂度同时避免了因中心化代理服务故障导致的全局性风险。基于SSH的安全通信利用成熟的SSH协议进行连接天然支持密钥认证、跳板机、堡垒机等企业级安全策略确保操作过程的安全合规。幂等性保障Ansible的模块设计遵循幂等原则——无论Playbook被执行多少次系统最终状态始终保持一致。这一特性对于生产环境中的配置修复、状态校验和持续同步至关重要。YAML驱动的声明式语法使用结构清晰、易于阅读的YAML格式编写Playbook大幅降低学习成本提升协作效率与可维护性。丰富的模块生态Ansible内置数千个模块覆盖操作系统、网络设备、数据库、中间件及主流云平台支持从基础资源管理到复杂业务编排的全场景自动化需求。凭借上述特性Ansible已成为DevOps实践中广泛采用的自动化引擎助力企业实现高效、可靠、可重复的基础设施即代码管理。2.在Centos7上安装ansible更新所有系统软件包yum update-y安装EPEL仓库提供 Ansible 包yuminstall-yepel-release安装ansbile验证是否安装成功ansible--version3.模拟大量日志输入在另一台机器创造/ceshi/1.log文件用于案例清空日志mkdir/ceshicd/ceshitouch1.log写一个简单、高效的 Shell 脚本用于持续向 1.log 文件追加内容viwrite_log.sh#!/bin/bashLOG_FILE1.logINTERVAL1# 每隔多少秒写入一次可修改# 捕获 CtrlC 信号优雅退出trapecho -e \n停止写入日志...; exit 0SIGINTecho开始向$LOG_FILE持续写入日志按 CtrlC 停止...whiletrue;do# 写入当前时间 自定义信息echo$(date%Y-%m-%d %H:%M:%S)- 这是一条自动写入的日志消息$LOG_FILE# 可选写入随机数、进程ID等取消注释即可# echo $(date): Random$(shuf -i 1-100 -n 1), PID$$ $LOG_FILEsleep$INTERVALdone给脚本执行权限chmodx write_log.sh运行脚本./write_log.sh停止按Ctrl C日志模拟成功啦通过它的不断插入我们可以看出来日志占比容量也是不断增加的时间久了就会有很大的负担对此别急ansible来帮助你4.配置ansible自动化脚本确保你在playbook所在目录假设是 /etc/ansiblecd/etc/ansible编辑hosts文件加入你所要监控的ip和他的用户名及密码[test] ip ansible_ssh_user用户名 ansible_ssh_pass密码使用Ansible编写一个YAML文件用于自动清理指定服务器上的/ceshi/1.log文件。以下是完整 cleanup.yml示例--- - name: 清空 /ceshi/1.log 文件内容 hosts: dbservers become:yestasks: - name: 清空 /ceshi/1.log 文件 copy: content:dest: /ceshi/1.log mode:0644register: result - name: 输出操作结果 debug: msg:/ceshi/1.log 文件内容已被清空when: result.changed然后使用ansible-playbook执行就好啦ansible-playbook-ihosts4.yml接下来我们去目标主机查看一下/ceshi/1.log是否清理成功我这里是192.168.42.146我们可以看到该目录已经清除成功~手动反复执行未免繁琐不如为4.yml配置定时任务实现定时执行自动清理。5.结合cron定时清理添加定时任务crontab查看ansible-playbook路径:whichansible-playbook编辑root用户的定时任务crontab-e添加一行每天02:00执行02* * * /usr/bin/ansible-playbook-i/etc/ansible/hosts /etc/ansible/4.yml/etc/ansible/ansible_cleanup.log21如图可以看出本来目标地址的1.log文件是有内容的经过定时执行ansible的配置文件4.yml文件后目标地址的1.log文件被清空在传统运维中手动清理日志不仅繁琐还容易遗漏。借助Ansible Cron我们已能实现本地服务器日志的全自动清空而当你的服务部署在内网、无公网IP时成了打通自动化“最后一公里”的关键——通过建立安全隧道Ansible控制端可远程访问内网主机即使身处异地也能让定时清理任务精准执行。从此无论服务器藏得多深日志清理都能准时、静默、可靠地完成。6.配置公网地址通过配置你可以在本地 WSL 或 Linux 系统上运行 SSH 服务并通过 将其映射到公网从而实现从任意设备远程连接开发环境的目的。隧道名称可自定义本例使用了:ssh注意不要与已有的隧道名称重复协议tcp本地地址22端口类型随机临时TCP端口地区China Top创建成功后打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址接下来就可以在其他电脑或者移动端设备异地上使用任意一个地址在终端中访问即可。tcp 表示使用的协议类型10807是随机分配的公网端口号通过提供的公网地址和端口就可以使用ansible进行远程部署啦接下来我们操作一下。修改hosts配置文件[dbservers]2.tcp.topansible_userrootansible_port10807ansible_password***接下来我们执行配置文件ansible-playbook-ihosts4.yml执行成功我们去对应主机查看/ceshi/1.log是否清除成功8.保留固定TCP公网地址选择区域和描述有一个下拉菜单当前选择的是“China VIP”。右侧输入框用于填写描述信息。保留按钮在右侧有一个橙色的“保留”按钮点击该按钮可以保留所选的TCP地址。列表中显示了一条已保留的TCP地址记录。地区显示为“China Top”。登录web UI管理界面点击左侧仪表盘的隧道管理——隧道列表找到所要配置的隧道ssh点击右侧的编辑。修改隧道信息将保留成功的TCP端口配置到隧道中。端口类型选择固定TCP端口预留的TCP地址填写保留成功的TCP地址点击更新。创建完成后打开在线隧道列表此时可以看到随机的公网地址已经发生变化地址名称也变成了保留和固定的TCP地址。这样我们的ansible操作就没有任何的阻碍啦总结这套方案落地下来我这边几十台服务器的日志清理彻底实现了 “无人值守”不仅再也没收到过磁盘爆满的深夜告警而且 Ansible 的幂等性和 Cron 的定时调度让清理操作既可控又可追溯就算是内网服务器搭配 cpolar 的内网穿透也能远程管理。运维的核心从来不是 “忙”而是把重复的事交给机器我们腾出手来做更有价值的事。如果你也被手动删日志的活儿缠得头疼不妨试试这套组合拳亲测能省不少心力。

相关文章:

运维提效实战:用 Ansible+Cron 搞定日志自动清理,再也不用半夜爬起来删日志了

前言 作为常年和服务器打交道的运维人,估计没人没经历过半夜被磁盘爆满告警吵醒的崩溃 —— 远程登服务器、挨个找日志文件、手动删旧日志,一套操作下来人彻底清醒,回头还得担心误删关键文件。 其实这类重复又机械的运维活儿,完全…...

Qt 5.12.8在Linux下编译qtvirtualkeyboard模块,我踩过的那些坑(附完整解决方案)

Qt 5.12.8在Linux下编译qtvirtualkeyboard模块的深度实践指南 当你在嵌入式或跨平台开发中突然发现系统自带的Qt缺少虚拟键盘模块时,那种感觉就像在沙漠里找到一瓶水却发现没带开瓶器。本文将带你深入探索在aarch64架构的Linux系统中,如何为预装的Qt 5.1…...

在单细胞测序数据分析中,barcodes、features和matrix是三个最核心的基础文件,它们共同构成了所有分析的基石。

在GEO(Gene Expression Omnibus)数据库中下载单细胞数据时,最常见的数据存储和提供形式主要有以下四种类型:10x Genomics 标准格式(最主流)在GEO的数据集中,我们通常会找到一个包含以下三个核心…...

百川2-13B-4bits量化版对比测试:OpenClaw日常任务执行效率报告

百川2-13B-4bits量化版对比测试:OpenClaw日常任务执行效率报告 1. 测试背景与动机 最近在折腾OpenClaw自动化工作流时,发现一个棘手问题:当任务链条较长时,本地部署的大模型显存占用会飙升到16GB以上,导致我的RTX 30…...

MySQL技巧(八) :死锁解决与实战案例

在数据库高并发场景下,死锁是一个绕不开的经典难题。两个或多个事务相互持有对方需要的锁,导致都无法继续执行,就像两辆车在狭窄路口互不相让。本文将带你从原理到实战,掌握死锁的排查、解决和预防全流程。一、死锁快速定位当应用…...

3个高效能的核心功能:League-Toolkit开源工具效率提升指南

3个高效能的核心功能:League-Toolkit开源工具效率提升指南 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League-Too…...

域环境基础知识

Active Directory(AD) 域控制器功能: 集中管理所有域用户统一身份认证组策略分发资源访问控制 Windows Server域环境搭建 推荐版本: Windows Server 2003Windows Server 2008Windows Server 2012 域环境组成: 域控制器…...

基于2026校招数据分析:拥有这几张AI证书的学生,起薪普遍高30%

2026年校招季已近尾声,随着DeepSeek等大模型技术的持续突破与“人工智能”向千行百业的深度渗透,AI人才市场的竞争呈现白热化态势。前程无忧51job发布的《2026届校招市场AI人才需求报告》显示,AI相关岗位校招薪酬中位数已突破2万元/月&#x…...

双模型灾备方案:OpenClaw同时配置百川2-13B-4bits与Llama3应对服务中断

双模型灾备方案:OpenClaw同时配置百川2-13B-4bits与Llama3应对服务中断 1. 为什么需要双模型灾备 去年冬天的一个深夜,我正在用OpenClaw自动处理一批技术文档的翻译任务。突然收到一连串报警通知——原本稳定运行的Qwen模型服务因为网络波动彻底失联。…...

GPT-5-Codex CLI实战:如何用UIUIApi中转服务稳定获取API Key(避坑指南)

GPT-5-Codex CLI高效实践:国内开发者API接入全流程解析 最近在技术社区里,关于GPT-5-Codex的讨论热度持续攀升。作为一名长期关注AI编程工具的开发者,我发现很多同行在尝试接入这项服务时遇到了各种技术障碍。本文将分享一套经过实战验证的完…...

5分钟搞定ollama+qwen2.5模型配置:从下载到对话测试全流程指南

5分钟极速部署ollama与qwen2.5:零基础打造本地AI对话系统 在AI技术平民化的今天,拥有一个本地运行的对话模型不再是专业开发者的专利。本文将带您用最短时间完成ollama服务部署与qwen2.5模型配置,无需复杂环境搭建,从零开始构建属…...

Windows上搭建PostgreSQL监控神器:Grafana+Prometheus+Postgres_Exporter保姆级干货教程

❓想要实时掌握 PostgreSQL 数据库的运行状态? 👀想知道复制延迟、锁等待这些核心指标? 🆒这里是Moshow的「CSDN https://zhengkai.blog.csdn.net/」 🚀这篇文章带你从零开始,在 Windows 上搭建一套企业…...

Petalinux-build --sdk卡在assimp?手动下载源码并集成到Yocto构建系统的完整指南

解决Petalinux构建SDK时assimp源码下载失败的深度实践指南 当你在Ubuntu 18.04环境下使用Vivado 2021.2进行Petalinux开发时,执行petalinux-build --sdk命令可能会意外卡在assimp组件上。这种问题通常源于网络连接不稳定导致构建系统无法自动下载第三方依赖库。本文…...

2021年中国村级行政区划边界矢量数据|行政村 + 社区|全国60万+单元|SHP格式、WGS84坐标

🔍 数据简介 本数据集 2021年左右的中国村级行政区划边界矢量数据。 总计 超60万个村级单元,是目前公开可获取的最精细、最权威的全国村级边界数据之一,适用于乡村振兴、基层治理、人口空间化、公共服务设施布局、学术研究等高精度需求场景。…...

避坑指南:用ESP32驱动LD2420毫米波雷达时,串口数据丢失和自动开机卡死的那些事儿

ESP32与LD2420毫米波雷达深度避坑实战:从数据丢失到系统卡死的全链路解决方案 当你在凌晨三点盯着逻辑分析仪上那些残缺的串口波形时,就会明白为什么LD2420毫米波雷达被称为"最熟悉的陌生人"。这个能穿透墙壁感知呼吸的24GHz传感器&#xff0c…...

1949–2024年中国县级行政区划(逐年)|全国范围、75年连续、SHP格式

🔍 数据简介 本数据集完整覆盖 1949年至2024年 共 76个年份 的中国县级行政区划边界,是目前公开可获取的时间跨度最长、更新粒度最细的全国县级历史区划产品。 每一年份均提供独立、闭合、无重叠的面状矢量边界,属性表包含标准名称、行政区划…...

手把手教你用kafka-storage.sh重新格式化Kafka KRaft集群数据目录(解决No meta.properties报错)

深入解析Kafka KRaft模式下数据目录重构与集群恢复实战指南 当你在深夜收到Kafka集群告警,发现所有节点因No meta.properties报错而集体罢工时,那种头皮发麻的感觉我太熟悉了。去年双十一大促前夜,我们因为临时调整存储路径而遭遇类似问题&am…...

机器视觉C# 调用相机:从 USB 摄像头到海康工业相机(WinForms WPF)

🎥 机器视觉C# 调用相机:从 USB 摄像头到海康工业相机(WinForms & WPF) 📝 前言 在工业自动化、医疗影像或简单软件开发中,调用摄像头是一个绕不开的话题。在项目中同时遇到了两种需求: …...

OpenClaw内存优化:GLM-4.7-Flash大任务处理的资源调配技巧

OpenClaw内存优化:GLM-4.7-Flash大任务处理的资源调配技巧 1. 当OpenClaw遇上大任务:我的内存崩溃现场 那是个周五的深夜,我正尝试用OpenClaw自动处理一批技术文档的归档和摘要生成。任务看似简单:读取200多个Markdown文件&…...

OpenClaw配置优化:GLM-4.7-Flash模型响应速度提升

OpenClaw配置优化:GLM-4.7-Flash模型响应速度提升 1. 为什么需要优化GLM-4.7-Flash的响应速度 第一次用OpenClaw对接GLM-4.7-Flash模型时,我遇到了典型的"等待焦虑"——一个简单的文件整理任务竟然花了3分钟才返回结果。通过日志分析发现&am…...

3步攻克科研数据提取难关:WebPlotDigitizer开源工具实战指南

3步攻克科研数据提取难关:WebPlotDigitizer开源工具实战指南 【免费下载链接】WebPlotDigitizer WebPlotDigitizer: 一个基于 Web 的工具,用于从图形图像中提取数值数据,支持 XY、极地、三角图和地图。 项目地址: https://gitcode.com/gh_m…...

字节开源AI神器DeerFlow,4.1万星标刷屏,普通人免费就能用

文章目录这玩意儿不是ChatGPT那种"嘴炮型"选手35k星标怎么来的?字节这次把"龙虾"养明白了多智能体协作:不是一个人在战斗沙箱执行:让AI真的"动手"干活对比OpenAI:免费、本地、可控普通人怎么上手&a…...

从零到一:基于LLaMA-Factory的微调实战与核心参数精讲

1. 环境准备与LLaMA-Factory初探 第一次接触LLaMA-Factory时,我对着官方文档发呆了半小时——这个工具链实在太强大了,但新手很容易被各种依赖项劝退。这里分享我的踩坑经验:不要一上来就追求最新版本。去年12月我在RTX 3090上折腾v0.4.0时&a…...

编写程序实现智能鱼竿鱼线拉力检测,拉力超标提示“小心断线”。

🎣 项目实战:基于应变片的智能鱼竿拉力监测系统一、实际应用场景描述 (Scenario)在海钓或路亚钓法中,鱼竿的调性(Action)和钓线的磅数(LB)至关重要。新手往往凭感觉遛鱼,当大鱼突然发…...

编写程序让智能洗手液机检测手部靠近,自动出液,无需按压。

🧼 项目实战:基于红外测距的智能洗手液机控制系统一、实际应用场景描述 (Scenario)在机场、医院、办公楼等公共场所,传统的按压式洗手液机存在卫生隐患——每个人都需要接触同一个泵头,容易造成细菌交叉感染。目标:通过…...

如何彻底告别微软Edge浏览器:EdgeRemover专业卸载工具完全指南

如何彻底告别微软Edge浏览器:EdgeRemover专业卸载工具完全指南 【免费下载链接】EdgeRemover PowerShell script to remove Microsoft Edge in a non-forceful manner. 项目地址: https://gitcode.com/gh_mirrors/ed/EdgeRemover 你是否曾经尝试卸载Microsof…...

League-Toolkit:革新英雄联盟体验的效率倍增工具集

League-Toolkit:革新英雄联盟体验的效率倍增工具集 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League-Toolkit是一…...

ROS Noetic + RealSense D435i:从驱动安装到RVIZ点云显示的完整工作流解析

ROS Noetic RealSense D435i:从驱动安装到RVIZ点云显示的完整工作流解析 在机器人视觉项目的初期搭建阶段,开发者往往面临一个关键挑战:如何将深度相机从"硬件连接"快速推进到"可用数据流"状态。以Intel RealSense D435…...

Git提交时Personal Access Token权限不足:如何正确配置workflow scope

1. 为什么Git提交会提示Personal Access Token权限不足? 最近在团队协作中遇到一个典型问题:当开发者尝试推送包含.github/workflows目录的代码到GitHub仓库时,系统突然报错refusing to allow a Personal Access Token to create or update w…...

OpenClaw+QwQ-32B科研助手:文献摘要与笔记自动整理

OpenClawQwQ-32B科研助手:文献摘要与笔记自动整理 1. 为什么需要AI科研助手? 作为一名经常需要阅读大量文献的研究者,我发现自己长期陷入"文献管理困境":下载的PDF堆积如山,重要信息散落在不同标注工具里&…...