STDOUT redirect to a FILE, when fuser command is used !!


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users STDOUT redirect to a FILE, when fuser command is used !!
# 1  
Old 01-22-2008
Error STDOUT redirect to a FILE, when fuser command is used !!

Hi all,

I have the following script:

-------------------------------------------------
#SCRIPT TO CHECK WHO HAS ACCESSED THE LOG/FILE IN PAST 'N' MINUTES, AND MAIL ACCORDINGLY.

MYPATH="/clocal/mqbrkrs/user/mqsiadm/sanjay/"
MAIL_RECIPIENTS="vg517@dcx.com"
Subject="File accessed in last few minutes are ::"
>tempmail.txt
>tempfind.txt

## List all the files which one accessed since last 1 min #####

for file_dir in `find $MYPATH -amin -1`
do

### Find out the PID for that files which one been accessed
echo `fuser -uf "$file_dir" | tr -dc "[:digit:]" ` 1>> tempmail.txt
echo " $file_dir is being accessed" >> tempmail.txt

done

cat tempmail.txt | mailx -s "$Subject" "$MAIL_RECIPIENTS"
-------------------------------------------------

fuser command returns process id, to the file "tempmail.txt" and also prints the output to the STDOUT., both the outputs are different.

output to the file tempmail.txt :
-----------------------------------------------
335936
/clocal/mqbrkrs/user/mqsiadm/sanjay/ is being accessed
594010880672541182872816
/clocal/mqbrkrs/user/mqsiadm/sanjay/AccessMonitor is being accessed
541182
/clocal/mqbrkrs/user/mqsiadm/sanjay/AccessMonitor/AccessLogMonitor_script is being accessed
----------------------------------------------

output to the STDOUT :----------------------------------------------
/clocal/mqbrkrs/user/mqsiadm/sanjay/: c(mqsiadm)
/clocal/mqbrkrs/user/mqsiadm/sanjay/AccessMonitor: c(mqsiadm)c(mqsiadm)c(mqsiadm)c(mqsiadm)
/clocal/mqbrkrs/user/mqsiadm/sanjay/AccessMonitor/AccessLogMonitor_script: (mqsiadm)
-----------------------------------------------

I WANT the output of STDOUT should be present in file tempmail.txt.
In the script i have done `command 1>> filename` but its not working. Please give me the solution to this.

Thanks a lot.Smilie
Varun
# 2  
Old 01-23-2008
fuser only outputs PIDs to stdout, everything else is sent to stderr.

Try replacing

Code:
echo `fuser -uf "$file_dir" | tr -dc "[:digit:]" ` 1>> tempmail.txt

with

Code:
fuser -f $file_dir  >> tempmail.txt  2> /dev/null

# 3  
Old 01-23-2008
Quote:
Originally Posted by fpmurphy
fuser only outputs PIDs to stdout, everything else is sent to stderr.

Try replacing

Code:
echo `fuser -uf "$file_dir" | tr -dc "[:digit:]" ` 1>> tempmail.txt

with

Code:
fuser -f $file_dir  >> tempmail.txt  2> /dev/null

Hey man,

As you said everything else has to be given to the /dev/null, but then what if I want everything else also to be in the same file "tempmail.txt" ?

Please let me know the solution !!
Thanks
# 4  
Old 01-24-2008
command 2>>file.log 1>>file.log
# 5  
Old 01-24-2008
And I almost forgotten this one:
This is possible that some apps would always write to TTY. Then there is a reason why you have no output on StdOut. In such a case you should dig on the internet how to do it. For example some app could force to write to /dev/tty/some_device....

Another thing:
2>>file.log - this redirects STD ERR
1>>file.log - this redirects STD OUT

So both StdOut and StdErr are 2 different things.
# 6  
Old 01-24-2008
Quote:
Originally Posted by adderek
And I almost forgotten this one:
This is possible that some apps would always write to TTY. Then there is a reason why you have no output on StdOut. In such a case you should dig on the internet how to do it. For example some app could force to write to /dev/tty/some_device....

Another thing:
2>>file.log - this redirects STD ERR
1>>file.log - this redirects STD OUT

So both StdOut and StdErr are 2 different things.
Hey,

I'll appreciate if you'll let me know what are the commands that do so, i.e. writing to /dev/tty/some_device.
And if possible, let me know how to get the tty output into a user defined file(s) ?

Thanks for the guidence and sharing the knowledge.

