I am trying to create a shell script where it should prompt and read the values as input and then update the same shell script with that value in a specific line and column.
Or if i can use another shell script to get the values and update original file.
i wanted to read and update below parameters values as input
JavaScript
x
USER=''user''
PASS=''password''
URL=''http://10.xxx.xxx.xxx:9206/MGR/status''
PORT1=''9204''
PORT2=''9206''
Full script
JavaScript
#!/bin/bash
USER=''user''
PASS=''password''
URL=''http://10.xxx.xxx.xxx:9206/MGR/status''
PORT1=''9204''
PORT2=''9206''
echo Metrics for $PORT1
echo =====================
maxthreads=`curl -s -u ${USER}:${PASS} ${URL} | grep -o ${PORT1}.* | awk '{ print $4 }'`
echo Max Threads: $maxthreads
currentthreadcount=`curl -s -u ${USER}:${PASS} ${URL} | grep -o ${PORT1}.* | awk '{ print $8 }'`
echo Current Threads: $currentthreadcount
busythreadcount=`curl -s -u ${USER}:${PASS} ${URL} | grep -o ${PORT1}.* | awk '{gsub("<br>", "");print $12}'`
echo Busy Threads: $busythreadcount
maxprocesstime=`curl -s -u ${USER}:${PASS} ${URL} | grep -o ${PORT1}.* | awk '{ print $16 }'`
echo Max Processing Time: $maxprocesstime
processtime=`curl -s -u ${USER}:${PASS} ${URL} | grep -o ${PORT1}.* | awk '{ print $20 }'`
echo Processing Time: $processtime
requestcount=`curl -s -u ${USER}:${PASS} ${URL} | grep -o ${PORT1}.* | awk '{ print $24 }'`
echo Request Count: $requestcount
errorcount=`curl -s -u ${USER}:${PASS} ${URL} | grep -o ${PORT1}.* | awk '{ print $27 }'`
echo Error Count: $errorcount
echo Metrics for $PORT2
echo =====================
maxthreads=`curl -s -u ${USER}:${PASS} ${URL} | grep -o ${PORT2}.* | awk '{ print $4 }'`
echo Max Threads: $maxthreads
currentthreadcount=`curl -s -u ${USER}:${PASS} ${URL} | grep -o ${PORT2}.* | awk '{ print $8 }'`
echo Current Threads: $currentthreadcount
busythreadcount=`curl -s -u ${USER}:${PASS} ${URL} | grep -o ${PORT2}.* | awk '{gsub("<br>", "");print $12}'`
echo Busy Threads: $busythreadcount
maxprocesstime=`curl -s -u ${USER}:${PASS} ${URL} | grep -o ${PORT2}.* | awk '{ print $16 }'`
echo Max Processing Time: $maxprocesstime
processtime=`curl -s -u ${USER}:${PASS} ${URL} | grep -o ${PORT2}.* | awk '{ print $20 }'`
echo Processing Time: $processtime
requestcount=`curl -s -u ${USER}:${PASS} ${URL} | grep -o ${PORT2}.* | awk '{ print $24 }'`
echo Request Count: $requestcount
errorcount=`curl -s -u ${USER}:${PASS} ${URL} | grep -o ${PORT2}.* | awk '{ print $27 }'`
echo Error Count: $errorcount
My intension is not to edit the file and input values, instead read it as prompt and update the file in background.
Advertisement
Answer
Thanks Team. I did another method for achieving this using AWS secret manager. The code can read the data from secret manager. So our engineer can update the same in secret manager as a key value pair. Thank you all for the suggestion and help. I will further look into the option suggested to improve the code.