add scripts for Blatt01 and Notes
This commit is contained in:
48
Blatt01/scripts/checkip.sh
Normal file
48
Blatt01/scripts/checkip.sh
Normal file
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
show_ip(){
|
||||
local output=$1
|
||||
ips=()
|
||||
interfaces=()
|
||||
# echo $output
|
||||
while read -r line; do
|
||||
ip=$(echo "$line" | awk '{print $2}' | cut -d'/' -f1)
|
||||
interface=$(echo "$line" | awk '{print $5}')
|
||||
ips+=("$ip")
|
||||
interfaces+=("$interface")
|
||||
done <<< "$output"
|
||||
for i in "${!ips[@]}"; do
|
||||
echo "${ips[i]} ${interfaces[i]}"
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
filename="output/output_$(date +'%m-%d_%H-%M-%S').txt"
|
||||
echo $(date +'%m-%d_%H-%M-%S')
|
||||
echo ' ' > $filename
|
||||
|
||||
ip_cmd='ip address show | grep 10.5'
|
||||
for num in {1..4}
|
||||
do
|
||||
echo "router$num" >> $filename
|
||||
echo "router$num"
|
||||
ip_output=$(ssh router$num $ip_cmd)
|
||||
ips=()
|
||||
interfaces=()
|
||||
|
||||
result=$(show_ip "$ip_output")
|
||||
echo $result
|
||||
echo $result >> $filename
|
||||
|
||||
|
||||
done
|
||||
|
||||
for num in {1..3}
|
||||
do
|
||||
echo "pc$num" >> $filename
|
||||
echo "pc$num"
|
||||
pc_result=$(ssh pc$num $ip_cmd)
|
||||
result=$(show_ip "$pc_result")
|
||||
echo $result >> $filename
|
||||
echo $result
|
||||
done
|
||||
|
103
Blatt01/scripts/testpc.sh
Normal file
103
Blatt01/scripts/testpc.sh
Normal file
@@ -0,0 +1,103 @@
|
||||
#!/bin/bash
|
||||
|
||||
show_ip(){
|
||||
local output=$1
|
||||
ips=()
|
||||
interfaces=()
|
||||
echo $output
|
||||
while read -r line; do
|
||||
ip=$(echo "$line" | awk '{print $2}' | cut -d'/' -f1)
|
||||
interface=$(echo "$line" | awk '{print $5}')
|
||||
ips+=("$ip")
|
||||
interfaces+=("$interface")
|
||||
done <<< "$output"
|
||||
for i in "${!ips[@]}"; do
|
||||
echo "${ips[i]} ${interfaces[i]}"
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
ip_cmd='ip address show | grep 10.5'
|
||||
sender_ip='10.5.1.1/24'
|
||||
rec_ip='10.5.1.2/24'
|
||||
rec_ip_no_code='10.5.1.2'
|
||||
senders=()
|
||||
recs=()
|
||||
sender_eths=()
|
||||
rec_eths=()
|
||||
losses=()
|
||||
|
||||
sender_type="${1:-router}"
|
||||
receiver_type="${2:-router}"
|
||||
if [ "$sender_type" = "router" ]; then
|
||||
sender_ub=4
|
||||
else
|
||||
sender_ub=3
|
||||
fi
|
||||
if [ "$receiver_type" = "router" ]; then
|
||||
rec_ub=4
|
||||
else
|
||||
rec_ub=3
|
||||
fi
|
||||
for sender in $(seq 1 $sender_ub);
|
||||
do
|
||||
sender_eth_nums=$(ssh $sender_type$sender "ip address show" | grep -c '^.*eth[0-9]:')
|
||||
sender_eth_nums=$(($sender_eth_nums-1))
|
||||
echo "$sender_type$sender has $sender_eth_nums eths"
|
||||
for sender_eth_num in $(seq 1 $sender_eth_nums);
|
||||
do
|
||||
# turn on the device
|
||||
ssh $sender_type$sender "ip link set dev eth$sender_eth_num up"
|
||||
ssh $sender_type$sender "ip address add $sender_ip dev eth$sender_eth_num"
|
||||
# for receiver in {1..4}
|
||||
for receiver in $(seq 1 $rec_ub);
|
||||
do
|
||||
receiver_eth_nums=$(ssh $receiver_type$receiver "ip address show" | grep -c '^.*eth[0-9]:')
|
||||
receiver_eth_nums=$(($receiver_eth_nums-1))
|
||||
echo "$receiver_type$receiver has $receiver_eth_nums eths"
|
||||
if [ "$sender_type" = "$receiver_type" ]; then
|
||||
if [ "$sender" -eq "$receiver" ]; then
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
for receiver_eth_num in $(seq 1 $receiver_eth_nums);
|
||||
do
|
||||
ssh $receiver_type$receiver "ip link set dev eth$receiver_eth_num up"
|
||||
ssh $receiver_type$receiver "ip address add $rec_ip dev eth$receiver_eth_num"
|
||||
echo "sen $sender_type$sender eth$sender_eth_num ip $sender_ip"
|
||||
echo "rec $receiver_type$receiver eth$receiver_eth_num ip $rec_ip"
|
||||
ip_output=$(ssh $sender_type$sender $ip_cmd)
|
||||
result=$(show_ip "$ip_output")
|
||||
echo $result
|
||||
|
||||
# test loss
|
||||
loss=$(ssh $sender_type$sender "ping -c 5 -W 2 -I eth$sender_eth_num $rec_ip_no_code | awk -F', ' '/packet loss/ {print \$3}' | awk '{print int(\$1)}'")
|
||||
echo $loss
|
||||
if [ "$loss" -ne 100 ]; then
|
||||
senders+=("$sender")
|
||||
recs+=("$receiver")
|
||||
sender_eths+=("$sender_eth_num")
|
||||
rec_eths+=("$receiver_eth_num")
|
||||
losses+=("$loss")
|
||||
fi
|
||||
|
||||
|
||||
ssh $receiver_type$receiver "ip address del 10.5.1.2/24 dev eth$receiver_eth_num"
|
||||
done
|
||||
done
|
||||
ssh $sender_type$sender "ip address del 10.5.1.1/24 dev eth$sender_eth_num"
|
||||
done
|
||||
done
|
||||
|
||||
echo "results"
|
||||
|
||||
printf "%-10s %-15s %-12s %-15s %-10s\n" "sender #" "sender eth #" "receiver #" "receiver eth #" "losses #"
|
||||
for i in "${!senders[@]}"; do
|
||||
printf "%-10s %-15s %-12s %-15s %-10s\n" "${senders[i]}" "${sender_eths[i]}" "${recs[i]}" "${rec_eths[i]}" "${losses[i]}"
|
||||
done
|
||||
|
||||
# printf "sender #\t sender eth #\t receiver # \t receiver eth # \t losses # \t\n"
|
||||
# for i in "${!senders[@]}"; do
|
||||
# printf "%s\t%s\t%s\t%s\t%s\n" "${senders[i]}" "${sender_eths[i]}" "${recs[i]}" "${rec_eths[i]}" "${losses[i]}"
|
||||
# done
|
||||
|
Reference in New Issue
Block a user