share facebook facebook2 twitter menu hatena pocket slack

2013.06.07 FRI

RDSのログをS3に保存する準備

鈴木 宏康

WRITTEN BY鈴木 宏康

以前紹介した「RubyでRDSのログ(すべてのファイル)をダウンロード」にて、
RDSのログをダウンロードするスクリプトを作成してみました。
今回は、このログを定期的にS3へアップロードする準備をしてみました。

まずは上記で紹介したスクリプトでRDSのログをダウンロードします。
(ファイルのタイムスタンプもRDS上のログのタイムスタンプに揃えています)


# ../download-rds-log
# ll
合計 9232
... 0 5月 29 17:25 2013 mysql-error.log
... 34476 5月 29 17:27 2013 mysql-general.log
... 75796 5月 28 18:00 2013 mysql-general.log.0
... 76212 5月 28 19:00 2013 mysql-general.log.1
... 76139 5月 28 20:00 2013 mysql-general.log.10
... 75796 5月 28 21:00 2013 mysql-general.log.11
... 76212 5月 28 22:00 2013 mysql-general.log.12
... 78126 5月 28 23:00 2013 mysql-general.log.13
... 76212 5月 29 00:00 2013 mysql-general.log.14
... 76125 5月 29 01:00 2013 mysql-general.log.15
... 75883 5月 29 02:00 2013 mysql-general.log.16
... 76139 5月 29 03:00 2013 mysql-general.log.17
... 75869 5月 29 04:00 2013 mysql-general.log.18
... 76139 5月 29 05:00 2013 mysql-general.log.19
... 78503 5月 29 06:00 2013 mysql-general.log.2
... 75796 5月 29 07:00 2013 mysql-general.log.20
... 76212 5月 29 08:00 2013 mysql-general.log.21
... 76139 5月 29 09:00 2013 mysql-general.log.22
... 75869 5月 29 10:00 2013 mysql-general.log.23
... 76139 5月 29 11:00 2013 mysql-general.log.3
... 75796 5月 29 12:00 2013 mysql-general.log.4
... 76212 5月 29 13:00 2013 mysql-general.log.5
... 75796 5月 29 14:00 2013 mysql-general.log.6
... 76212 5月 29 15:00 2013 mysql-general.log.7
... 76139 5月 29 16:00 2013 mysql-general.log.8
... 75869 5月 29 17:00 2013 mysql-general.log.9
... 138717 5月 29 17:27 2013 mysql-slowquery.log
... 331099 5月 28 18:05 2013 mysql-slowquery.log.0
... 281490 5月 28 19:00 2013 mysql-slowquery.log.1
... 306716 5月 28 20:00 2013 mysql-slowquery.log.10
... 331099 5月 28 21:05 2013 mysql-slowquery.log.11
... 307080 5月 28 22:05 2013 mysql-slowquery.log.12
... 287825 5月 28 23:00 2013 mysql-slowquery.log.13
... 332670 5月 29 00:05 2013 mysql-slowquery.log.14
... 280947 5月 29 01:00 2013 mysql-slowquery.log.15
... 306052 5月 29 02:00 2013 mysql-slowquery.log.16
... 332306 5月 29 03:05 2013 mysql-slowquery.log.17
... 305873 5月 29 04:05 2013 mysql-slowquery.log.18
... 281126 5月 29 05:00 2013 mysql-slowquery.log.19
... 314652 5月 29 06:00 2013 mysql-slowquery.log.2
... 331099 5月 29 07:05 2013 mysql-slowquery.log.20
... 307080 5月 29 08:05 2013 mysql-slowquery.log.21
... 305509 5月 29 09:05 2013 mysql-slowquery.log.22
... 306716 5月 29 10:05 2013 mysql-slowquery.log.23
... 281490 5月 29 11:00 2013 mysql-slowquery.log.3
... 331099 5月 29 12:05 2013 mysql-slowquery.log.4
... 281490 5月 29 13:00 2013 mysql-slowquery.log.5
... 331099 5月 29 14:05 2013 mysql-slowquery.log.6
... 281490 5月 29 15:00 2013 mysql-slowquery.log.7
... 332306 5月 29 16:05 2013 mysql-slowquery.log.8
... 280283 5月 29 17:00 2013 mysql-slowquery.log.9

次に下記スクリプトでファイルの末尾をタイムスタンプに変更します。
これは、定期的にS3にアップロードするときに既存のログを上書きしないためです。
(“.log”で終わっているファイルは対象外にしています)


# cat ../rename-rds-log
#!/bin/sh

