Photo by Nathan Dumlao / Unsplash

Grep Tool Exercises

Exercises Feb 5, 2025 (Feb 7, 2025) Loading...

unfinished!

grep filters information, and is typically used on the commandline as one part of a chain of tools. Here's how grep might be used by testers.

If you've used graphical IDE tools that have a facility to search all files in a folder, there may be grep under the hood. Or, there may not – OS-based search typically indexes files and picks files from its index. grep doesn't have a search index (as far as I'm aware), but instead does pattern recognition on a stream – and one way to introduce a stream is to feed it files.

In this exercise, you’ll probably use command-line grep, and for some exercises you'll use it with other tools. There will be instructions, but the key concept is that if you see a command that looks like toolX | toolY, then toolX works first, and its output is connected to toolY's input. The | is called pipe, and (although it might be better if it was rotated 90 degrees ) it represents a connection.

If you're working with me, and I give you an environment, the files / streams will be there. If not, you'll need to download the files, and some exercises might not work for you (if they need streams, not files, and the streams aren't on).

This exercise is more fun in a group. If you’re in a group, please talk about what tool you’d use. Perhaps re-run the exercise with someone else’s tool of choice, or with someone else.

The solutions are below. The tool will do most of the work – give yourself kudos for spotting non-trivial things. Zero kudos if you look at the solutions before trying the exercises.

There are two routes into this:

  • I have a development environment (in the browser) for you. If you're with me and I've set up, we'll work with that. Details below.
  • You work on a system that you own, or on one of the interactive grep sites listed on the grep for testers page. MacOS and Linux always have grep available on the command line. If you're on a different OS, or if you can't get to the commandline, use one of those – I know that https://grep.js.org can take the Apache.log file below.

James' in-browser dev env

I've set up a server which is running several instances of VSCode, accessible via the browser.

Via VSCode, you'll access the command line, the file system, and whatever else is available. I hope that you feel relatively familiar with it.

Access

  1. Go to https://envs.workroomprds.com, pick the env that seems most ... you. Tell the others, as I've not tried this with several people in one env. Your password is password. VSCode may want to set up a more-complete env, so skipor move on until you see something like this:
  1. Open up the files and the commandline, and choose the terminal tab if you need to.
  2. The chunk of green text is your prompt – where you'll type commands. Try pwd to see where you are: probably /home/«whatever you chose»
  1. Use Open Folder to get a dropdown, probably pointing to the same place (with a \ on the end. If it's not that, change it and hit enter to see the filesytem. If asked, you trust the author. You'll see a filesystem sidebar on the left, and you may need to open the terminal again to get to (roughly) here:

So now you've got a browse-able file system, and commandline access to a remote server, all in your browser. Which is what we need to start. One irritation: copy / paste from your host may not work for you. Or it might. If nit doesn't try right-click. I'm working on the config. It works for me...

  1. If you're unfamiliar with VSCode, take a moment to look around. Open the three-bar menu top-left, resize the parts if you want to, see the tooltips.

VSCode Parts

  • Mode Panel (Narrow leftmost Sidebar):
    • The menu icon at the top gives access to the VSCode menus
    • The icons below change what the panel to its side does – file explorer, search, git, debugger, extensions.
  • Explorer Panel (Left Sidebar):
    • Shows your files and folders / search results / git history etc.
  • Editor Area (Center-right):
    • Currently shows a "Welcome" tab
    • Has quick actions like "New File..." and "Open File..."
    • When you select a file, you'll see it here.
    • Can have tabs, and can be split vertically
  • Terminal (Bottom):
    • Command-line interface, with prompt
    • You can run commands directly here without leaving the editor
    • "OUTPUT" tab: Displays program output
    • "TERMINAL" tab: For command-line operations
  • Top Bar Elements:
    • Command bar for VSCode commands
    • Top right buttons show layouts
  • Bottom Status Bar:
    • Shows useful information like Current file type (bash), Layout settings, Additional status indicators

Exercises Group 1 – scanning a log

If you're with James, follow the link to the environment. If you prefer, or if you're not with James, download the linked files.

Exercise 1.01

An Apache.log file has several lines indicating a Factory error that you'll find scattered throughout. Use grep to find out more.

hint

You might want to grep "«something you're looking for»" "«the path and filename»" . The " are needed to cope with have spaces etc.

On James' env: The file is in /tmp/Apache.log. You can look at it in the editor by choosing (menu) » file » open file – and opening /tmp/Apache.log. It's 56482 lines long.

Without James: Go get the file linked below, extract it to a .log file.

Solution to Exercise 1.01

You might use grep Factory /tmp/Apache.log or grep "Factory error" /tmp/Apache.log or grep -i "factory error" "/tmp/Apache.log" or cat /tmp/Apache.log | grep -i "fact" to extract the info.

Output below. Kudos if you noticed that they turn up in clumps of 4.

[Thu Jun 09 06:07:05 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Thu Jun 09 06:07:05 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Thu Jun 09 06:07:05 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Thu Jun 09 06:07:05 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Fri Jun 10 11:32:27 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Fri Jun 10 11:32:27 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Fri Jun 10 11:32:27 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Fri Jun 10 11:32:27 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Jun 12 04:04:29 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Jun 12 04:04:29 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Jun 12 04:04:29 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Jun 12 04:04:29 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Fri Jun 17 04:03:42 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Fri Jun 17 04:03:42 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Fri Jun 17 04:03:42 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Fri Jun 17 04:03:42 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Jun 19 04:09:06 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Jun 19 04:09:06 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Jun 19 04:09:06 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Jun 19 04:09:06 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sat Jun 25 04:04:30 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sat Jun 25 04:04:30 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sat Jun 25 04:04:30 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sat Jun 25 04:04:30 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Jun 26 04:04:27 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Jun 26 04:04:27 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Jun 26 04:04:27 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Jun 26 04:04:27 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Mon Jun 27 04:02:53 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Mon Jun 27 04:02:53 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Mon Jun 27 04:02:53 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Mon Jun 27 04:02:53 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Jul 03 04:07:59 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Jul 03 04:07:59 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Jul 03 04:07:59 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Jul 03 04:07:59 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Jul 10 04:04:42 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Jul 10 04:04:42 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Jul 10 04:04:42 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Jul 10 04:04:42 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Jul 17 04:08:19 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Jul 17 04:08:19 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Jul 17 04:08:19 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Jul 17 04:08:19 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Jul 24 04:20:44 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Jul 24 04:20:44 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Jul 24 04:20:44 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Jul 24 04:20:44 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Wed Jul 27 14:42:40 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Wed Jul 27 14:42:40 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Wed Jul 27 14:42:40 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Wed Jul 27 14:42:40 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Jul 31 04:08:56 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Jul 31 04:08:56 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Jul 31 04:08:56 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Jul 31 04:08:56 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Aug 07 04:03:56 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Aug 07 04:03:56 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Aug 07 04:03:56 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Aug 07 04:03:56 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Aug 14 04:03:50 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Aug 14 04:03:50 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Aug 14 04:03:50 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Aug 14 04:03:50 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Aug 21 04:03:46 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Aug 21 04:03:46 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Aug 21 04:03:46 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Aug 21 04:03:46 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Aug 28 04:10:36 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Aug 28 04:10:36 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Aug 28 04:10:36 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Aug 28 04:10:36 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Sep 04 04:04:09 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Sep 04 04:04:09 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Sep 04 04:04:09 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Sep 04 04:04:09 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Sep 11 04:03:50 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Sep 11 04:03:50 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Sep 11 04:03:50 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Sep 11 04:03:50 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Sep 18 04:07:22 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Sep 18 04:07:22 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Sep 18 04:07:22 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Sep 18 04:07:22 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Mon Sep 19 05:58:19 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Mon Sep 19 05:58:19 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Mon Sep 19 05:58:19 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Mon Sep 19 05:58:19 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Sep 25 04:12:23 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Sep 25 04:12:23 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Sep 25 04:12:23 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Sep 25 04:12:23 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Wed Sep 28 09:11:52 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Wed Sep 28 09:11:52 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Wed Sep 28 09:11:52 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Wed Sep 28 09:11:52 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Oct 02 04:06:48 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Oct 02 04:06:48 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Oct 02 04:06:48 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Oct 02 04:06:48 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Oct 09 04:12:16 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Oct 09 04:12:16 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Oct 09 04:12:16 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Oct 09 04:12:16 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Oct 16 04:14:44 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Oct 16 04:14:44 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Oct 16 04:14:44 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Oct 16 04:14:44 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Oct 23 04:04:04 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Oct 23 04:04:04 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Oct 23 04:04:04 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Oct 23 04:04:04 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Tue Oct 25 10:09:37 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Tue Oct 25 10:09:37 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Tue Oct 25 10:09:37 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Tue Oct 25 10:09:37 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Oct 30 04:04:47 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Oct 30 04:04:47 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Oct 30 04:04:47 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Oct 30 04:04:47 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Nov 06 04:06:10 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Nov 06 04:06:10 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Nov 06 04:06:10 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Nov 06 04:06:10 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Nov 13 04:15:24 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Nov 13 04:15:25 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Nov 13 04:15:25 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Nov 13 04:15:25 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Nov 20 04:10:30 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Nov 20 04:10:30 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Nov 20 04:10:30 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Nov 20 04:10:30 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Nov 27 04:07:32 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Nov 27 04:07:32 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Nov 27 04:07:32 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Nov 27 04:07:32 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Dec 04 04:09:43 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Dec 04 04:09:43 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Dec 04 04:09:43 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Dec 04 04:09:43 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Tue Dec 06 12:24:09 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Tue Dec 06 12:24:09 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Tue Dec 06 12:24:09 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Tue Dec 06 12:24:09 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Dec 11 04:06:46 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Dec 11 04:06:46 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Dec 11 04:06:46 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Dec 11 04:06:46 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Dec 18 04:02:18 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Dec 18 04:02:18 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Dec 18 04:02:18 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Dec 18 04:02:18 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Dec 25 04:02:18 2005] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Dec 25 04:02:18 2005] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Dec 25 04:02:18 2005] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Dec 25 04:02:18 2005] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Jan 01 04:02:17 2006] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Jan 01 04:02:17 2006] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Jan 01 04:02:17 2006] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Jan 01 04:02:17 2006] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sat Jan 07 04:02:37 2006] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sat Jan 07 04:02:37 2006] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sat Jan 07 04:02:37 2006] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sat Jan 07 04:02:37 2006] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Jan 08 04:05:56 2006] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Jan 08 04:05:56 2006] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Jan 08 04:05:56 2006] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Jan 08 04:05:56 2006] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Jan 15 04:11:23 2006] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Jan 15 04:11:23 2006] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Jan 15 04:11:23 2006] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Jan 15 04:11:23 2006] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Sun Jan 22 04:11:00 2006] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Sun Jan 22 04:11:00 2006] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Sun Jan 22 04:11:00 2006] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Sun Jan 22 04:11:00 2006] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Thu Jan 26 12:23:07 2006] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Thu Jan 26 12:23:07 2006] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Thu Jan 26 12:23:07 2006] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Thu Jan 26 12:23:07 2006] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)

