2021-05-05 11:48:34 +08:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
# Host where the smart USB hub is connected
|
|
|
|
# (uhubctl must be installed on the host)
|
|
|
|
export HOST=rpi-3
|
|
|
|
export HOSTPORT=22
|
|
|
|
# Hub port where the RedPitaya is connected
|
|
|
|
export HUBPORT=4
|
2021-05-07 17:31:25 +08:00
|
|
|
# RedPitaya hostname and user information
|
|
|
|
# (The user should have privilege to run `shutdown` - check out `visudo`)
|
|
|
|
# (Add local SSH key to RP's authorized keys for passwordless login)
|
2021-05-05 11:48:34 +08:00
|
|
|
export RP_HOST=rp-f0612e
|
2021-05-07 17:31:25 +08:00
|
|
|
export RP_USER=tester
|
|
|
|
export RP_KEY=~/.ssh/rp
|
2021-05-05 11:48:34 +08:00
|
|
|
|
|
|
|
# Issue shutdown on the RedPitaya
|
2021-05-07 17:31:25 +08:00
|
|
|
echo "Requesting shutdown on RP at $RP_HOST."
|
|
|
|
if [[ $RP_KEY == "" ]]
|
|
|
|
then
|
|
|
|
ssh $RP_USER@$RP_HOST "sudo shutdown 0"
|
|
|
|
else
|
|
|
|
ssh -i $RP_KEY $RP_USER@$RP_HOST "sudo shutdown 0"
|
|
|
|
fi
|
2021-05-05 11:48:34 +08:00
|
|
|
|
|
|
|
# Check if RedPitaya has been disconnected from network by pinging
|
|
|
|
while ping $RP_HOST -c 1 >/dev/null 2>/dev/null
|
|
|
|
do
|
|
|
|
true
|
|
|
|
done
|
|
|
|
# Print time when RedPitaya is down on network
|
|
|
|
TIMESTAMP_PRETTY=$(date '+%Y-%m-%d %H:%M:%S')
|
|
|
|
echo "RP disconnected at $TIMESTAMP_PRETTY."
|
|
|
|
# Wait 15 seconds
|
|
|
|
sleep 15
|
|
|
|
|
|
|
|
# Get power-off time & date
|
|
|
|
TIMESTAMP_PRETTY=$(date '+%Y-%m-%d %H:%M:%S')
|
|
|
|
# Power off RedPitaya connected to the smart USB hub
|
|
|
|
# (assume that only 1 hub is connected)
|
|
|
|
ssh -p $HOSTPORT $HOST "uhubctl -a off -p $HUBPORT"
|
|
|
|
echo "RP powered off at $TIMESTAMP_PRETTY."
|