/
barad-dur
executable file
·77 lines (65 loc) · 1.34 KB
/
barad-dur
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/bin/bash
# I made sure to prefix all the Pis in the tower with rpi4
function allpis {
grep "rpi4" /etc/hosts | awk '{print $2}'
}
function distribute {
echo "Distributing resources..."
FILES=$@
for file in $FILES
do
for pi in $(allpis)
do
scp $file pi@${pi}:$file
done
done
}
function fallback {
echo "Fallin back troops..."
for pi in $(allpis)
do
ssh $pi 'hostname; reboot; echo'
done
}
function fortify {
echo "Fortifying fortress..."
for pi in $(allpis)
do
ssh $pi 'hostname; sudo apt-get update; echo'
done
}
function quality {
echo "Checking perimeter..."
for pi in $(allpis)
do
ssh $pi 'hostname; vcgencmd measure_temp; java -version; echo'
done
}
function steady {
echo "Steadying the lines... $@"
for pi in $(allpis)
do
ssh $pi "$@"
done
}
COMMAND=$1
case $COMMAND in
distribute | dist)
distribute ${@:2};;
fallback | fall)
fallback;;
fortify | fort)
fortify;;
steady | st)
steady ${@:2};;
quality | q)
quality;;
*)
echo "Command unrecognized. Try the following instead:"
echo "distribute <filename> - to scp files to all units"
echo "fallback - to reboot all units"
echo "fortify - to update all units"
echo "steady - to install packages to all units"
echo "quality - to get the temp of all units"
;;
esac