写一个shell脚本实现每周日晚上12点定时删除/var/log/目录下后缀带数字的文件
时间: 2023-12-24 22:02:53 浏览: 30
您可以创建一个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目录大于50G后自动清理这个目录下数字开头的文件或目录
可以使用以下的shell脚本来实现这个需求:
```bash
#!/bin/bash
log_dir="/var/log"
max_size="50G"
current_size=$(du -sh $log_dir | awk '{print $1}')
if [[ $current_size > $max_size ]]; then
echo "Log directory size exceeds $max_size. Cleaning up..."
find $log_dir -type f -name '[0-9]*' -delete
find $log_dir -type d -name '[0-9]*' -exec rm -rf {} +
echo "Cleanup complete."
else
echo "Log directory size is within limits."
fi
```
这个脚本会首先获取 `/var/log` 目录的当前大小,并与设定的最大大小进行比较。如果当前大小超过最大大小,则会使用 `find` 命令找到目录下以数字开头的文件和目录,并将其删除。最后,会输出清理完成的消息。
你可以将以上代码保存为一个名为 `cleanup_logs.sh` 的文件,然后给予执行权限 (`chmod +x cleanup_logs.sh`)。之后,可以定期执行该脚本,比如使用 cron job 或者其他定时任务工具,以自动清理 `/var/log` 目录。
请注意,这个脚本会永久性地删除匹配到的文件和目录,请务必谨慎操作。另外,如果你使用的是非root用户执行脚本,可能需要确保用户对 `/var/log` 目录有足够的权限来进行删除操作。
请帮我写一个shell脚本,内容为每天凌晨2点清空/iflytek/logs目录下的后缀为.log的文件
好的,以下是一个简单的shell脚本,可以达到您的需求:
```bash
#!/bin/bash
LOG_DIR="/iflytek/logs"
cd $LOG_DIR
# 清空后缀为.log的文件
find . -name '*.log' -type f -delete
exit 0
```
该脚本会进入 `/iflytek/logs` 目录,使用 `find` 命令查找后缀为 `.log` 的文件,并删除它们。您可以将该脚本保存为例如 `clear_logs.sh`,并创建一个 cron job,在每天凌晨2点运行该脚本。可以使用 `crontab -e` 命令编辑 cron job 配置文件,将以下行添加到文件的底部:
```
0 2 * * * /path/to/clear_logs.sh
```
其中 `/path/to/clear_logs.sh` 是脚本的绝对路径。这将使脚本每天凌晨2点运行一次。