this post was submitted on 08 Dec 2024
13 points (93.3% liked)

Linux Questions

1172 readers
11 users here now

Linux questions Rules (in addition of the Lemmy.zip rules)

Tips for giving and receiving help

Any rule violations will result in disciplinary actions

founded 1 year ago
MODERATORS
 

I've got this command in a bash script:

TEST=$(curl -o /dev/null -s -k -w "%{http_code}" -u "${USERNAME}:${PASSWORD}" "${URL}/dashboard/")
echo "${TEST}" #debug

When the script runs, the output is "000".

When I run the same curl command from the shell, the output is "200" (which is correct, since the URL is valid).

I verified that the USERNAME, PASSWORD, and URL vars are being passed to the subshell.

I'd appreciate it if you could point out what I'm doing wrong here. :)

UPDATE: This has been solved.

you are viewing a single comment's thread
view the rest of the comments
[–] rwdf 1 points 2 weeks ago (10 children)

Exit code 7 means curl couldn't connect to the host, so I would try just curling a URL you know is valid directly, not setting it as an env var, to see what happens then.

[–] [email protected] 1 points 2 weeks ago (9 children)

So I guess the question is why is curl failing from within the subshell?

[–] [email protected] 2 points 2 weeks ago (6 children)

I stumbled on a possible cause, but more background is necessary to explain.

The script actually creates an ssh tunnel (to the Traefik host) and then does the curl. So the code is like:

SSH_CMD="ssh -N -L ${LOCAL_PORT}:127.0.0.1:${REMOTE_PORT} ${REMOTE_USER}@${REMOTE_HOST}"
$SSH_CMD &
SSH_PID=$!
SSH_RESULT=$?

TEST=$(curl -o /dev/null -s -k -w "%{http_code}" -u "${USERNAME}:${PASSWORD}" "${URL}/dashboard/")
echo "${TEST}" #debug

What I learned is that when i run the script, the tunnel is successfully created but the curl fails; but then if I run the script again a second tunnel is created and the curl works fine.

[–] rwdf 1 points 2 weeks ago

Are you trying to reach a URL on the same host you're ssh-ing to? That would create some interesting effects.

Especially since it works the second time it could mean that the second time you're actually on the host and ssh-ing to the host itself and then curling localhost.

load more comments (5 replies)
load more comments (7 replies)
load more comments (7 replies)