s4ros

Creatives delivery upload

Nov 25th, 2016
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.21 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # usage
  4. if [[ $# -lt 3 ]]; then
  5.   echo "Usage: $0 <environment> <src-dir>i <dst-dir>"
  6.   echo "  <environment> - prod/stage"
  7.   echo "  <src-dir> - source dir where creatives are stored, e.g. ~/tmp/creatives/new"
  8.   echo "  <dst-dir> - destination directory where creatives should be written, e.g. 55"
  9.   echo "              Warning! Directory prefix is already set to /opt/ang/var/easybidder!"
  10.   exit 1
  11. fi
  12.  
  13. if [[ "$4" == "-d" ]];then
  14.   readonly REPLACE=1
  15. fi
  16. readonly SXPSharedKey=~/.ssh/smartclip_shared_rsa
  17. readonly SSHOPTS="-i $SXPSharedKey -o StrictHostKeyChecking=no"
  18.  
  19. readonly ENVIRONMENT=$1
  20. readonly SRCDIR=$2
  21. readonly DESTDIR=/opt/ang/var/easybidder/$3
  22.  
  23. readonly PROGNAME=$(basename "$0")
  24. readonly LOCKFILE_DIR=/tmp
  25. readonly LOCK_FD=200
  26.  
  27. # HOSTS setup
  28. HOSTS=$1
  29.  
  30. lock() {
  31.     local prefix=$1
  32.     local fd=${2:-$LOCK_FD}
  33.     local lock_file=$LOCKFILE_DIR/$prefix.lock
  34.  
  35.     # create lock file
  36.     eval "exec $fd>$lock_file"
  37.  
  38.     # acquier the lock
  39.     flock -n $fd \
  40.         && return 0 \
  41.         || return 1
  42. }
  43.  
  44. eexit() {
  45.     local error_str="$@"
  46.  
  47.     echo $error_str
  48.     exit 1
  49. }
  50.  
  51.  
  52. main() {
  53.     lock $PROGNAME \
  54.         || eexit "Only one instance of $PROGNAME can run at one time."
  55.  
  56. #  echo $ENVIRONMENT
  57. #  echo $SRCDIR
  58. #  echo $HOSTS
  59. #  echo $DESTDIR
  60.    
  61.   DIRNAME="creatives_$(date '+%F.%s')"
  62.  
  63.   # upload creatives to remote hosts
  64.   for hh in $(cat $HOSTS); do
  65.     echo -n "[$hh] Creating /tmp/$DIRNAME directory - "
  66.     ssh $SSHOPTS ubuntu@${hh} "mkdir /tmp/$DIRNAME" > /dev/null && echo OK || echo FAIL
  67.     echo -n "[$hh] Copying creatives - "
  68.     scp $SSHOPTS $SRCDIR/*.creative ubuntu@${hh}:/tmp/$DIRNAME/ > /dev/null && echo OK || echo FAIL
  69.    
  70.     # delete old creatives if $4 == -d
  71.     if [[ $REPLACE == 1 ]]; then
  72.       echo -n "[$hh] Deleting $DESTDIR -"
  73.       ssh $SSHOPTS ubuntu@${hh} "sudo -u anguser rm -rf $DESTDIR" && echo OK || echo FAIL
  74.     fi
  75.     # move creatives to the proper place
  76.     ssh $SSHOPTS ubuntu@${hh} "sudo -u anguser mkdir -p $DESTDIR"
  77.     echo -n "[$hh] Copying creatives to destination dir $DESTDIR - "
  78.     ssh $SSHOPTS ubuntu@${hh} "sudo -u anguser cp /tmp/$DIRNAME/*.creative ${DESTDIR}/" && echo OK || echo FAIL
  79.   done
  80.  
  81. }
  82.  
  83.  
  84. main
Add Comment
Please, Sign In to add comment