forked from metalicjames/rolis-eurosys2022
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbatch_silo.sh
executable file
·85 lines (74 loc) · 2.01 KB
/
batch_silo.sh
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
78
79
80
81
82
83
repos="rolis-eurosys2022" # repos name, default
workdir="~" # we default put our repos under the root
leadrIP=$( cat ./scripts/ip_leader_replica )
p1=$( cat ./scripts/ip_p1_follower_replica )
p2=$( cat ./scripts/ip_p2_follower_replica )
clients=(
$p1 # p1 follower replica IP
$p2 # p2 follower replica IP
)
#repos="silo-sto"
#workdir="~/weihai-projects"
cmd1=""
cmd2="sudo skill dbtest;sudo pkill dbtest; sleep 1"
cmd3="sudo rm -rf $workdir/$repos/xxxx15/*; sudo rm -rf $workdir/$repos/xxxx15_micro/*" # sudo rm -rf ~/meerkat/logs/* && sudo rm -rf /tmp/* && sudo rm -rf ~/boost_1_70_0 ~/boost_1_70_0.tar.bz2 ~/dpdk-19.11.5.tar.gz ~/dpdk-stable-19.11.5 ~/eRPC"
cmd4=""
cmd5=""
cmd6="scp -r $USER@$p1:$workdir/$repos/$2 tmp-000.log; scp -r $USER@$p2:$workdir/$repos/$2 tmp-111.log; cat tmp-000.log tmp-111.log > p1p2.log; rm tmp-000.log; rm tmp-111.log"
# for the leader replica
if [ $1 == 'scp' ]; then
:
elif [ $1 == 'kill' ]; then
echo "kill local"
eval $cmd2
elif [ $1 == 'del' ]; then
echo "del local"
eval $cmd3
elif [ $1 == 'install' ]; then
:
elif [ $1 == 'init' ]; then
:
elif [ $1 == 'copy_remote_file' ]; then
echo "copy the remote file, cmd: $cmd6"
eval $cmd6
else
:
fi
cmd1="cd $workdir ; sudo rm -rf $repos; scp -r $username@$leadrIP:$workdir/$repos ."
cmd2="sudo skill dbtest;sudo pkill dbtest; sleep 1"
cmd3="sudo rm -rf $workdir/$repos/xxxx15/*; sudo rm -rf $workdir/$repos/xxxx15_micro/*"
cmd4=""
cmd5=""
cmd6=""
# for the two follower replicas
for host in ${clients[@]}
do
if [ $1 == 'scp' ]; then
echo "scp to $host cmd: $cmd1 "
ssh $host "$cmd1" &
elif [ $1 == 'kill' ]; then
echo "kill host $host"
ssh $host "$cmd2" &
elif [ $1 == 'del' ]; then
echo "kill host $host"
ssh $host "$cmd3" &
elif [ $1 == 'install' ]; then
:
elif [ $1 == 'init' ]; then
:
else
:
fi
done
echo "Wait for jobs..."
FAIL=0
for job in `jobs -p`
do
wait $job || let "FAIL+=1"
done
if [ "$FAIL" == "0" ];
then
echo "YAY!"
else
echo "FAIL! ($FAIL)"
fi