Varun.Smilie
# 7  
Old 01-25-2008
Really, I don't have any idea how to do it. I never tried such a thing.
I could only give you some example script to experiment with:
Code:
#!/bin/ksh
# Terminal
echo "tty" >>/dev/tty
# StdOut
print -u1 "fd1"
# StdErr
print -u2 "fd2"
return 0

It should write 'fd1' to stdout, 'fd2' to stderr and 'tty' to the terminal.
So
Code:
script.sh 1>StdOut.txt 2>StdErr.txt

should still print 'tty' text to your terminal.
Maybe someone else could help you.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Redirect STDOUT & STDERR to file and then on screen

Dear all, redirecting STDOUT & STDERR to file is quite simple, I'm currently using: Code: exec 1>>/tmp/tmp.log; exec 2>>/tmp/tmp.log But during script execution I would like the output come back again to screen, how to do that? Thanks Luc edit by bakunin: please use CODE-tags like the... (6 Replies)
Discussion started by: tmonk1
6 Replies

2. Programming

C, UNIX: How to redirect 'stdout' to a file from a C code?

I am looking for a way to redirect standard output to a file from a C-code; so, any 'cout<<..' or 'printf(...)' will be written into a file. I have a server source that I need to debug. That program called by RPC (remote procedure call) and has no any session to print out anything. I have... (3 Replies)
Discussion started by: alex_5161
3 Replies

3. Shell Programming and Scripting

Redirect STDOUT & STDERR to file and then on screen

Dear all, redirecting STDOUT & STDERR to file is quite simple, I'm currently using: exec 1>>/tmp/tmp.log; exec 2>>/tmp/tmp.logBut during script execution I would like the output come back again to screen, how to do that? Thanks Lucas (4 Replies)
Discussion started by: Lord Spectre
4 Replies

4. UNIX for Dummies Questions & Answers

STDOUT redirect to file and format problems

Hi All, I am using centOS. When I try to redirect STDOUT to a file, it ends up in getting some funny characters. For example ... STDOUT of the command as follows. $ ls H3k27me3 H3k36me3 H3k4me1 H3k4me2 H3k4me3 H3k9ac H4k20me1 $ ls >test $ cat test ^ (1 Reply)
Discussion started by: Chulamakuri
1 Replies

5. Shell Programming and Scripting

redirect stdout and stderr to file wrong order problem with subshell

Hello I read a lot of post related to this topic, but nothing helped me. :mad: I'm running a ksh script with subshell what processing some ldap command. I need to check output for possible errors. #!/bin/ksh ... readinput < $QCHAT_INPUT |& while read -p line do echo $line ... (3 Replies)
Discussion started by: Osim
3 Replies

6. Shell Programming and Scripting

redirect STDOUT to a file in a subshell

Hi, I would like to avoid re-directing line by line to a file. What is the best way to re-direct STDOUT to a file in a subshell? Thanks in advance. Cheers Vj (1 Reply)
Discussion started by: tnvee
1 Replies

7. Shell Programming and Scripting

Redirect stdout/stderr to a file globally

Hi I am not if this is possible: is it possible in bach (or another shell) to redirect GLOBALLY the stdout/stderr channels to a file. So, if I have a script script.sh cmd1 cmd2 cmd3 I want all stdout/stderr goes to a file. I know I can do: ./script.sh 1>file 2>&1 OR ... (2 Replies)
Discussion started by: islegmar
2 Replies

8. Shell Programming and Scripting

How to redirect stderr and stdout to a file

Hi friends I am facing one problem while redirecting the out of the stderr and stdout to a file let example my problem with a simple example I have a file (say test.sh)in which i run 2 command in the background ps -ef & ls & and now i am run this file and redirect the output to a file... (8 Replies)
Discussion started by: sushantnirwan
8 Replies

9. UNIX for Dummies Questions & Answers

redirect stderr and/or stdout to /dev/null from command line

Is it possible to redirect errors at the command line when you run the script such as bash scriptname & 2>/dev/null? (1 Reply)
Discussion started by: knc9233
1 Replies

10. UNIX for Advanced & Expert Users

problem with redirect stdout to file

Hi all hope you can help as I am going MAD!!! :eek: The below is in a shell script but the redirection in the sed line does not work and outputs to the screen and the $fname_2 does note get created ????? Can any one help ?? #!/bin/ksh cd /app/ for fname in `ls -1 X*` do sed 1d $fname... (3 Replies)
Discussion started by: mlucas
3 Replies
Login or Register to Ask a Question