#!/bin/bash # $HeadURL: https://svn.pasta.freemyip.com/main/miniade/trunk/bin/nop-sh $ $LastChangedRevision: 10133 $ # Modules . $(miniade) || { echo "${0##*/}: ERROR: miniade failed (hint: run 'miniade' to see error)" >&2; exit 1; } # Configurable stuff SRC_TAPE_ID=vtape005 DST_TAPE_ID=vtape006 # Other globals main() { local MY_ARGS #local PROGNAME # Defaults for options # Process options miniade_process_options MY_ARGS "$@" && set -- "${MY_ARGS[@]}" # Process arguments [ $# = 0 ] || usage # Sanity checks and derivations # Guts echo "$(date): starting cloning ..." for SRC_TAPE_ROOT in /srv/$SRC_TAPE_ID/$SRC_TAPE_ID.0*; do DST_TAPE_ROOT=${SRC_TAPE_ROOT//$SRC_TAPE_ID/$DST_TAPE_ID} echo "$(date): starting tape $SRC_TAPE_ROOT ..." for SET in $(ls $SRC_TAPE_ROOT); do echo "$(date): starting set $SRC_TAPE_ROOT/$SET ..." for DLE in $(ls $SRC_TAPE_ROOT/$SET); do mkdir -p $DST_TAPE_ROOT/$SET/$DLE echo "$(date): starting dle $SRC_TAPE_ROOT/$SET/$DLE ..." miniade_evaler "rsync --exclude '.rdw2*' -a --delete --delete-excluded $SRC_TAPE_ROOT/$SET/$DLE/ $DST_TAPE_ROOT/$SET/$DLE/" || true echo "$(date): finished dle $SRC_TAPE_ROOT/$SET/$DLE" done echo "$(date): finished set $SRC_TAPE_ROOT/$SET" done echo "$(date): finished tape $SRC_TAPE_ROOT" done echo "$(date): finished cloning" echo "$(date): checking for missing/obsolete dles ..." diff <(find /srv/$SRC_TAPE_ID/ -maxdepth 3 | sort) <(find /srv/$DST_TAPE_ID/ -maxdepth 3 | sort | sed 's/$DST_TAPE_ID/$SRC_TAPE_ID/g') || true } main "$@"