Created
February 16, 2018 00:27
-
-
Save mubbashir/5ed2da424d672a6215e76ccf37ea72fb to your computer and use it in GitHub Desktop.
bash waiting for files to appear on multiple hosts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
await_file_received() | |
{ | |
printf "===> checking the number of raw files on all workstations...\n" | |
fileHOST=`find /files/dict -type f | wc -l` | |
file_REMOTE_HOST_1=`ssh uesr@${REMOTE_HOST_1} "find /files/dict -type f | wc -l"` | |
file_REMOTE_HOST_2=`uesr@${REMOTE_HOST_2} "find /files/dict -type f | wc -l"` | |
## Calculating diff using bc for details read `man bc` | |
diff_HOST_REMOTE_1=`echo ${fileHOST} - ${file_REMOTE_HOST_1} | bc` | |
diff_HOST_REMOTE_2=`echo ${fileHOST} - ${file_REMOTE_HOST_2} | bc` | |
printf "===> fileHOST: ${fileHOST} file_REMOTE_HOST_1:${file_REMOTE_HOST_1} file_REMOTE_HOST_2:${file_REMOTE_HOST_2} ...\n" | |
printf "===> diff_HOST_REMOTE_2: ${diff_HOST_REMOTE_2} diff_HOST_REMOTE_1:${diff_HOST_REMOTE_1} ...\n" | |
SLEEP=300 | |
while [ $SLEEP -gt 0 ] && [ $diff_HOST_REMOTE_2 -gt 0 ] && [ $diff_HOST_REMOTE_1 -gt 0 ]; | |
do | |
printf "waiting $SLEEP more seconds for diff_HOST_REMOTE_2: ${diff_HOST_REMOTE_2} diff_HOST_REMOTE_1:${diff_HOST_REMOTE_1} to be zero ...\n" | |
sleep 10; | |
file_REMOTE_HOST_1=`ssh uesr@${REMOTE_HOST_1} "find /files/dict -type f | wc -l"` | |
file_REMOTE_HOST_2=`uesr@${REMOTE_HOST_2} "find /files/dict -type f | wc -l"` | |
diff_HOST_REMOTE_1=`echo ${fileHOST} - ${file_REMOTE_HOST_1} | bc` | |
diff_HOST_REMOTE_2=`echo ${fileHOST} - ${file_REMOTE_HOST_2} | bc` | |
SLEEP=`echo "$SLEEP - 10" | bc` | |
done | |
} | |
## Calling await_file_received | |
await_file_received |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment