Telnet connection stops bash script
I have a bash script where I continuously read from a text file the hosts and port and create a connection to check for the status.
My code is:
while IFS=";" read -r host ports
do
eval "arr=($ports)"
for port in "${arr[@]}";
do
echo "connecting to $host on port $port" >> output.txt
timeout 5s telnet $host $port
exit_status=$?
if [[ $exit_status -eq 124 ]]; then
echo "$host on $port has timed out" >> output.txt
else
telnet $host $port >> output.txt
fi
echo "---------------------------------------------" >> output.txt
done
done < "$1"
The first if is to check if the connection timeouts.
That works as expected.
In the else
block the script exits if the connection has been established. I am not sure why this happens.
It stops by spitting out:
Escape character is '^]'.
Connection closed by foreign host.
I am looking for it to write to the output file status of the connection.
bash shell-script telnet
New contributor
add a comment |
I have a bash script where I continuously read from a text file the hosts and port and create a connection to check for the status.
My code is:
while IFS=";" read -r host ports
do
eval "arr=($ports)"
for port in "${arr[@]}";
do
echo "connecting to $host on port $port" >> output.txt
timeout 5s telnet $host $port
exit_status=$?
if [[ $exit_status -eq 124 ]]; then
echo "$host on $port has timed out" >> output.txt
else
telnet $host $port >> output.txt
fi
echo "---------------------------------------------" >> output.txt
done
done < "$1"
The first if is to check if the connection timeouts.
That works as expected.
In the else
block the script exits if the connection has been established. I am not sure why this happens.
It stops by spitting out:
Escape character is '^]'.
Connection closed by foreign host.
I am looking for it to write to the output file status of the connection.
bash shell-script telnet
New contributor
What do you mean, "file status"? You've determined that the port didn't time out, but what's the point of thetelnet
connection? Are you hoping to establish a connection and execute a command?
– Jeff Schaller
56 mins ago
add a comment |
I have a bash script where I continuously read from a text file the hosts and port and create a connection to check for the status.
My code is:
while IFS=";" read -r host ports
do
eval "arr=($ports)"
for port in "${arr[@]}";
do
echo "connecting to $host on port $port" >> output.txt
timeout 5s telnet $host $port
exit_status=$?
if [[ $exit_status -eq 124 ]]; then
echo "$host on $port has timed out" >> output.txt
else
telnet $host $port >> output.txt
fi
echo "---------------------------------------------" >> output.txt
done
done < "$1"
The first if is to check if the connection timeouts.
That works as expected.
In the else
block the script exits if the connection has been established. I am not sure why this happens.
It stops by spitting out:
Escape character is '^]'.
Connection closed by foreign host.
I am looking for it to write to the output file status of the connection.
bash shell-script telnet
New contributor
I have a bash script where I continuously read from a text file the hosts and port and create a connection to check for the status.
My code is:
while IFS=";" read -r host ports
do
eval "arr=($ports)"
for port in "${arr[@]}";
do
echo "connecting to $host on port $port" >> output.txt
timeout 5s telnet $host $port
exit_status=$?
if [[ $exit_status -eq 124 ]]; then
echo "$host on $port has timed out" >> output.txt
else
telnet $host $port >> output.txt
fi
echo "---------------------------------------------" >> output.txt
done
done < "$1"
The first if is to check if the connection timeouts.
That works as expected.
In the else
block the script exits if the connection has been established. I am not sure why this happens.
It stops by spitting out:
Escape character is '^]'.
Connection closed by foreign host.
I am looking for it to write to the output file status of the connection.
bash shell-script telnet
bash shell-script telnet
New contributor
New contributor
New contributor
asked 1 hour ago
Ronakh Thaikkat
101
101
New contributor
New contributor
What do you mean, "file status"? You've determined that the port didn't time out, but what's the point of thetelnet
connection? Are you hoping to establish a connection and execute a command?
– Jeff Schaller
56 mins ago
add a comment |
What do you mean, "file status"? You've determined that the port didn't time out, but what's the point of thetelnet
connection? Are you hoping to establish a connection and execute a command?
– Jeff Schaller
56 mins ago
What do you mean, "file status"? You've determined that the port didn't time out, but what's the point of the
telnet
connection? Are you hoping to establish a connection and execute a command?– Jeff Schaller
56 mins ago
What do you mean, "file status"? You've determined that the port didn't time out, but what's the point of the
telnet
connection? Are you hoping to establish a connection and execute a command?– Jeff Schaller
56 mins ago
add a comment |
1 Answer
1
active
oldest
votes
Both telnet
commands will attempt to read from the remains of your $1
file, whatever that may be. So your loop may get executed an unexpectedly fewer number of times.
I'm not sure what input you were expecting to provide to telnet
though.
Incidentally, if you have it installed you'd be better off using netcat
(sometimes known as nc
). It won't solve it change the input issue but it is usually a better tool for this kind of scripted interaction.
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Ronakh Thaikkat is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f491350%2ftelnet-connection-stops-bash-script%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Both telnet
commands will attempt to read from the remains of your $1
file, whatever that may be. So your loop may get executed an unexpectedly fewer number of times.
I'm not sure what input you were expecting to provide to telnet
though.
Incidentally, if you have it installed you'd be better off using netcat
(sometimes known as nc
). It won't solve it change the input issue but it is usually a better tool for this kind of scripted interaction.
add a comment |
Both telnet
commands will attempt to read from the remains of your $1
file, whatever that may be. So your loop may get executed an unexpectedly fewer number of times.
I'm not sure what input you were expecting to provide to telnet
though.
Incidentally, if you have it installed you'd be better off using netcat
(sometimes known as nc
). It won't solve it change the input issue but it is usually a better tool for this kind of scripted interaction.
add a comment |
Both telnet
commands will attempt to read from the remains of your $1
file, whatever that may be. So your loop may get executed an unexpectedly fewer number of times.
I'm not sure what input you were expecting to provide to telnet
though.
Incidentally, if you have it installed you'd be better off using netcat
(sometimes known as nc
). It won't solve it change the input issue but it is usually a better tool for this kind of scripted interaction.
Both telnet
commands will attempt to read from the remains of your $1
file, whatever that may be. So your loop may get executed an unexpectedly fewer number of times.
I'm not sure what input you were expecting to provide to telnet
though.
Incidentally, if you have it installed you'd be better off using netcat
(sometimes known as nc
). It won't solve it change the input issue but it is usually a better tool for this kind of scripted interaction.
edited 32 mins ago
answered 57 mins ago
roaima
42.8k551116
42.8k551116
add a comment |
add a comment |
Ronakh Thaikkat is a new contributor. Be nice, and check out our Code of Conduct.
Ronakh Thaikkat is a new contributor. Be nice, and check out our Code of Conduct.
Ronakh Thaikkat is a new contributor. Be nice, and check out our Code of Conduct.
Ronakh Thaikkat is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f491350%2ftelnet-connection-stops-bash-script%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
What do you mean, "file status"? You've determined that the port didn't time out, but what's the point of the
telnet
connection? Are you hoping to establish a connection and execute a command?– Jeff Schaller
56 mins ago