LoginSignup
0
0

More than 3 years have passed since last update.

[memo]shellでAWS S3にログデータを定期に同期させる実行

Posted at

承前

今までPHPのバックエンドしかやってこなかった人間が初めてShell Scriptに挑戦した記録的なやつ。
AWSコマンド(AWS cli)は事前インストールしておいてください

何するの?

EC2に吐き出したログをS3バケットに同期しなきゃという使命感をもって対応する

何した?

EC2のlogを吐き出している場所に対して、S3にSyncをする処理を作る
同期の際は同日に反映されたファイルは上書きするていで良かったらしい(お現場事情)

s3_sync_log_api_details.sh
#!/bin/sh
## s3_sync_log_api_details.sh $@
##

# initial parameter
export PATH=/sbin:/bin:/usr/sbin:/usr/bin
export EC2_REGION=`curl -s http://[domain_name]/latest/meta-data/local-hostname | cut -d '.' -f2`
INSTANCE_ID=`curl -s http://[domain_name]/latest/meta-data/instance-id`
AWS_CONFIG_FILE="/root/.aws/config"

# sync detail directories
LOG_DIR="/var/log/[project_name]"

# sync s3 buckets
BUKET_NAME="s3://[s3_repository_domain]/api/log/"

# sync logging file into s3
aws s3 sync ${LOG_DIR} ${BUKET_NAME}

その次は?

定期的に同期をする必要があるので設定をする必要がありますね
今回は10分毎に同期させようという話

crontab.conf
/10 * * * * cd /srv/www/[my_directory]/config/sync; sh ./s3_sync_log_api_details.sh

時間とかの設定はこちらを参照

感想

このときLaravelを使っていたんですがなんでAtrisanを使わなかったんでしょうねっていう感じ。

でも実はしっかりとバッチで動かすってことをしてこなかったので経験としては非常によかったです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0