要保持初始日志文件权限,可以使用AWS CLI中的awslogs rotate命令。以下是一个示例解决方案,展示了如何使用Shell脚本在Linux上执行此操作:
#!/bin/bash
# 获取日志文件所在的目录
LOG_DIR="/var/log/app"
# 获取要保留的旧日志文件的数量
NUM_TO_KEEP=5
# 切换到日志文件所在的目录
cd $LOG_DIR
# 使用awslogs rotate命令切割日志文件
awslogs rotate --region us-west-2 --log-group-name my-log-group --log-stream-name my-log-stream
# 获取当前目录下的日志文件列表
log_files=($(ls -t))
# 删除多余的旧日志文件
if [ ${#log_files[@]} -gt $NUM_TO_KEEP ]; then
num_to_delete=$(( ${#log_files[@]} - $NUM_TO_KEEP ))
for ((i=0; i<$num_to_delete; i++)); do
rm ${log_files[$i]}
done
fi
在上面的示例中,我们假设日志文件存储在/var/log/app
目录中。在脚本中,我们首先切换到该目录,然后使用awslogs rotate
命令切割日志文件。请根据实际情况替换--region
、--log-group-name
和--log-stream-name
参数的值。
之后,我们获取当前目录下的日志文件列表,并通过比较列表长度和要保留的旧日志文件数量来确定是否需要删除多余的旧日志文件。如果需要删除,我们使用循环逐个删除旧日志文件。
请确保在执行脚本之前安装和配置了AWS CLI,并且具有适当的权限来执行awslogs rotate
命令和删除日志文件。