Exercise 1.02 – about those Factory errors

How many have there been over the life of this log file? What proportion is that of the whole file? What looks like the most-common day of the week that it happens on – and what can you say about that?

Hint:

wc -l «filename» or «some stream» | wc -l will count the lines in the file or the stream. So aim your grep at it.

Or you can put it into an editor with line numbers, or eyeball it.

Solution to Exercise 1.02

You might use grep -i "Factory" Apache.log | wc -l – it's 180, and the number of lines in the log is 56481 from wc -l Apache.log.

You might use grep -i "Factory" Apache.log | grep "Sun" | wc -l – there were 132 on Sundays.

Kudos if you looked at the results to check and spotted they were all at 4am.

Exercise 1.03 – reverse filter / line numbers

unfinished

This log has lines without a timestamp

Solution to Exercise 1.03

how many? grep -v "\[" /tmp/Apache.log | wc -l

where? grep -v "\[" -n /tmp/Apache.log

(note - the \ may not copy/paste well with code-server)


The exercises below rely on a working log simulator. For people with James, it's at /tmp/imulated_log.txt. People without will need to run it for themselves.

Exercise 1.04 – real-time filtering

unpolished

If you tail -F /tmp/simulated_log.txt, you'll see a fast-moving log.

(the log is from logmaker.sh, details on making logs to teach testing)

How can you use grep to help you to filter only the failures?

Solution to Exercise 1.04 – real-time filtering

tail -F /tmp/simulated_log.txt | grep failure

How might this be useful to you, as a tester?

Exercise 1.05 – Chains

unfinished

how about all failures in CORE?

(lots more chains here)

Solution to Exercise 1.05 – chains

tail -F /tmp/simulated_log.txt | grep -i failure | grep -i CORE


This page is a work in progress. I'm sure that a curious reader can easily find my notes to myself. «JL: perhaps, if the script finds any notes, it can insert this message?»

Member reactions

Reactions are loading...

Sign in to leave reactions on posts

Tags

Comments

Sign in or become a Workroom Productions member to read and leave comments.

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.