Python脚本教程:如何在CentOS系统下定时删除超过60天的文件
功能:

支持 Python 2 以及 Python 3,在 CentOS 系统下可以运行。脚本每天会定时去检查指定目录里的所有文件,要是文件的生成日期超过 60 天,就会删除该文件。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import time
import sys
# 指定目录路径
你的目录路径为 "/path/to/your/directory"。
# 设置文件保留天数
days_to_keep = 60
# 计算当前时间
current_time = time.time()
# 遍历目录下的所有文件
在目录中,对于每个文件名,都进行以下操作:遍历目录下的所有文件名,将每个文件名依次赋值给变量 filename 。
file_path 是通过将 directory 和 filename 进行拼接而得到的路径
# 检查是否为文件
if os.path.isfile(file_path):
# 获取文件的最后修改时间
通过 os.path.getmtime 函数获取到文件路径对应的修改时间并赋值给 file_mtime 变量。
# 计算文件的天数
当前时间减去文件修改时间得到时间差,然后用这个时间差除以 60 乘以 60 再乘以 24,得到的结果就是文件年龄的天数,即 file_age_days 。
# 如果文件超过指定天数,则删除
要是文件的年龄天数比需要保留的天数要大,就会有相应的情况发生。
try:
os.remove(file_path)
打印出“已删除:”加上文件路径的具体内容,即打印出“已删除:”加上 file_path 的值。
except OSError as e:
打印("错误: {} - {}".format(e.filename, e.strerror))
# 退出脚本
sys.exit(0)
说明:需指定目录路径,把 directory 变量的值换成你要检查的目录路径。文件保留天数方面,days_to_keep 变量已设为 60 天,你可按需调整。定时任务方面,你能利用 cron 来设置每天定时运行此脚本。
打开 crontab 编辑器:
sudo crontab -e
添加以下行来每天凌晨 1 点运行脚本:
使用 /usr/bin/python 来运行 /path/to/your/script.py 这个脚本。
要确保 /usr/bin/python 是你系统中 Python 解释器的路径,同时也要确保 /path/to/your/script.py 是你脚本的路径。
查看已经存在的计划任务:
sudo crontab -l