以下の記事でRDSのログ出力とPython版AWSコマンドラインツールを使ったログのダウンロード(個別)を
紹介しました。

今回は個別ではなく、特定のRDSで出力されているすべてのログ(ファイル)をダウンロードしてみました。
(“describe-db-log-files”でログファイル一覧を取得しています)

スクリプトは下記のようになります。

# cat download-db-logs
#!/bin/sh

FILES=`aws rds describe-db-log-files 
--db-instance-identifier $1 
| jq '.DescribeDBLogFiles[].LogFileName' 
| sed 's/"//g'`

for FILE in $FILES; do
    echo "######## $FILE ########"
    aws rds download-db-log-file-portion 
    --db-instance-identifier $1 
    --log-file-name $FILE 
    | jq '.LogFileData' 
    | sed 's/^"//' 
    | sed 's/"$//' 
    | sed 's/\t/t/g' 
    | sed 's/\n/n/g'
done

実行すると下記のようになります。

# ./download-db-logs master
######## error/mysql-error-running.log ########
null
######## error/mysql-error-running.log.12 ########
130502 11:11:27 [Warning] IP address '10.0.0.210' could not be resolved: Name or service not known
...
######## error/mysql-error-running.log.9 ########
130502  8:02:03 [Note] /rdsdbbin/mysql/bin/mysqld: Normal shutdown
...
######## error/mysql-error.log ########
null
######## general/mysql-general.log ########
/rdsdbbin/mysql/bin/mysqld, Version: 5.5.27-log (Source distribution). started with:
...
######## general/mysql-general.log.12 ########
/rdsdbbin/mysql/bin/mysqld, Version: 5.5.27-log (Source distribution). started with:
...
######## general/mysql-general.log.13 ########
/rdsdbbin/mysql/bin/mysqld, Version: 5.5.27-log (Source distribution). started with:
...
######## general/mysql-general.log.14 ########
/rdsdbbin/mysql/bin/mysqld, Version: 5.5.27-log (Source distribution). started with:
...
######## slowquery/mysql-slowquery.log ########
null
######## slowquery/mysql-slowquery.log.12 ########
/rdsdbbin/mysql/bin/mysqld, Version: 5.5.27-log (Source distribution). started with:
...
######## slowquery/mysql-slowquery.log.13 ########
/rdsdbbin/mysql/bin/mysqld, Version: 5.5.27-log (Source distribution). started with:
...
######## slowquery/mysql-slowquery.log.14 ########
/rdsdbbin/mysql/bin/mysqld, Version: 5.5.27-log (Source distribution). started with:
...

本件、”Marker”や”AdditionalDataPending”は考慮していません。
また、”AdditionalDataPending: true”、つまり未ダウンロードのログが残っている場合は、
そのログはダウンロードできません。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら