#!/usr/bin/env bash #----------------------------------------------------------------------- # copy files into analysis disk pool: # # dcap://fcdfrdc3.fnal.gov:22126/pnfs/diskpool/ # # copy_to_pool -P pool -d book -d dataset -D directory -p pattern # so far uses door=22126, may want to randomize the choice # if TARGET=pool, then copy is done to pool, otherwise - from pool #----------------------------------------------------------------------- export BOOK=cdfpewk export DATASET=undefined export LOGFILE=/dev/stdout export POOL=stn export DEBUG_SCRIPT=0 export PATTERN= export DOOR=22126 export TARGET=pool undefined=0 parse_parameters() { export OPTIND=1 while getopts :b:c:d:D:l:o:p:P:t:v:x: OPT; do case $OPT in b) # book export BOOK=$OPTARG ; if [ $DEBUG_SCRIPT != 0 ] ; then echo [parse_parameters]: BOOK=$OPTARG >> $LOGFILE fi ;; c) # command line options export COMMAND_LINE_OPTS=$OPTARG ; if [ $DEBUG_SCRIPT != 0 ] ; then echo [parse_parameters]: COMMAND_LINE_OPTS=$OPTARG >> $LOGFILE fi ;; d) # command line options export DATASET=$OPTARG ; if [ $DEBUG_SCRIPT != 0 ] ; then echo [parse_parameters]: \$DATASET=$DATASET >> $LOGFILE fi ;; D) # directory export DIRECTORY=$OPTARG ; if [ $DEBUG_SCRIPT != 0 ] ; then echo [parse_parameters]: \$DIRECTORY=$DIRECTORY >> $LOGFILE fi ;; l) # logfile export LOGFILE=$OPTARG ; if [ $DEBUG_SCRIPT != 0 ] ; then echo [parse_parameters]: \$LOGFILE=$LOGFILE >> $LOGFILE fi ;; o) # door export DOOR=$OPTARG ; if [ $DEBUG_SCRIPT != 0 ] ; then echo [parse_parameters]: \$DOOR=$DOOR >> $LOGFILE fi ;; p) # pattern export PATTERN=$OPTARG ; if [ $DEBUG_SCRIPT != 0 ] ; then echo [parse_parameters]: \$PATTERN=$PATTERN >> $LOGFILE fi ;; P) # pattern export POOL=$OPTARG ; if [ $DEBUG_SCRIPT != 0 ] ; then echo [parse_parameters]: \$POOL=$POOL >> $LOGFILE fi ;; t) # pattern export TARGET=$OPTARG ; if [ $DEBUG_SCRIPT != 0 ] ; then echo [parse_parameters]: \$TARGET=$TARGET >> $LOGFILE fi ;; v) # debug script, # should go first export DEBUG_SCRIPT=$OPTARG echo [parse_parameters]: ------------------------------- # >> $LOGFILE echo [parse_parameters]: command line: $0 $* # >> $LOGFILE echo [parse_parameters]: ------------------------------- # >> $LOGFILE ;; x) # export export $OPTARG echo [parse_parameters]: export $OPTARG # >> $LOGFILE REDEFINED_ENV_VARS=${REDEFINED_ENV_VARS}" "$OPTARG ;; *) echo [parse_parameters]: OTHER: $OPT $OPTARG >> $LOGFILE usage undefined=1 ;; esac done } #----------------------------------------------------------------------- # parse command line parameters #----------------------------------------------------------------------- parse_parameters $* if [ $undefined == "1" ] ; then echo there were undefined parameters ! >> $LOGFILE else #----------------------------------------------------------------------- # and do the copy itself #----------------------------------------------------------------------- ld_pr=$LD_PRELOAD prefix="" if [ $DEBUG_SCRIPT == "debug_only" ] ; then prefix="echo" ; fi if [ $TARGET == "pool" ] ; then for f in `ls $DIRECTORY | grep $PATTERN` ; do # echo $f cmd="dccp $DIRECTORY/$f dcap://fcdfrdc3.fnal.gov:$DOOR/pnfs/diskpool/$POOL/$BOOK/$DATASET/$f" echo $cmd $prefix $cmd done else cmd="ls dcap://fcdfrdc3.fnal.gov:$DOOR/pnfs/diskpool/$POOL/$BOOK/$DATASET/ \| grep $PATTERN" echo cmd=$cmd files=`$cmd` echo \$files=$files unset LD_PRELOAD for f in $files ; do echo file=$f cmd="dccp dcap://fcdfrdc3.fnal.gov:$DOOR/pnfs/diskpool/$POOL/$BOOK/$DATASET/$f $DIRECTORY/$f" echo $cmd $prefix $cmd done fi export LD_PRELOAD=$ld_pr fi #----------------------------------------------------------------------- # done #-----------------------------------------------------------------------