Help understanding what this ls -l command is checking in a script


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
# 1  
Help understanding what this ls -l command is checking in a script

Hello,

we have a script that has the two following lines:

Code:
ssh -qno StrictHostKeyChecking=no -o ConnectTimeout=1 user@IP 'ls -l /home/opsmgrsvc >/dev/null 2>&1' > /dev/null 2>&1
 status="$(echo $?)"

I can't understand what these two lines are doing?
When I execute the first line nothing is output. I get that the command is being directed somewhere that is not shown. And when I execute the echo $? line I get a number. Not sure what this number means though? Is this command checking if I can successfully login to this server or not?

Also, is there a way to concatenate the two lines into one command line instruction to return the value?

Thank you.

Last edited by jim mcnamara; 1 Week Ago at 07:37 PM..
# 2  
The command connects to a remote server, does and ls -l of a directory, which list files in the directory on the remote machine. The command is between the tic characters '

The output of the ls command goes into the bit bucket (kind of like a black hole for output). The status of the ssh connect and ls (success ( == 0 ) or failure code (== non-zero) ) is stored in the variable $status.

A sort of roundabout way to see if the remote machine is awake on the network, and if the directory exists over there. The options -qno for ssh:
-n used to run in the background when ssh does not read from user's stdin (terminal)
-q quiet mode, stops extra messages
-o (option) turn off strict host key checking. I wonder why...
This User Gave Thanks to jim mcnamara For This Post:
# 3  
Thanks very much Jim for this quick reply.

This script was created to inventory hundreds of servers I suspect they used the -o command to turn off strict host key checking so the script wouldn't get stuck logging into a new server. I'm adding ssh passwordless to our script and will not need that switch in the future.

Thank you for explaining what this command is doing. is there a list of return codes (non zero) that denote what we couldn't get in? For now 0 being success on logging in and non-zero meaning fail is probably enough for us.

Is there a way to concatenate the two commands to save the result of the first command into the status variable all on one line? I've tried something like:

Code:
ssh -qno StrictHostKeyChecking=no -o ConnectTimeout=1 user@IP 'ls -l /home/opsmgrsvc >/dev/null 2>&1' > /dev/null 2>&1 &&  status="$(echo $?)"

And then I tried using:

Code:
echo $status

to see what was in the variable but it was empty. Am I close in putting this into one line?
# 4  
Code:
whatever command ; status="$?"

# 5  
In a standard shell the status variable is $?
In csh it is $status.
bash is a standard shell, and also has $status as a synonym for $?
# 6  
Quote:
Originally Posted by MadeInGermany
In a standard shell the status variable is $?
In csh it is $status.
bash is a standard shell, and also has $status as a synonym for $?
Code:
tyler@gentoo ~ $ echo $SHELL
/bin/bash
tyler@gentoo ~ $ echo $status

tyler@gentoo ~ $ echo $?
0
tyler@gentoo ~ $

# 7  
My bad, bash does not have $status.
It is zsh that has $status as a synonym for $?
This User Gave Thanks to MadeInGermany For This Post:
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Science: Mathematics
Difficulty: Easy
The sum of any two odd integers is odd.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Command script for checking a file existence

Hello, I have a directory where sometimes appear a certain file name - and I'd like to be notified by email when that happens... so what command or script I may use? e.g. if there's a file named "adam" in the directory named "dir1" then send a mail to "abc@abc.com".. it needs to permanently... (5 Replies)
Discussion started by: netrom
5 Replies

2. UNIX for Advanced & Expert Users

Checking missing data's sequence (shell script | UNIX command)

Dear All members, i have some trouble here, i want to ask your help. The case is: I have some data, it's like: -ABCD1234 -ABCD1235 -ABCD1237 -BCDE1111 -BCDE1112 -BCDE1114 there is some missing data's sequence (the format is: ABCD = name 1234 = sequence). I want to print the... (2 Replies)
Discussion started by: septian.tri
2 Replies

3. Shell Programming and Scripting

perl command understanding

Hi All, Can you please help me interpret the following command. Which I am not able to understand. Also can you please illustrate what it is used for. perl -pi -e 's/\015//g' text_file.dat Regards (3 Replies)
Discussion started by: rakesh.su30
3 Replies

4. Solaris

Understanding 'du' command

Hi I have a questions related 2 commands : 'du' and 'ls'. Why is the difference between output of 'du' and 'ls' cmd's ? Command 'du' : ------------------ jakubn@server1 /home/jakubn $ du -s * 4 engine.ksh 1331 scripts 'du -s *' ---> shows block count size on disk (512 Bytes... (5 Replies)
Discussion started by: presul
5 Replies

5. UNIX for Dummies Questions & Answers

Understanding the output command

Could you please explain me whats happening in the below code, appreciate your help, Thank you. /product/apps/informatica/v7/pc/ExtProc/NewDAC/dacRecBuilder.sh /product/apps/informatica/v7/pc/TgtFiles/NEW_DAC/DAC_Pos_TradeInv_Records.out ... (5 Replies)
Discussion started by: Ariean
5 Replies

6. Shell Programming and Scripting

understanding mv command

hi i was moving a file from one directory to another with the following cmmand mv /home/hsghh/dfd/parent/file.txt . while doing so i i accidently mv /home/hsghh/dfd/dfd . although i gave ctrl c and terminate the move command some of the file are missing in the parent directory and... (1 Reply)
Discussion started by: saravanan71184
1 Replies

7. Shell Programming and Scripting

Help Needed in understanding this command

Hi All, I search the forum for my query, Glad that got solution to it. But i really want to understand how does this command work. sed -e ':a' -e 's/\("*\),\(*"\)/\1~\2/;ta' Basically it is replacing all the comma(,) characters in between quotes with a tilde. Specially what does ':a' ,... (2 Replies)
Discussion started by: DSDexter
2 Replies

8. Shell Programming and Scripting

understanding the sed command

Guys, I am trying to understand the sed command here. adx001 $ a=/clocal/dctrdata/user/dctrdat1/trdroot/recouncil adx001 $ b=`echo $a | sed 's/\//\\\\\//g'` adx001 $ echo $b \/clocal\/dctrdata\/user\/dctrdat1\/trdroot\/recouncil The sed command i took it from the script. Please... (3 Replies)
Discussion started by: mac4rfree
3 Replies

9. UNIX for Dummies Questions & Answers

Need help understanding script command

We use a UNIX-based system (Lawson) at work and I was given this command to request a data extract from the db admin. The only thing I really understand is the last line as it appears to be joining the files created from the first three lines into one. Is there anyone who can help me breakdown the... (4 Replies)
Discussion started by: KGee
4 Replies

10. UNIX for Dummies Questions & Answers

Need Help Understanding a Unix Command

Trying to install something. Can someone explain what this means? chmod -R a+r . chmod -R a+w logo.gif tempdir/ templates_c/ I recognize that file permissions are being changed (chmod), but beyond that, it's Greek to me. (6 Replies)
Discussion started by: chris86
6 Replies

Featured Tech Videos