Mysql backup 備份 - crontab, slack, aws s3

簡單透過 crontab 用 command line 把 mysql db dump 備份出來
並上傳至 s3 後以 slack 通知~

#! /bin/bash

echo "--- start mysql backup ---"

date=$(date +"%Y%m%d")
db_names=( wordpress my_db my_db2 my_db_test )
db_password="your-db-password"

for i in "${db_names[@]}"
do

  db_file="${i}-db-backup"
  sql_file="${db_file}.sql"
  tar_file="${db_file}_${my_date}.tar.bz2"

  mysqldump -u backup --password="${db_password}" --databases ${i} > "${sql_file}"

  tar -jpcf ${tar_file} ${sql_file}

  s3cmd put "${db_file}_${my_date}.tar.bz2" s3://my-s3-db-backup-bucket/

  rm -f ${tar_file} ${sql_file}

  echo "[finish for ${db_file}]"

done

curl -X POST -H 'Content-type: application/json' --data '{"text": "backup completed"}' https://hooks.slack.com/services/xxxxxxx/xxxxxxxxx```