#!/bin/sh set -f #disable filename globbing mode=$ESPmode #uncomment next line for minimal upsync (via Iridium) #: ${logFiles:=$mode.phase $mode.puck $mode.out CTD-*.hex .././messages} : ${logFiles:=$mode $mode.* *.spr* *.pcr* *.tif* CTD-*.hex .././messages} : ${logHome:=/var/log/$USER} #uncomment next line for upsync in ssh tunnel to rsync daemon on shore : ${rsync:=rsync --append -rzR} ${shore:=shore::$ESPname/$USER} : ${rsync:=rsync --inplace -rzRe \"ssh -yp2323\"} : ${shore:=`hostname`@ESPshore:/home/ftp/$ESPname/$USER} self=`basename $0` case "$1" in --help) cat <&2 Upload ESP logs to $shore First args starting with - are additional rsync options Remaining args are files and directories in $logHome overriding default list Examples: (11/10/21 brent@mbari.org) $self #uploads $logFiles $self -v #upload above files verbosely $self $ESPmode.log #upload just the binary log file $self '*.spr' #upload all spr files Environment variables: \$shore = rsync destination ($shore) \$logHome = source directory ($logHome) \$logFiles = default file list ($logFiles) \$rsync = rsync cmd+options ($rsync) EOS exit 2 esac cd $logHome || exit flags= for arg; do case $arg in -*) flags="$flags $arg" shift continue esac break done [ "$1" ] && logFiles="$@" set -- $logFiles readable= #list of globs specifying readable files for glob; do set +f #resume globbing for src in $glob; do [ -r "$src" ] && { readable="$readable$glob " break } done done [ "$readable" ] || { echo "No readable [$logFiles] files exist in $logHome" >&2 exit 99 } echo "Uploading $logFiles in $logHome to $shore" eval exec $rsync $flags $readable $shore