The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

SYSPOSIS

This file provides a couple of useful examples of recs chains and how each of them break down. This is meant as a learning tool for folks new recs that would like to see some cool things you can do with RecordStream. Another good resource is 'man recs-story' which is a humorous story meant to get the newest users used to recs.

EXAMPLE: How many processes are each user running?

How many processes are each of the users on my system running?

  recs-fromps | recs-collate --key uid -a count | recs-sort --key count=n | recs-totable

  Broken down this is:
  1. recs-fromps - First get the records of all the prcesses currently running
  2. recs-collate --key uid -a count
       Grouping by the uid field, count how many records fall into the group
  3. recs-sort --key count=n 
       Sort the resulting records by the count key
       numerical (rather than lexically)
  4. recs-totable - Print the output in a nicely formatted table.

EXAMPLE: How many processes for each user at each priority level?

How many processes are each user on the system running at each priority level?

  recs-fromps | recs-collate --key uid,priority -a count | recs-toptable --x priority --y uid --v count
  
  Broken down:
  1. recs-fromps - First get the records of all the prcesses currently running
  2. recs-collate --key uid,priority -a count
       Grouping by the uid and the priority field, count how many records fall
       into the group
  3. recs-toptable --x priority --y uid -v count
       Create a 2 dimensional table, across the top put the priority values, down
       the side put the uid.  In put the value of the count field in the cell

Example: Prep a report on number of modules loggin to Xorg.log

What Xorg modules put information in my Xorg.log at startup, and what log level are they logged at? I need this in csv format for importing into a spreadsheet program.

  recs-frommultire --re 'type,module=\((\S*)\) ([^:]+):' /var/log/Xorg.0.log | recs-collate --key type,module -a ct | recs-sort --key ct=n | recs-tocsv --header

  1. recs-frommultire --re 'type,module=\((\S*)\) ([^:]+):' /var/log/Xorg.0.log 
       Parse out the type and module from the Xorg log file.  That regex reads
       capture text inside literal '()', then capture text after a space up to the
       first ':'.
  2. recs-collate --key type,module -a ct
       Collate records into groups of type-modules.  Count how many in each group
       across all records.
  3. recs-sort --key ct=n 
       Sort by the count, numerically.
  4. recs-totable --spreadsheet --delim ','
       Output a table in spreadsheet format (no ASCII art), delimited by commas
       instead of tabs

See Also

RecordStream(3) - Overview of the scripts and the system
recs-story(3) - A humorous introduction to RecordStream