零基础也能上手的Python自动化运维教程

准备工作:先搭好Python环境

无论你的服务器是CentOS还是Ubuntu,Python通常已预装。
在命令行输入 python3 --version 可查看版本。
如果提示命令未找到,运行 sudo apt install python3(Debian系)或 sudo yum install python3(RHEL系)。
建议用 python3 而不是 python,避免版本混淆。

安装好之后需要确认pip是否可用:pip3 --version
没有的话执行 sudo apt install python3-pip
有了pip,后续安装第三方库会非常方便。

第一个自动化脚本:清理7天前的日志

日志占满磁盘是运维中最常见的问题。
写一个Python脚本定期清理旧日志,可以避免手动排查。

/usr/local/bin/ 下新建文件 clean_logs.py

#!/usr/bin/env python3
import os
import time

log_dir = "/var/log/myapp"
retention_days = 7

now = time.time()
cutoff = now - retention_days * 86400

for filename in os.listdir(log_dir):
    filepath = os.path.join(log_dir, filename)
    if os.path.isfile(filepath):
        mtime = os.path.getmtime(filepath)
        if mtime < cutoff:
            os.remove(filepath)
            print(f"Deleted: {filepath}")

给脚本执行权限:chmod +x /usr/local/bin/clean_logs.py
手动运行一次测试:python3 /usr/local/bin/clean_logs.py
如果 /var/log/myapp 路径不存在,先创建好,否则会报错。

用crontab让脚本自动运行

Linux自带的定时任务工具crontab能让脚本每天执行一次。
编辑当前用户的crontab:

crontab -e

第一次会提示选择编辑器,建议选vim或nano。
在文件末尾添加一行:

0 2 * * * /usr/local/bin/clean_logs.py >> /var/log/clean_logs.log 2>&1

这里表示每天凌晨2点运行,并把输出和错误都追加到日志文件,方便后续查看。
保存后,crontab会自动加载。
验证是否生效:crontab -l 应该能看到刚添加的行。

高频问题与避坑说明

问题1:脚本报错 Permission denied

原因:日志目录或文件没有读/写权限。
ls -ld /var/log/myapp 查看目录权限,确保运行脚本的用户(通常是root或当前用户)可以删除文件。
临时解决可以用 sudo 运行,但更推荐给脚本加sudo或者调整目录权限。

问题2:crontab不执行

检查crontab语法:五个时间字段和命令之间必须有空格。
同时确认系统时间准确。
另外,crontab中的环境变量和终端不一样,所以脚本里最好使用绝对路径。
如果脚本依赖环境变量,可在crontab开头添加 SHELL=/bin/bashPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

问题3:删除的不是预期文件

建议先写一个只打印不删除的测试版本——把 os.remove 改成 print,运行确认后再改回正式版本。
这是最重要的避坑步骤。

效果验证:确认自动化生效

创建几个旧文件来模拟:

touch -t 202301010000 /var/log/myapp/old_test.log
touch /var/log/myapp/new_test.log

然后手动运行脚本:python3 /usr/local/bin/clean_logs.py
之后查看目录,确认旧文件被删除、新文件还在。
再检查crontab日志 /var/log/clean_logs.log 是否有输出。
如果一切正常,第二天凌晨2点就会自动执行。

你还可以扩展这个脚本:用 psutil 监控CPU和内存,用 smtplib 发告警,或者用 shutil 做文件同步。
Python自动化运维的核心就是先跑通一个简单任务,然后逐步叠加功能。

如果你正在学习Python自动化运维,建议先从本文的日志清理脚本练手,理解文件操作和定时执行,再结合实际业务场景编写更复杂的工具。
遇到问题优先检查路径、权限和crontab语法,大多数错误都能靠这几招解决。

分享到:
上一篇
AI编程运维实战:零基础也能用ChatGPT写服务器脚本
下一篇
Go云原生开发零基础教程:搭建第一个容器化Go服务
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意