影刀RPA 自动化运维:服务重启与日志清理

发布时间:2026/9/10 6:24:14

影刀RPA 自动化运维:服务重启与日志清理 title: “影刀RPA 自动化运维服务重启与日志清理”date: 2026-07-01author: 林焱影刀RPA 自动化运维服务重启与日志清理服务器上某个服务偶尔会挂要人工SSH上去重启日志文件越积越大定期清理要手动处理……这类有固定操作步骤的运维任务用影刀自动化减少人肉运维。什么情况用什么适合自动化的运维场景服务异常进程挂了、端口不通后自动重启定期清理日志文件防止磁盘空间耗尽定时重启服务某些服务运行久了会内存泄漏定期重启规避批量处理多台服务器的相同操作不适合的场景拼多多店群自动化上架方案服务异常原因未知需要人工排查后再决定是否重启高危操作删除数据、修改生产数据库配置必须人工确认怎么做方法1监控服务并自动重启Windows服务【影刀操作】新建流程「服务健康监控」添加【Python】指令importsubprocessimportwin32serviceutilimportwin32serviceimporttimeimportrequestsdefcheck_service_status(service_name):检查Windows服务状态try:statuswin32serviceutil.QueryServiceStatus(service_name)# 1Stopped, 4Runningreturnstatus[1]4exceptExceptionase:print(f服务{service_name}不存在或查询失败{e})returnNonedefrestart_service(service_name):重启服务try:win32serviceutil.StopService(service_name)time.sleep(5)win32serviceutil.StartService(service_name)time.sleep(3)returncheck_service_status(service_name)exceptExceptionase:print(f重启失败{e})returnFalsedefcheck_http_endpoint(url,timeout5):检查HTTP接口是否正常try:resprequests.get(url,timeouttimeout)returnresp.status_code200except:returnFalse# 监控配置services_to_monitor[{name:我的业务服务,service_name:MyBusinessService,# Windows服务名check_url:http://localhost:8080/health,auto_restart:True,max_restart_times:3# 最多自动重启3次}]forserviceinservices_to_monitor:service_nameservice[service_name]# 检查服务状态is_runningcheck_service_status(service_name)ifis_runningisNone:print(f服务不存在{service_name})continueifnotis_running:print(f⚠️ 服务已停止{service_name})ifservice[auto_restart]:print(f正在尝试重启...)successrestart_service(service_name)ifsuccess:print(f✅ 服务重启成功{service_name})yda.set_variable(restart_result,f服务{service_name}已自动重启成功)else:print(f❌ 重启失败{service_name})yda.set_variable(restart_result,f服务{service_name}重启失败需人工介入)else:# 服务进程在但接口可能不通ifservice.get(check_url):ifnotcheck_http_endpoint(service[check_url]):print(f⚠️ 服务进程运行但接口异常{service[check_url]})# 强制重启restart_service(service_name)else:print(f✅ 服务正常{service_name})方法2日志文件自动清理【影刀操作】添加【Python】指令importosimportglobimporttimefromdatetimeimportdatetime,timedeltadefclean_old_logs(log_dirs,keep_days7,max_total_gb5): 清理旧日志文件 log_dirs: 日志目录列表 keep_days: 保留最近N天的日志 max_total_gb: 如果总大小超过这个值清理更多 total_deleted_bytes0deleted_count0cutoff_timetime.time()-keep_days*86400forlog_dirinlog_dirs:ifnotos.path.exists(log_dir):print(f目录不存在{log_dir}跳过)continue# 找到所有日志文件log_files[]forextin[*.log,*.log.*,*.gz]:log_files.extend(glob.glob(os.path.join(log_dir,**,ext),recursiveTrue))# 按修改时间排序最旧的在前log_files.sort(keylambdaf:os.path.getmtime(f))forlog_fileinlog_files:mtimeos.path.getmtime(log_file)ifmtimecutoff_time:file_sizeos.path.getsize(log_file)try:os.remove(log_file)total_deleted_bytesfile_size deleted_count1print(f已删除{log_file}({file_size/1024:.1f}KB))exceptPermissionError:print(f无法删除正在使用{log_file})print(f\n清理完成删除{deleted_count}个文件释放{total_deleted_bytes/1024/1024:.1f}MB)returndeleted_count,total_deleted_bytes# 检查磁盘空间importshutil disk_usageshutil.disk_usage(rC:\\)free_gbdisk_usage.free/1024**3total_gbdisk_usage.total/1024**3usage_pct(disk_usage.used/disk_usage.total)*100print(f磁盘使用{usage_pct:.1f}%剩余{free_gb:.1f}GB)ifusage_pct80:print(⚠️ 磁盘使用率超过80%开始清理日志...)# 配置要清理的日志目录和规则log_dirs[rC:\Logs\Application,rC:\Logs\IIS,rD:\ServiceLogs]deleted_count,freed_bytesclean_old_logs(log_dirs,keep_days7)yda.set_variable(deleted_count,deleted_count)yda.set_variable(freed_mb,round(freed_bytes/1024/1024,1))方法3通过SSH操作远程Linux服务器【影刀操作】添加【Python】指令importparamikoimporttimedefssh_run(client,command,timeout30):执行SSH命令并返回输出stdin,stdout,stderrclient.exec_command(command,timeouttimeout)outstdout.read().decode(utf-8,errorsreplace).strip()errstderr.read().decode(utf-8,errorsreplace).strip()exit_codestdout.channel.recv_exit_status()returnout,err,exit_code# SSH连接sshparamiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh.connect(192.168.1.100,usernameubuntu,key_filenamerC:\SSH\my_key.pem)# 检查进程是否运行out,_,_ssh_run(ssh,pgrep -f myapp.jar)ifout:pidout.strip()print(f服务运行中PID{pid})# 检查内存使用![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/0341b1ce823c4d9f8920fa0c155e4f9b.png#pic_center)mem_out,_,_ssh_run(ssh,fps -p{pid}-o %mem --no-header)mem_pctfloat(mem_out.strip())ifmem_pct80:print(f内存占用过高{mem_pct:.1f}%准备重启)ssh_run(ssh,fkill -15{pid})time.sleep(5)ssh_run(ssh,cd /app nohup java -jar myapp.jar )print(服务已重启)else:print(服务未运行启动服务)ssh_run(ssh,cd /app nohup java -jar myapp.jar app.log 21 )# 清理旧日志out,_,codessh_run(ssh,find /var/log/myapp -name *.log -mtime 7 -delete echo 清理完成)print(f日志清理{out})# 检查磁盘空间out,_,_ssh_run(ssh,df -h / | tail -1)print(f磁盘使用{out})ssh.close()有什么坑坑1自动重启掩盖真正问题服务频繁崩溃自动重启让服务保持正常但根本问题内存泄漏、死锁没有被发现。解决方法记录重启次数24小时内重启超过3次就停止自动重启发告警让人工排查。TEMU店群如何管理运营坑2SSH密钥权限问题paramiko连接时提示密钥文件权限过宽Windows上文件权限问题。解决方法直接用密码认证password参数或者确保密钥文件只有当前用户可读。坑3服务重启期间有请求进来重启过程中约5-10秒服务不可用请求报错。解决方法在业务低峰期凌晨执行自动重启或者先把流量切走再重启蓝绿部署。坑4删除了正在写入的日志日志文件还在被服务使用强制删除后文件句柄还在实际磁盘空间没释放Linux常见问题。解决方法Linux上重启后才能释放或者用logrotate配合copytruncate选项安全轮转。总结自动化运维的核心原则能自动恢复的让它自动不确定的告警让人决策。日志清理是最安全的自动化任务服务自动重启要谨慎限制次数、记录日志。做好这两件事能减少50%以上的人肉运维时间。
延伸阅读

