0

Im working on a bash script to search for all mikrotik devices with is open on port 8291, ssh into each device and execute some command.

If I do a normal while loop trough ip.txt, it echo's fine.

while read REMOTE_CLIENT
do
        echo "$REMOTE_CLIENT"
done < $REMOTE_CLIENT
#!/bin/bash

IP_RANGE="10.0-8.0-1.*"
SSH_USER="Username"
SSH_PASS="Password"
CMD='/system identity print'

LOCAL_DIR=$(pwd)
LOG=$LOCAL_DIR/Mikrotik_SSH.log
REMOTE_CLIENT=$LOCAL_DIR/ip.txt

echo -e "\033[1mMikrotik SSH utility\033[0m"
echo ""
sleep 1
echo -e "\e[93mRunning NMap Scan - Might Take up to 5 min\e[0m"
echo ""
nmap -n -sT -T4 -p 8291 --open $IP_RANGE -oG - | awk '/Up$/{print $2}' > ip.txt
echo -e "\e[31mNMap scan completed and IP's stored in ips.txt\e[0m"
echo ""
sleep 1
echo -e "\e[92mExecuting ssh & injecting command $CMD\e[0m"
echo ""
echo $CMD > $LOG
echo "--------------------------------------------------------------------------------" >> $LOG

while read HOST;
do
    if  sshpass -p $SSH_PASS ssh -T -o StrictHostKeyChecking=no -o IPQoS=throughput $SSH_USER@$HOST $CMD >> $LOG;
    then
        echo "$HOST Passed" >> $LOG;
        echo "--------------------------------------------------------------------------------";
        echo "$HOST == Passed";
    else
        echo "$HOST == Failed" >> $LOG;
        echo "--------------------------------------------------------------------------------";
        echo "$HOST == Failed";
    fi
        echo "--------------------------------------------------------------------------------";
        echo "--------------------------------------------------------------------------------" >> $LOG;
done < $REMOTE_CLIENT

echo "Done!"

Mikrotik_SSH.log

/system identity print
--------------------------------------------------------------------------------
  name: Some Name

10.4.0.205 Passed
--------------------------------------------------------------------------------

Expected to loop though each IP in ip.txt and not to stop at only one. Also would like to have CMD=$LOCAL_DIR/Mikrotik_Command.txt

A.J. Hart
  • 143
  • 6

0 Answers0