Viewing Operation History

Use the pkg history command to view pkg command history that modifies the image. Commands such as pkg search, pkg refresh, pkg publisher, pkg facet, and pkg property are not recorded in pkg history, but commands such as pkg set-publisher, pkg change-facet, and pkg set-property are recorded in pkg history. Sometimes pkg history shows multiple operations executed for one command entered. For example, pkg refresh --full displays refresh-publishers and rebuild-image-catalogs in pkg history output.

To quickly check the time of the last image modification or configuration change, check the time stamp of the /var/pkg/modified file. The /var/pkg/modified file is an empty file whose time stamp is updated every time an operation occurs that modifies the image. For more information about what changed, use the pkg history command with the -t option as shown in Example 5-6.

By default, the pkg history command displays the following information:

  • The start time of the operation

  • The name of the operation, for example, install

  • The client, for example, pkg

  • The outcome of the operation: Succeeded or Failed

Use options to display more information or more precise information.

-l

Display the following information in addition to the default information:

  • The version of the client

  • The name of the user who performed the operation

  • Whether a new BE was created

  • The time the operation completed

  • The complete command that was issued

  • Any errors that were encountered while executing the command

  • Complete FMRIs of changed packages for operations such as update

-n number

Display only the specified number of most recent operations.

$ pkg history -n4
START                    OPERATION                CLIENT             OUTCOME
2013-08-06T16:32:03      fix                      pkg                Succeeded
2013-08-06T16:41:47      revert                   pkg                Succeeded
2013-08-06T17:56:22      set-property             pkg                Succeeded
2013-08-06T17:56:53      unset-property           pkg                Succeeded
-o column[,column]...

Display output using the specified comma-separated list of column names. See the list of column names in the pkg(1) man page.

$ pkg history -o start,time,operation,outcome -n4
START                    TIME      OPERATION                OUTCOME
2013-08-06T16:32:03      0:00:27   fix                      Succeeded
2013-08-06T16:41:47      0:00:43   revert                   Succeeded
2013-08-06T17:56:22      0:00:00   set-property             Succeeded
2013-08-06T17:56:53      0:00:00   unset-property           Succeeded 
-t time | time-time[,time | time-time]...

Log records for a comma-separated list of time stamps, formatted with %Y-%m-%dT%H:%M:%S (see the strftime(3C) man page). To specify a range of times, use a hyphen (-) between a start and finish time stamp. The keyword now is an alias for the current time. If the time stamps specified contain duplicate time stamps or overlapping date ranges, only a single instance of each duplicate history event is displayed.

-N

Use the -N option to display any release note text for the operation. The -N option cannot be used with the -o option. If you specify the -v option in an install or update operation in which some of the packages being installed have release notes, the operation output displays the release notes. If the operation installs into a new BE, the operation output provides a path to a release notes file in /tmp in the current BE. When you boot into the new BE, the release notes are in /usr/share/doc/release-notes, or you can use the -N option to view the release notes as shown in the following command:

$ pkg history -N -n 1

If the operation that installed release notes is not the last pkg operation you performed in this BE, use a larger number for the -n argument or use the -t option to identify the pkg operation that installed the release notes as shown in the following command:

$ pkg history -N -t 2013-07-17T08:31:23

Example 5-6 Getting Information About Image Change

The following command uses the /var/pkg/modified file to show the last time this image was modified:

$ ls -l /var/pkg/modified
-rw-r--r--   1 root     root           0 Jul 22 10:54 /var/pkg/modified

You might not need any more information. You might only need to know whether the image has changed since the last time you performed a certain operation.

The following example shows how you can use the pkg history command to get more information.

The following command shows pkg operations that occurred within a specified range of time:

$ pkg history -t 2016-07-22T10:54:00-2016-07-22T10:55:00
START                    OPERATION                CLIENT             OUTCOME
2016-07-22T10:54:05      update-publisher         pkg                Succeeded
2016-07-22T10:54:06      refresh-publishers       pkg                Succeeded
2016-07-22T10:54:53      rebuild-image-catalogs   pkg                Succeeded

The following command shows more information about a particular operation from the preceding list:

$ pkg history -lt 2016-07-22T10:54:05
         Operation: update-publisher
           Outcome: Succeeded
            Reason: None
            Client: pkg
           Version: 77d785eb851b
              User: admin (100)
         Boot Env.: 103_104.34291
    Boot Env. UUID: 1831b116-361f-4ef0-9406-851c446ec4c2
     New Boot Env.: None
New Boot Env. UUID: (None)
          Snapshot: (None)
        Start Time: 2016-07-22T10:54:05
          End Time: 2016-07-22T10:55:25
        Total Time: 0:01:20
           Command: /usr/bin/pkg set-publisher -g /var/share/pkg/repositories/solaris solaris
     Release Notes: No
       Start State:
None
         End State:
None

Example 5-7 Purging History Information

Use the pkg purge-history command to delete all existing history information.

$ pkg purge-history