更多相关文章

2026/9/9 20:50:47

影刀RPA 自动化竞品监控系统:价格与产品变动实时追踪

影刀RPA 自动化竞品监控系统:价格与产品变动实时追踪 作者:林焱 写在前面 竞品监控是运营和产品团队的日常工作,但靠人工每天盯竞品官网、电商页面极其低效。本文搭建一套完整的竞品监控系统:定时采集竞品数据 → 与历史数据对比…

2026/9/8 7:53:19

Harness Engineering的落地实践

摘要:Harness Engineering 最近很火,但我翻了数十篇文章大部分都在讲它的概念,极少人去讲解它的落地实践。今天这篇文章我将大致讲解什么是 Harness Engineering,并讲解一个采用 Harness Engineering 架构设计、基于 LangChain De…

2026/9/9 3:10:49

3本SCIE被剔除,7月份WoS期刊目录更新!

科睿唯安每个月都会对SCIE、ESCI、SSCI和AHCI期刊目录进行更新,每次更新可能会涉及到新增、剔除和更名三种情况。2026年7月20日,官方发布了2026年最新的SCIE、ESCI、SSCI和AHCI期刊目录。目前共有SCIE期刊9427本、ESCI期刊9382本、SSCI期刊3538本、AHCI期…

2026/9/10 6:21:36

研发驱动AI落地:制造业智能转型的四步炼金术

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/10 6:21:36

4.5小时攻克单片机原理考试:聚焦51系列核心考点

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/10 6:21:36

全离散扩散建模:Intern Lumina U2 的 token 级生成范式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/10 6:21:36

鸿蒙版Flutter天气应用:Staggered Grid多城市卡片墙实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/10 6:16:35

CANN/GE单算子执行接口

aclopExecuteV2 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow…

2026/9/9 13:11:35

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/8 7:15:15

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/10 0:00:55

目录对比去重实战:用哈希算法精准清理重复文件

我电脑里现在还有一块换了三次机的“数据墓地”硬盘,里面存着2016年以前所有旧笔记本的完整备份。平时不觉得有什么,直到前阵子想把它整理归档,发现同一个安装包、同一批照片、同一份论文草稿,在几个不同的备份目录里反复出现。更…

2026/9/10 0:00:55

Leaflet离线地图完整Demo合集:内网部署与坐标纠偏实战

简介:这是一份面向Web GIS开发者的LeafLet离线地图示例合集,帮助开发者快速掌握离线地图从搭建到交互的完整流程。压缩包共723个文件,大小14.06MB,以319个js脚本、175个html页面和29个css样式文件为主体,配合png/svg图…

2026/9/10 0:00:55

MATLAB读取Rinex 3.02观测文件:多系统GNSS数据解析实战

简介:基于MATLAB开发的Rinex3.02版观测文件(o文件)读取代码包,面向卫星定位导航方向的学习者与研究人员,用于解决新版观测文件的数据解析、历元提取与时间转换问题。压缩包共4个文件,包含两个m脚本、一个19…

2026/9/7 16:23:03

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/7 22:46:00

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/9 10:21:54

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码