Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- DB="MYDATABASE"
- PSW="MYPASSWORD"
- MYSQL="mysql -N -B --password=$PSW $DB -e"
- #Define here the domains that will be copied separated with '|'
- LINKS="PrincipalDomain1.com|CopyDomain1.com PrincipalDomain2.com|CopyDomain2.com"
- function splitRows() {
- spDATA="$1"
- _domain_id="$COPY_ID"
- _name="$(echo "$spDATA" | awk -F\\t '{print $2}')"
- _type="$(echo "$spDATA" | awk -F\\t '{print $3}')"
- _content="$(echo "$spDATA" | awk -F\\t '{print $4}')"
- _ttl="$(echo "$spDATA" | awk -F\\t '{print $5}')"
- _prio="$(echo "$spDATA" | awk -F\\t '{print $6}')"
- _change_date="$(echo "$spDATA" | awk -F\\t '{print $7}')"
- [ "$COPYRECORDS" == "EQUAL" ] && _name="$(echo $_name | sed s/"$ORIG"/"$COPY"/g)"
- }
- function copyRecords() {
- for RO in $@; do
- [ "$COPYRECORDS" == "TRANSLATE" ] && RO_DATA=$($MYSQL "select domain_id,name,type,content,ttl,prio,change_date from records where id=$RO;" | sed s/"$ORIG"/"$COPY"/g)
- [ "$COPYRECORDS" == "EQUAL" ] && RO_DATA=$($MYSQL "select domain_id,name,type,content,ttl,prio,change_date from records where id=$RO;")
- [ -z "$RO_DATA" ] && { echo "Some error, id $RO does no exist!"; exit 2; }
- splitRows "$RO_DATA"
- if [ -z "$RECORDS_COPY" ]; then
- #New record
- echo "Inserting $_name"
- $MYSQL "insert into records set domain_id=$_domain_id, name='$_name', type='$_type', content='$_content',ttl=$_ttl,prio=$_prio,change_date=$_change_date;"
- else
- #There are records to write
- ID_COPY=$(echo $RECORDS_COPY | awk '{print $1}')
- RECORDS_COPY=$(echo $RECORDS_COPY | awk '{for (i=2; i<=NF; i++) printf "%s ", $i;}')
- echo "Updating $_name"
- $MYSQL "update records set domain_id=$_domain_id, name='$_name', type='$_type', content='$_content', ttl=$_ttl, prio=$_prio, change_date=$_change_date where id=$ID_COPY;"
- fi
- done
- }
- for L in $LINKS; do
- ORIG="$(echo $L | cut -d\| -f1)"
- COPY="$(echo $L | cut -d\| -f2)"
- ORIG_ID="$($MYSQL "select id from domains where name='$COPY'";)"
- [ -z "$ORIG_ID" ] && { echo "Error: The domain $ORIG does not exist. What do you want to copy?"; exit 2; }
- COPY_ID="$($MYSQL "select id from domains where name='$COPY'";)"
- [ -z "$COPY_ID" ] && { echo "Error: The domain $COPY does not exist, create it first"; exit 2; }
- RECORDS_ORIG=$($MYSQL "select r.id from records r, domains d where (r.type='A' or r.type='CNAME') and r.domain_id=d.id and d.name='$ORIG';")
- RECORDS_ORIG_EQ=$($MYSQL "select r.id from records r, domains d where not(r.type='A' or r.type='CNAME') and r.domain_id=d.id and d.name='$ORIG';")
- RECORDS_COPY=$($MYSQL "select r.id from records r, domains d where r.domain_id=d.id and d.name='$COPY';")
- COPYRECORDS="EQUAL"
- copyRecords $RECORDS_ORIG_EQ
- COPYRECORDS="TRANSLATE"
- copyRecords $RECORDS_ORIG
- if [ ! -z "$RECORDS_COPY" ]; then
- for RC in $RECORDS_COPY; do
- $MYSQL "delete from records where id=$RC;"
- done
- fi
- done
Advertisement
Add Comment
Please, Sign In to add comment