删除之前数据只保留30天的数据
时间: 2024-09-24 13:27:55 浏览: 60
在Linux环境下,如果你想仅保留最近30天的数据并删除旧的,可以继续使用shell脚本结合cron job来实现。下面是一个简化版的脚本示例,假设我们正在处理的是名为`old_files`的文件夹:
```bash
#!/bin/bash
# 获取当前日期
current_date=$(date +%Y-%m-%d)
# 计算30天前的日期
threshold_date=$(date -d "${current_date} -30 days" +%Y-%m-%d)
# 查找并删除超过30天的文件
find /path/to/old_files -type f -name "*.txt" -mtime +30 -delete
echo "Old files older than ${threshold_date} have been deleted."
exit 0
```
在这个脚本中,`find`命令会在`/path/to/old_files`目录下查找所有`.txt`文件,如果它们的修改时间(mtime)超过30天,则会被删除。你可以根据实际情况替换文件类型、目录路径和文件名模式。
为了定期运行此脚本,将其保存为`clean_old_files.sh`,给它执行权限,然后在crontab中添加一项类似这样的任务:
```bash
0 0 * * * /usr/bin/env bash /path/to/clean_old_files.sh
```
这表示每天凌晨0点执行`clean_old_files.sh`脚本。再次强调,你需要将`/path/to`替换为实际存储脚本和旧文件的路径。
阅读全文