使用shell-脚本-拉取指定日期范围段多个aws账号的-CloudTrail-日志-到本地
Posted on 2025-09-03 13:56 520_1351 阅读(13) 评论(0) 收藏 举报记录一个功能脚本的实现,每天拉取所有账号的CloudTrail日志到本地
1、拉取从2025-08-03 到 2025-08-20的所有的CloudTrail日志, while 语句加上了判断,到了 2025-08-21 停止循环
2、不同的账号,都添加到 awsaccounts 这个indexed array 索引数组,这种数组不需要特别声明,直接 awsaccounts[数字] 定义即可
3、核心的就是日期的加一天(shell中可以都是字符串类型日期):
today=2025-08-03 和 today=$(date -d "+1 days $today" +%F)
Shell 脚本内容如下(前置条件,Linux OS中需要安装有gzip软件包,会提供有gunzip命令):
#!/bin/bash # PATH=/home/QQ-5201351/.Python-3.8.6/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/QQ-5201351/.local/bin:/home/QQ-5201351/bin workdir=$(cd "$(dirname "$0")"; pwd) awsaccounts[0]=111111111111 awsaccounts[1]=222222222222 awsaccounts[2]=333333333333 awsaccounts[3]=444444444444 today=2025-08-03 while [ "$today" != "2025-08-21" ];do pulltoday=$(date -d $today +%Y/%m/%d/) saveclouddir=${workdir}/aws-cloudTrail cloudTrailJsonDir_today=$saveclouddir/$today if [[ ! -d $cloudTrailJsonDir_today ]];then mkdir -p $cloudTrailJsonDir_today fi # del today cloudTrail data rm -f $cloudTrailJsonDir_today/*.gz rm -f $cloudTrailJsonDir_today/*.json # pull today and gunzip for account in ${awsaccounts[@]};do aws s3 sync --profile 888888888888 s3://mycentrallogs/AWSLogs/$account/CloudTrail/cn-north-1/$pulltoday $cloudTrailJsonDir_today >/dev/null done # 直接使用gunzip命令,可能会出现后面的参数太长、命令报错,于是使用xargs的方式 # gunzip $cloudTrailJsonDir_today/* find $cloudTrailJsonDir_today/ -type f | xargs gunzip today=$(date -d "+1 days $today" +%F) done
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/19071705
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!
浙公网安备 33010602011771号