#!/bin/sh # RUN ON A TEST SERVER WITH UP-TO-DATE CLONE OF REQUIRED DB - SEE README.TXT # copies cloned database (supplied from command-line switch) to anon_tmp db on localhost # anonymises names, dob & nhs_numbers in patients table + patient_case.unit_numbers # creates new output file as .gz in current dir if [ $# -lt 3 ] then echo "usage: $0 " exit 0 fi SRC_DB=$1 USERNAME=$2 PASSWORD=$3 SERVER=localhost TMP_DB=anon_tmp GZ=$SRC_DB.anonymised.sql # echo "$SRC_DB" # echo "$GZ" mysql -u$USERNAME -p$PASSWORD -e "create database if not exists $TMP_DB" mysqldump --opt --verbose -h $SERVER -u$USERNAME -p$PASSWORD $SRC_DB \ --ignore-table=$SRC_DB.patient_bcr_abl \ --ignore-table=$SRC.SRC_DB.patient_demographics \ --ignore-table=$SRC_DB.patient_edits \ --ignore-table=$SRC_DB.patient_notes \ --ignore-table=$SRC_DB.pre_registration \ --ignore-table=$SRC_DB.request_form \ --ignore-table=$SRC_DB.request_storage_copy \ --ignore-table=$SRC_DB.user_messages \ --ignore-table=$SRC_DB._email_contacts \ | mysql -u$USERNAME -p$PASSWORD $TMP_DB perl anonymise_db.pl $TMP_DB $SRC_DB echo "compressing ......." # -t = Do not write CREATE TABLE statements that re-create each dumped table # -c = Use complete INSERT statements that include column names mysqldump -u $USERNAME -p$PASSWORD $TMP_DB -c | gzip -9 - >$GZ.gz # -9 = best compression mysql -u$USERNAME -p$PASSWORD -e "drop database $TMP_DB" echo "done"