#!/bin/bash sql_save_dir="$HOME/hpr/sql" credential_file="$HOME/.my.cnf" last_update_txt="${sql_save_dir}/last_update.txt" sync_delay="30 mins" last_update_query="SELECT update_time FROM information_schema.tables tab WHERE update_time > (current_timestamp() - interval 30 day) AND table_type = 'BASE TABLE' AND table_name not in ('reservations') AND table_schema not in ('information_schema', 'sys', 'performance_schema','mysql') ORDER BY update_time ASC LIMIT 1;" if [ ! -s "${credential_file}" ] then echo "The file \"${credential_file}\" is missing" exit fi if [ -s "${last_update_txt}" ] then echo "Found the last update file \"${last_update_txt}\"" local_db_last_update_iso8601="$( \date --utc --date="$( cat ${last_update_txt} )" +%Y-%m-%dT%H:%M:%SZ )" local_db_last_update_epoch="$( \date --utc --date="$( cat ${last_update_txt} )" +%s )" echo "Latest change saved locally is ${local_db_last_update_iso8601} (${local_db_last_update_epoch})" fi mysql --disable-column-names --batch --execute="${last_update_query}" | grep -v update_time | head -1 > ${last_update_txt} if [ ! -s "${last_update_txt}" ] then echo "The file \"${last_update_txt}\" is missing" exit fi hpr_db_last_update_iso8601="$( \date --utc --date="$( cat ${last_update_txt} )" +%Y-%m-%dT%H:%M:%SZ )" hpr_db_last_update_epoch="$( \date --utc --date="$( cat ${last_update_txt} )" +%s )" echo "Latest change on the HPR website database is ${hpr_db_last_update_iso8601} (${hpr_db_last_update_epoch})" #TODO check that the db is greater # # # if [ "${hpr_db_last_update_epoch}" -eq "${local_db_last_update_epoch}" ] # # # then # # # echo "The file \"${last_update_txt}\" is missing" # # # exit # # # fi mysqldump --tz-utc --add-drop-database --extended-insert --complete-insert --skip-extended-insert --default-character-set=utf8 --single-transaction --skip-set-charset --databases hpr_hpr > "${sql_save_dir}/hpr_hpr_full.sql" mysqldump --tz-utc --add-drop-database --complete-insert --extended-insert --default-character-set=utf8 --single-transaction --skip-set-charset --databases hpr_hpr --ignore-table=hpr_hpr.reservations > "${sql_save_dir}/hpr.sql" mysqldump --tz-utc --add-drop-database --databases hpr_hpr> "${sql_save_dir}/mysqldump.sql" rsync -av --partial --progress "${sql_save_dir}/hpr.sql" hpr:/docker/users/hpr/hackerpublicradio.org/public_html/hpr.sql