write the output of a command to /var/log/user.log… each line will contain $USER, making this easy to grep for.

2010-12-28 373 words 2 mins read

write the output of a command to /var/log/user.log… each line will contain $USER, making this easy to grep for.

  <td>
    <div class="text codecolorer">
      &nbsp;log() { (echo "$ $@";$@) | logger -t $USER; }
    </div>
  </td>
</tr>
1

This command is useful if you want to copy the output of a series of commands to a file, for example if you want to pastebin the output from ‘uname -a’, ‘lspci -vvv’ and ‘lsmod’ for video driver trouble-shooting on your favorite Linux forum.

‘log’ takes all the following arguments as a command to execute, with STDOUT sent to /var/log/user.log. The command is echoed to the log before it is executed.

The advantages of using logger (as opposed to appending output from commands to a file) are 1) commands are always appended to the logs… you don’t have to worry about clobbering your log file accidentally by using ‘>’ rather than ‘»’ 2) logs are automatically cleaned up by logrotate.

The following functions allow you to mark the start and end of a section of /var/log/user.log.

  <td>
    <div class="text codecolorer">
      startlog() { export LOGMARK=$(date +%Y.%m.%d_%H:%M:%S); echo "$LOGMARK.START" | logger -t $USER; }
    </div>
  </td>
</tr>
1

then

  <td>
    <div class="text codecolorer">
      endlog() { "$LOGMARK.END" | logger -t $USER; }
    </div>
  </td>
</tr>
1

printlog will print all lines between $LOGMARK.START and $LOGMARK.END, removing everything that is prepended to each line by logger.

  <td>
    <div class="text codecolorer">
      printlog() { sudo sed -n -e "/$LOGMARK.START/,/$LOGMARK.END/p" /var/log/user.log| sed "s/.* $USER: //"; }
    </div>
  </td>
</tr>
1

Caveats: I’m sure that those could use some cleanup and error checking… there are unchecked dependencies between printlog and endlog, as well as between endlog and startlog.

It might be useful for ‘log’ to also send stderr to logger as well.

* View this command to comment, vote or add to favourites * View all commands by bartonski

commandlinefu.com

by David Winterbottom (codeinthehole.com)

URL: http://feedproxy.google.com/~r/Command-line-fu/~3/6DP_QDTn2IM/write-the-output-of-a-command-to-varloguser.log…-each-line-will-contain-user-making-this-easy-to-grep-for.

Enhanced by Zemanta

Related Articles:


author

Authored By Amit Agarwal

Amit Agarwal, Linux and Photography are my hobbies.Creative Commons Attribution 4.0 International License.

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now
This website uses cookies to ensure you get the best experience on our website. Learn more Got it