Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- DATE_FILE=/tmp/.ssh.$1.date
- MAX_DIFF_TIME=16
- while true; do
- # ssh runner, note that ssh should be properly configured
- # and should not ask for password
- date +%s > $DATE_FILE
- ssh $@ 'while sleep 1; do echo a; done' | while read i; do
- date +%s > $DATE_FILE
- done &
- # timeout monitor
- while sleep 1; do
- RECEIVED_TIME=`cat $DATE_FILE`
- DIFF_TIME=$((`date +%s`-RECEIVED_TIME))
- printf '\rDiff time: %d sec \r' $DIFF_TIME
- if [[ $DIFF_TIME -gt $MAX_DIFF_TIME ]] && [[ $RECEIVED_TIME -gt 1 ]]; then
- printf "\nKilling jobs"
- for i in `jobs -p`; do (kill $i; kill -9 $i;)&>/dev/null; done
- break
- fi
- done
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement