shell删除三天文件脚本
时间: 2024-05-14 10:18:58 浏览: 59
可以使用 `find` 命令来查找并删除三天前的文件。以下是一个删除三天前所有 `.log` 文件的脚本:
```shell
#!/bin/bash
# 删除三天前的 .log 文件
find /path/to/logs -name "*.log" -type f -mtime +3 -delete
```
其中:
- `/path/to/logs` 是存放日志文件的目录,根据实际情况修改。
- `-name "*.log"` 表示查找所有后缀为 `.log` 的文件。
- `-type f` 表示只查找普通文件。
- `-mtime +3` 表示修改时间在三天前的文件。
- `-delete` 表示删除查找到的文件。
将以上脚本保存为一个文件,比如 `delete_logs.sh`,然后使用 `chmod +x delete_logs.sh` 命令给予执行权限,最后使用 `./delete_logs.sh` 命令运行即可。
相关问题
如何使用shell脚本定时清除/fghi下超过三天的文件
你可以通过编写一个简单的bash shell脚本来定期清理`/fghi`目录下的过期文件。这里是一个基本的例子:
```sh
#!/bin/bash
# 定义目标目录
dir="/fghi"
# 指定清理日期(三天前)
days_ago=3
threshold_date=$(date -d "$(date -d 'now' -${days_ago} days) +00:00" +%Y-%m-%d)
# 使用find命令查找并删除超出指定日期的文件
find "$dir" -type f -mtime +$days_ago -delete
# 如果你想设置定时任务,可以将此脚本添加到crontab中,例如每天凌晨两点运行
echo "0 2 * * * /path/to/your/clear_script.sh" | crontab -
# 保存并立即执行脚本(仅用于测试,生产环境中请勿直接这么做)
# chmod +x clear_script.sh
# ./clear_script.sh
```
在这个脚本中,我们首先获取当前时间减去三天的时间作为阈值,然后使用`find`命令找出`/fghi`目录下所有`mtime`(修改时间)大于三天的文件,并使用`-delete`选项直接删除。
如果你想要将其设置为定时任务,你需要将脚本路径替换为你实际存放该脚本的地方,并按照cron的语法(比如`0 2 * * *`表示每天凌晨两点)添加到系统crontab配置中。
**
写一个shell脚本,保留三天的日志,其他均删除
以下是一个简单的 shell 脚本,可以保留三天内的日志文件,其他日志文件均删除。
```bash
#!/bin/bash
# 设置日志文件目录
LOG_DIR="/var/log/"
# 计算三天前的时间戳
TIME=$(date -d "3 days ago" +%s)
# 遍历日志文件
for file in $LOG_DIR*; do
# 判断文件是否是普通文件且最后修改时间大于三天前的时间戳
if [ -f "$file" ] && [ $(stat -c %Y $file) -lt $TIME ]; then
# 删除文件
rm $file
fi
done
```
将以上代码保存为一个 `.sh` 文件,赋予执行权限后运行即可。注意,此脚本会删除所有日志文件,包括系统日志文件,因此请在谨慎操作。建议将该脚本加入计划任务中,定期执行。
阅读全文