for FILE in *; do
if [ ${FILE##*.} != "log" ]; then
mv $FILE ${FILE%.*}.`date -r $FILE +%Y%m%d%H%M%S`
fi
done
# ../rename-rds-log
# ll
合計 9232
... 0 5月 29 17:25 2013 mysql-error.log
... 34476 5月 29 17:27 2013 mysql-general.log
... 75796 5月 28 18:00 2013 mysql-general.log.20130528180000
... 76212 5月 28 19:00 2013 mysql-general.log.20130528190000
... 76139 5月 28 20:00 2013 mysql-general.log.20130528200000
... 75796 5月 28 21:00 2013 mysql-general.log.20130528210000
... 76212 5月 28 22:00 2013 mysql-general.log.20130528220000
... 78126 5月 28 23:00 2013 mysql-general.log.20130528230000
... 76212 5月 29 00:00 2013 mysql-general.log.20130529000000
... 76125 5月 29 01:00 2013 mysql-general.log.20130529010000
... 75883 5月 29 02:00 2013 mysql-general.log.20130529020000
... 76139 5月 29 03:00 2013 mysql-general.log.20130529030000
... 75869 5月 29 04:00 2013 mysql-general.log.20130529040000
... 76139 5月 29 05:00 2013 mysql-general.log.20130529050000
... 78503 5月 29 06:00 2013 mysql-general.log.20130529060000
... 75796 5月 29 07:00 2013 mysql-general.log.20130529070000
... 76212 5月 29 08:00 2013 mysql-general.log.20130529080000
... 76139 5月 29 09:00 2013 mysql-general.log.20130529090000
... 75869 5月 29 10:00 2013 mysql-general.log.20130529100000
... 76139 5月 29 11:00 2013 mysql-general.log.20130529110000
... 75796 5月 29 12:00 2013 mysql-general.log.20130529120000
... 76212 5月 29 13:00 2013 mysql-general.log.20130529130000
... 75796 5月 29 14:00 2013 mysql-general.log.20130529140000
... 76212 5月 29 15:00 2013 mysql-general.log.20130529150000
... 76139 5月 29 16:00 2013 mysql-general.log.20130529160000
... 75869 5月 29 17:00 2013 mysql-general.log.20130529170000
... 138717 5月 29 17:27 2013 mysql-slowquery.log
... 331099 5月 28 18:05 2013 mysql-slowquery.log.20130528180500
... 281490 5月 28 19:00 2013 mysql-slowquery.log.20130528190000
... 306716 5月 28 20:00 2013 mysql-slowquery.log.20130528200000
... 331099 5月 28 21:05 2013 mysql-slowquery.log.20130528210500
... 307080 5月 28 22:05 2013 mysql-slowquery.log.20130528220500
... 287825 5月 28 23:00 2013 mysql-slowquery.log.20130528230000
... 332670 5月 29 00:05 2013 mysql-slowquery.log.20130529000500
... 280947 5月 29 01:00 2013 mysql-slowquery.log.20130529010000
... 306052 5月 29 02:00 2013 mysql-slowquery.log.20130529020000
... 332306 5月 29 03:05 2013 mysql-slowquery.log.20130529030500
... 305873 5月 29 04:05 2013 mysql-slowquery.log.20130529040500
... 281126 5月 29 05:00 2013 mysql-slowquery.log.20130529050000
... 314652 5月 29 06:00 2013 mysql-slowquery.log.20130529060000
... 331099 5月 29 07:05 2013 mysql-slowquery.log.20130529070500
... 307080 5月 29 08:05 2013 mysql-slowquery.log.20130529080500
... 305509 5月 29 09:05 2013 mysql-slowquery.log.20130529090500
... 306716 5月 29 10:05 2013 mysql-slowquery.log.20130529100500
... 281490 5月 29 11:00 2013 mysql-slowquery.log.20130529110000
... 331099 5月 29 12:05 2013 mysql-slowquery.log.20130529120500
... 281490 5月 29 13:00 2013 mysql-slowquery.log.20130529130000
... 331099 5月 29 14:05 2013 mysql-slowquery.log.20130529140500
... 281490 5月 29 15:00 2013 mysql-slowquery.log.20130529150000
... 332306 5月 29 16:05 2013 mysql-slowquery.log.20130529160500
... 280283 5月 29 17:00 2013 mysql-slowquery.log.20130529170000

最後に圧縮です。


# gzip *
# ll
合計 444
... 36 5月 29 17:25 2013 mysql-error.log.gz
... 1830 5月 28 18:00 2013 mysql-general.log.20130528180000.gz
... 1835 5月 28 19:00 2013 mysql-general.log.20130528190000.gz
... 1814 5月 28 20:00 2013 mysql-general.log.20130528200000.gz
... 1830 5月 28 21:00 2013 mysql-general.log.20130528210000.gz
... 1854 5月 28 22:00 2013 mysql-general.log.20130528220000.gz
... 2329 5月 28 23:00 2013 mysql-general.log.20130528230000.gz
... 1849 5月 29 00:00 2013 mysql-general.log.20130529000000.gz
... 1838 5月 29 01:00 2013 mysql-general.log.20130529010000.gz
... 1842 5月 29 02:00 2013 mysql-general.log.20130529020000.gz
... 1817 5月 29 03:00 2013 mysql-general.log.20130529030000.gz
... 1830 5月 29 04:00 2013 mysql-general.log.20130529040000.gz
... 1829 5月 29 05:00 2013 mysql-general.log.20130529050000.gz
... 2330 5月 29 06:00 2013 mysql-general.log.20130529060000.gz
... 1823 5月 29 07:00 2013 mysql-general.log.20130529070000.gz
... 1840 5月 29 08:00 2013 mysql-general.log.20130529080000.gz
... 1826 5月 29 09:00 2013 mysql-general.log.20130529090000.gz
... 1843 5月 29 10:00 2013 mysql-general.log.20130529100000.gz
... 1830 5月 29 11:00 2013 mysql-general.log.20130529110000.gz
... 1814 5月 29 12:00 2013 mysql-general.log.20130529120000.gz
... 1843 5月 29 13:00 2013 mysql-general.log.20130529130000.gz
... 1840 5月 29 14:00 2013 mysql-general.log.20130529140000.gz
... 1846 5月 29 15:00 2013 mysql-general.log.20130529150000.gz
... 1823 5月 29 16:00 2013 mysql-general.log.20130529160000.gz
... 1840 5月 29 17:00 2013 mysql-general.log.20130529170000.gz
... 1055 5月 29 17:27 2013 mysql-general.log.gz
... 13222 5月 28 18:05 2013 mysql-slowquery.log.20130528180500.gz
... 11287 5月 28 19:00 2013 mysql-slowquery.log.20130528190000.gz
... 12203 5月 28 20:00 2013 mysql-slowquery.log.20130528200000.gz
... 13213 5月 28 21:05 2013 mysql-slowquery.log.20130528210500.gz
... 12454 5月 28 22:05 2013 mysql-slowquery.log.20130528220500.gz
... 12118 5月 28 23:00 2013 mysql-slowquery.log.20130528230000.gz
... 13267 5月 29 00:05 2013 mysql-slowquery.log.20130529000500.gz
... 11316 5月 29 01:00 2013 mysql-slowquery.log.20130529010000.gz
... 12179 5月 29 02:00 2013 mysql-slowquery.log.20130529020000.gz
... 13206 5月 29 03:05 2013 mysql-slowquery.log.20130529030500.gz
... 12254 5月 29 04:05 2013 mysql-slowquery.log.20130529040500.gz
... 11321 5月 29 05:00 2013 mysql-slowquery.log.20130529050000.gz
... 13246 5月 29 06:00 2013 mysql-slowquery.log.20130529060000.gz
... 13036 5月 29 07:05 2013 mysql-slowquery.log.20130529070500.gz
... 12439 5月 29 08:05 2013 mysql-slowquery.log.20130529080500.gz
... 12178 5月 29 09:05 2013 mysql-slowquery.log.20130529090500.gz
... 12184 5月 29 10:05 2013 mysql-slowquery.log.20130529100500.gz
... 11372 5月 29 11:00 2013 mysql-slowquery.log.20130529110000.gz
... 13210 5月 29 12:05 2013 mysql-slowquery.log.20130529120500.gz
... 11285 5月 29 13:00 2013 mysql-slowquery.log.20130529130000.gz
... 13172 5月 29 14:05 2013 mysql-slowquery.log.20130529140500.gz
... 11370 5月 29 15:00 2013 mysql-slowquery.log.20130529150000.gz
... 13232 5月 29 16:05 2013 mysql-slowquery.log.20130529160500.gz
... 11254 5月 29 17:00 2013 mysql-slowquery.log.20130529170000.gz
... 5932 5月 29 17:27 2013 mysql-slowquery.log.gz

ここまで準備ができたら、あとはS3に”s3cmd”などでシンクすればよいと思います。
※上記を定期的に実行することでローテーションされた差分ログが、定期的にアップロードされるはずです。

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

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。