Sponsored Content
Top Forums Shell Programming and Scripting saving output from bash into a file Post 302531358 by Corona688 on Thursday 16th of June 2011 01:53:21 PM
Old 06-16-2011
Code:
for host in `cat $PATH_TEMP/servers_test.txt`
        do
                #LINUX SERVERS
#               var=`ssh $host uname -n`
#               echo -n $var ";">> $PATH_TEMP/valeria/reporte_test
                echo -n $(ssh $host cat /usr/openv/netbackup/exclude_list) >> $PATH_TEMP/valeria/reporte_test
                echo >> $PATH_TEMP/valeria/reporte_test
    done

This has useless use of cat and useless use of backticks all over the place. ( $( ) is roughly equivalent to backticks.) Also, you don't need to tell every separate statement to write to your logfile, you can redirect your entire while loop to get the output of everything inside it.

Also, the errors are going to standard error, fd 2, not the usual standard output. You can redirect them like 2>file, or send them back into standard output with 2>&1

So, how about:

Code:
# if you're operating line by line anyway, 'while read' is more efficient than `cat file`
while read host
do
        # since we're running cat anyway, might as well run something that does
        # the entire job instead.  tr here turns newlines into spaces and prints.
        # We quote everything in "" so the single quotes don't get stripped off.
        ssh $host "tr '\n' ' ' < /usr/openv/netbackup/exclude_list" 2>&1
        echo
done < $PATH_TEMP/servers_test.txt > logfile

---------- Post updated at 11:53 AM ---------- Previous update was at 11:45 AM ----------

Quote:
I do this for may servers and I want to know to which servers I can login or not...
You don't even need the error text to know whether the server logged in or not, the program tells the shell whether it succeeded or not, directly. Every program you run returns an error code, zero for success, anything else for error.

Code:
# if you're operating line by line anyway, 'while read' is more efficient than `cat file`
while read host
do
        # since we're running cat anyway, might as well run something that does
        # the entire job instead.  tr here turns newlines into spaces and prints.
        # We quote everything in "" so the single quotes don't get stripped off.
        # 2>/dev/null gets rid of the error text, if any.
        if ssh $host "tr '\n' ' ' < /usr/openv/netbackup/exclude_list" 2>/dev/null
        then
                echo "$host success" >&2
        else
                echo "$host fail" >&2
        fi

        echo
        # Prints the data outputted by ssh $host into excludedata
        # prints whether it succeeded or failed into logintest
done < $PATH_TEMP/servers_test.txt > excludedata 2> logintest

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Saving output from awk into a perl variable

How would I pass awk output to a perl variable? For example, I want to save the value in the 4th column into the variable called test. My best guess is something as follow, but I am sure this isn't correct. $test = system("awk '/NUMBER/{print \$4}' $_"); (8 Replies)
Discussion started by: userix
8 Replies

2. Shell Programming and Scripting

saving awk value in a bash array variable

hi all i am trying to save an awk value into an array in bash: total=`awk '{sum+=$3} END {print sum}' "$count".txt"` ((count++)) the above statement is in a while loop.. $count is to keep track of file numbers (1.txt,2.txt,3.txt,etc.) i get the following error: ./lines1:... (1 Reply)
Discussion started by: npatwardhan
1 Replies

3. UNIX for Dummies Questions & Answers

saving command output to a variable

Hello, I have a shell script containing a command string in the following format: command1 | command2 | cut -c9-16 The output from this is a record number (using characters 9-16 of the original output string) e.g. ORD-1234 I wish to save this value to a variable for use in later commands... (4 Replies)
Discussion started by: philjo
4 Replies

4. UNIX for Dummies Questions & Answers

Saving a temporary output within a script

Good morning everyone, i am looking to know how to save the output of a command and reuse it again within a script i already tired this one but it didn't work TEMPDIR=/dir1/dir2 My_command> $TEMPDIR/$TEMPFILE rm $TEMPDIR/$TEMPFILE* it keeps saying "cannot write to a... (15 Replies)
Discussion started by: Portabello
15 Replies

5. Shell Programming and Scripting

Need some Help for file filteration and saving the output in other directory using grep....plz ...

Hi all........ Plss do help me.......in a big trouble... :wall::wall::wall: I have 3 directories named as :1. /home/shuchi/source 2./home/shuchi/destination 3./home/shuchi/filter now the problem is /home/shuchi/source has say 2 files with extension .txt as given below : A.txt Code: ... (0 Replies)
Discussion started by: ektubbe
0 Replies

6. Shell Programming and Scripting

Need some Help for file filteration and saving the output in other directory

Hi all........ Plss do help me.......in a big trouble... :wall::wall::wall: I have 3 directories named as :1. /home/shuchi/source 2./home/shuchi/destination 3./home/shuchi/filter now the problem is /home/shuchi/source has say 2 files with extension .txt as given below : A.txt msisdn ... (5 Replies)
Discussion started by: ektubbe
5 Replies

7. Shell Programming and Scripting

looping and saving output of each line separately

I have been trying this program for a long time. I am trying to read a file named "odon" line by line; read the first line, send it to do a command saved in a file "perm", once the first line has finished going through the content of the file perm, the result is saved with the number of the line.... (17 Replies)
Discussion started by: iconig
17 Replies

8. Shell Programming and Scripting

Saving nohup output to a file other than nohup.out

Shell : bash OS : Oracle Linux 6.4 I want to save the ouput of a nohup command to file other than nohup.out . Below are my 3 attempts. For both Attempt1 and Attempt2 , the redirection logs the output correctly to the output file. But I get the error "ignoring input and redirecting stderr to... (7 Replies)
Discussion started by: kraljic
7 Replies

9. Shell Programming and Scripting

Saving files with file name as output

Hi, i need help with a file creation of an output program. I've got a program that with #find creates an output for each files in a directory. If i give this command : -o spec$(date -u +%Y%m%dt%H%M) it creates just one file, overwriting all the others since it is the creation date .... (2 Replies)
Discussion started by: Board27
2 Replies

10. Shell Programming and Scripting

sed command is saving output as blank file

Hi, I am working on a script where I am adding adding colors to few of the info in the output. Now , after that is done , I see colour codes in log files which I don't want to see.:mad::mad::mad::mad: So , I tried using sed command in script as below which gives me o/p (new.log) as blank file... (7 Replies)
Discussion started by: Dream4649
7 Replies
All times are GMT -4. The time now is 11:31 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy