shell定时删除/var/log目录下的数据
时间: 2023-09-09 13:14:25 浏览: 140
您可以使用shell脚本和cron来定时删除/var/log目录下的数据。请按照以下步骤操作:
1. 创建一个名为“delete_logs.sh”的文件,并在其中添加以下代码:
```
#!/bin/bash
sudo rm -rf /var/log/*
```
这个脚本会删除/var/log目录下的所有文件和文件夹。
2. 授予该脚本执行权限:
```
sudo chmod +x delete_logs.sh
```
3. 使用cron设置定时任务。打开cron表编辑器:
```
sudo crontab -e
```
4. 在打开的文件中添加以下行来设置cron任务:
```
# 每天凌晨3点执行删除日志操作
0 3 * * * /path/to/delete_logs.sh
```
5. 保存cron表并退出编辑器。
现在,您已经成功地设置了一个定时任务,在每天凌晨3点自动删除/var/log目录下的所有文件和文件夹。
相关问题
写一个shell脚本实现每周日晚上12点定时删除/var/log/目录下后缀带数字的文件
您可以创建一个shell脚本来实现每周日晚上12点定时删除`/var/log/`目录下后缀带数字的文件。以下是一个示例脚本:
```bash
#!/bin/bash
# 获取当前日期和星期几
current_date=$(date +%Y-%m-%d)
current_day=$(date +%A)
# 检查是否为周日
if [ "$current_day" = "Sunday" ]; then
echo "当前是周日,开始删除后缀带数字的文件..."
# 进入/var/log/目录
cd /var/log/
# 查找并删除后缀带数字的文件
find . -type f -name "*[0-9]*" -delete
echo "删除完成!"
else
echo "不是周日,不执行删除操作。"
fi
```
保存脚本文件,并确保具有执行权限(使用`chmod +x script.sh`赋予执行权限)。然后,您可以将此脚本添加到cron作业中,以在每周日晚上12点自动执行。
```bash
crontab -e
```
在打开的文件中,添加以下行来调度脚本执行:
```bash
0 0 * * 0 /path/to/script.sh
```
保存并关闭文件。这将在每周日的午夜12点(0小时,0分钟)自动执行脚本。
请注意,执行此脚本将永久删除匹配条件的文件,请确保您真正需要删除这些文件,并在执行之前进行适当的备份和确认。
用shell写一个脚本,定时删除/var/log/kudu目录下的日志,要求只删除名字包含info的.log日志,只保留最新三天内的日志
以下是一个 shell 脚本的示例:
```
#!/bin/bash
# 获取当前时间
now=$(date +%s)
# 计算三天前的时间戳
three_days_ago=$((now - 3 * 24 * 3600))
# 进入日志目录
cd /var/log/kudu
# 遍历所有.log日志
for log in *.log; do
# 判断文件名是否包含"info"
if [[ "$log" == *"info"* ]]; then
# 获取文件的修改时间
mtime=$(stat -c %Y "$log")
# 判断文件的修改时间是否早于三天前
if [[ "$mtime" -lt "$three_days_ago" ]]; then
# 删除文件
rm "$log"
fi
fi
done
```
请注意,上面的代码仅供参考,在您的实际环境中可能需要做一些修改。此外,请谨慎运行任何删除文件的脚本,以免误删除重要文件。
阅读全文