Skip to content

Instantly share code, notes, and snippets.

@simbalinux
Created July 13, 2018 00:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save simbalinux/e805acee949285ce4fe002842a4727c2 to your computer and use it in GitHub Desktop.
Save simbalinux/e805acee949285ce4fe002842a4727c2 to your computer and use it in GitHub Desktop.
Shell Program to manage scp xfers
#!/bin/bash
#GLOBAL VARS
set -x
DATE=`date +%Y-%m-%d.%H:%M:%S`
RECIPIENTS="user@domain.com"
STAGING=/nas/tbdata/.encrypted_file
EXTRACT=/nas/tbdata2
ARCHIVE=/nas/tbdata/.encrypted_file/md5
MD5="user@obfuscated.domain.com:/erp.tar.gpg.md5"
DATA="user@obfuscated.domain.com:/erp.tar.gpg"
KEY=$HOME/.ssh/tb
#clean up the previous jobs files
clean_up() {
rm $1/erp.tar
rm -rf $2/erp
rm $1/erp.tar.gpg
}
#pull down current md5 & statge, then assign GLOBAL VARS to compare
copy_md5() {
scp -o ConnectTimeout=30 -P 2222 -i $KEY $1 $2
NEW=$(cat $2/erp.tar.gpg.md5 | awk '{print $1}')
OLD=$(cat $3/erp.tar.gpg.md5 | awk '{print $1}')
}
#scp erp data and do work to extract
copy_erp() {
scp -P 2222 -i $KEY $3 $1
gpg -o $1/erp.tar -d $1/erp.tar.gpg
tar -xf $1/erp.tar -C $2
mv $1/erp.tar.gpg.md5 $4
cp $4/erp.tar.gpg.md5 $4/erp.tar.gpg.md5_$(date +%Y-%m-%d.%H:%M:%S)
echo "Subject: file transfer was successful MD5=$NEW"
stat $2
tree -s $2
}
#function is ran IF OLD == NEW
skip_job() {
echo "Subject: Run skipped MD5's the same:"
echo "Archived MD5: `echo $OLD`"
echo "Downloaded MD5: `echo $NEW`"
rm -vf $2/erp.tar.gpg.md5
stat $EXTRACT
tree -s $EXTRACT
}
######
copy_md5 $MD5 $STAGING $ARCHIVE
#if an OLD hash does not exist, then we copy ERP data
if [ -z $OLD ]
then
clean_up $STAGING $EXTRACT
copy_erp $STAGING $EXTRACT $DATA $ARCHIVE
#else OLD == NEW we skip_job()
else
if [ $OLD = $NEW ]
then
skip_job $ARCHIVE $STAGING
else
#condition is TRUE else OLD != NEW
clean_up $STAGING $EXTRACT
copy_erp $STAGING $EXTRACT $DATA $ARCHIVE
fi
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment