Linux已知apache服务的访问日志按天记录在服务器本地目录/app/logs下, 由于磁盘空间紧张,现在要求只能保留最近7天访问日志!请问如何解决,写出命令
时间: 2023-12-10 17:39:51 浏览: 30
可以使用Linux的定时任务工具crontab来实现定期清理过期的访问日志。具体操作如下:
1. 编写一个Shell脚本,实现删除7天前的访问日志文件的功能。假设日志文件名为access.log,脚本内容如下:
```
#!/bin/bash
find /app/logs -name "access.log.*" -mtime +6 -exec rm -f {} \;
```
2. 将该脚本保存为一个文件,比如clean_logs.sh,并添加执行权限:
```
chmod +x clean_logs.sh
```
3. 使用crontab添加一个定时任务,每天凌晨0点执行一次该脚本。输入以下命令:
```
crontab -e
```
在打开的编辑器中添加以下内容:
```
0 0 * * * /bin/bash /path/to/clean_logs.sh
```
其中,/path/to/clean_logs.sh应该替换为你实际的脚本文件路径。
这样,每天凌晨0点,crontab就会自动运行该脚本,清理过期的访问日志文件。
相关问题
linux删除/home/mxt/auto/logs目录修改时间在5天之前的文件或文件夹,包括子目录
可以使用以下命令删除/home/mxt/auto/logs目录修改时间在5天之前的文件或文件夹,包括子目录:
```
find /home/mxt/auto/logs -type f -mtime +5 -delete
```
这个命令会搜索/home/mxt/auto/logs目录下所有修改时间超过5天的文件,并将它们删除。
如果想要删除文件夹,可以把 `-type f` 改成 `-type d`。
例如:
```
find /home/mxt/auto/logs -type d -mtime +5 -delete
```
这个命令会搜索/home/mxt/auto/logs目录下所有修改时间超过5天的文件夹,并将它们删除。
linux 删除 /home/mxt/auto/logs 目录 3天之前的文件或文件夹
要删除在3天之前的文件或文件夹,可以使用以下命令:
```bash
find /home/mxt/auto/logs -mtime +3 -delete
```
这条命令会在 /home/mxt/auto/logs 目录中查找修改时间在3天之前的文件或文件夹,并将它们删除。
请注意,这条命令会删除匹配的所有文件和文件夹,包括子目录中的文件和文件夹。如果你只想删除特定类型的文件,可以使用 -name 选项来指定文件名匹配模式。例如,要删除所有后缀为 .log 的文件,可以使用以下命令:
```bash
find /home/mxt/auto/logs -mtime +3 -name "*.log" -delete
```
此命令将删除所有在3天之前修改过且文件名以 .log 结尾的文件。