#!/bin/bash SUBDIR= ThisDev=Dirigent source Commons.sh SessionDate=`date '+%Y:%m:%d_%H:%M'` function OpenSession() { #PingCheck mkdir -p $SHM; mkdir -p $SHM/Shots echo `DataBaseQuerry "SELECT shot_no FROM shots_new ORDER BY timestamp DESC LIMIT 1;"` > $SHM/ShotNo $LogFunctionStart LogIt $SessionDate mkdir -p $SHM/Control; cp *.* $SHM/Control/ RsyncDevices for Dev in $INFRASTRDevs; do mkdir -p $SHM/$Dev DeviceCommand $Dev OpenSession sshfs golem@$Dev:$SHM/ $SHM/$Dev/ done $LogFunctionEnd } function CloseSession() { $LogFunctionStart mkdir ~/Sessions/$SessionDate for Dev in $INFRASTRDevs; do fusermount -u $SHM/$Dev/ DeviceCommand $Dev CloseSession done rsync -a $SHM/ ~/Sessions/$SessionDate #Bude muset byt trochu vyse . $LogFunctionEnd rm -rf $SHM LogIt "^C" } function Broadcast() { LogIt "********* Broadcasting `echo "$1" | tr a-z A-Z`" for Dev in $INFRASTRDevs; do #echo `ssh golem@$Dev "source $Dev.sh;$1"|tail -1` if [ `ssh golem@$Dev "source $Dev.sh;$@"|tail -1` != "OK" ]; then critical_error "Broadcast $Dev $1 KO";exit 1;fi & done wait LogIt "*********`echo "$1" | tr a-z A-Z` end" } function MakeDischarge() { ShotNo=$((`cat $SHM/ShotNo`+1));echo $ShotNo>$SHM/ShotNo LogIt "################# Discharge #$ShotNo ##################" mkdir -p $SHM0; mkdir -p $SHM0/Control; cp *.* $SHM0/Control/ #PingCheck #Ping all the devices .. LogIt "Command Line: $COMMANDLINE" LogIt "Load average: `cat /proc/loadavg`" echo $ShotNo>$SHM/ShotNo; Broadcast InitDischarge Broadcast PrepareDischarge $1 $2 $3 $WGpressure $PreionFlag Broadcast Arming sleep 2;Discharge Trigger;sleep 2 Broadcast PostDisch sleep 3 Broadcast Final cp -r $SHM0 $SHM/Shots/$ShotNo $LogFunctionEnd } function Emergency () { $LogFunctionPassing } function Null () { $LogFunctionPassing } function Final() { LogIt "Load average: `cat /proc/loadavg`" } TASK=$1 COMMANDLINE=`echo $@|sed 's/-r //g'` PAR1=$1 PAR2=$2 PAR3=$3 PAR4=$4 while [ $# -gt 0 ]; do if [[ $1 == *"--"* ]]; then v="${1/--/}" declare $v="$2" fi shift done case "$TASK" in "") # echo "Usage: $0 [-d|--discharge] [-v|--vacuum] [-t|--test] [-s|--shutdown]" RETVAL=1 ;; --discharge|-d) RsyncDevices MakeDischarge $UBt $Ucd ;; --vacuum|-v) echo i ;; --test|-t) #Init #Et "Init;Prepare 400 300" #PwSpPap 3H #PwSp UnPiRelayON 5 #Chamber RotPumpON #Bt ShCt_DIS;Bt PS_ENG;sleep 0.3;Bt PS_DIS;Bt ShCt_ENG #Et ShCt_DIS;Et PS_ENG;sleep 0.3;Et PS_DIS;Et ShCt_ENG Broadcast Arming ;; --shutdown|-s) ShutDown ;; --emergency|-e) Broadcast Emergency ;; --ping|-p) PingCheck ;; --close_session|-c) CloseSession ;; --raw_command|-r) RsyncDevices $COMMANDLINE ;; --open_session|-o) OpenSession ;; --logbook|-l) tail -f /dev/shm/golem/GlobalLogbook ;; --rsync) RsyncDevices ;; --post) Broadcast PostDisch ;; --commit) git add .; git commit -am "$PAR1" ;; --help) echo "COMMIT: ./Dirigent.sh --commit \"Commit text\"" ;; esac