TweetFollow Us on Twitter

MacEnterprise: Command Line Goodies

Volume Number: 24 (2008)
Issue Number: 01
Column Tag: MacEnterprise

MacEnterprise: Command Line Goodies

New command line tools in Leopard

By Philip Rinehart, Yale University

More Tools for the Toolbox

Following last month's article, let's look at some of the more interesting command line tools that have appeared. The first tool, pkgutil allows manipulation of the package database. Last month I also talked about the addition of dtrace. New to Leopard, major parts of the Dtrace ToolKit by Brendan Gregg have been added. Some of them can prove quite useful in diagnosing and troubleshooting particularly thorny problems.

pkgutil

A new command line utility has been added to Leopard, pkgutil. What does it do? From the man page, "pkgutil reads and manipulates the Installer's receipt database and flat packages." A database? That's new to Leopard. Let's look at where it is located. Change to /Library/Receipts/db. This database contains a record of all packages installed. Let's look at some of the basic options.

Forget. This option discards all the receipt data associated with an installed package. However, it only forgets the information, it does not touch the installed files. If you want to reinstall a package, this option is very useful, as the files will be overwritten and reinstalled. It won't be an upgrade; it will be a full reinstall.

Unlink. This option removes any files associated with a package. Be careful when using this option though, as it does no dependency checking and will not remove any directories that are contained within the package. However, if a package is only files, this command is quite useful.

Pkgs. All packages known on the system are listed. Here's why this option is important. Look at the Receipts directory, and then run the command pkgutil -pkgs. Take close look. Note that if the 10.5.1 update has been installed, there is no pkg receipt. It is only contained within the pkgutil database.

Repair. This option will run repair packages to repair the specified package identifier. Note however, that this option only repairs packages if they are known to the repair_packages utility found in /usr/libexec. Let's look at this a little more in depth.

repair_packages will repair packages with that are recorded in the standard package list. Here's how to check the list, open /usr/libexec, and run

   repair_packages -list-standard-pkgs

Here's what is returned on my system:

System packages on '/':
   com.apple.pkg.BaseSystem
   com.apple.pkg.Essentials
   com.apple.pkg.BootCamp
   com.apple.pkg.BSD
   com.apple.pkg.iPodSupport
   com.apple.pkg.PodcastCapture
   com.apple.pkg.Directory
   com.apple.pkg.JavaToolsLeo
   com.apple.pkg.AdditionalEssentials
   com.apple.pkg.AdditionalSpeechVoices
   com.apple.pkg.AsianLanguagesSupport
   com.apple.pkg.MediaFiles
   com.apple.pkg.MigrationAssistant
   com.apple.pkg.Mail
   com.apple.pkg.AddressBook
   com.apple.pkg.iCal
   com.apple.pkg.Automator
   com.apple.pkg.DVDPlayer
   com.apple.pkg.iTunes
   com.apple.pkg.iChat
   com.apple.pkg.Java
   com.apple.pkg.Safari
   com.apple.pkg.OxfordDictionaries
   com.apple.pkg.X11User
   com.apple.pkg.ACL
   com.apple.pkg.VersionedDeveloperToolsSystemSupportLeo
   com.apple.pkg.DistributedBuildsSupportLeo
   com.apple.pkg.DeveloperToolsSystemSupportLeo
   com.apple.pkg.gcc4.0Leo
   com.apple.pkg.DeveloperToolsCLILeo
   com.apple.pkg.DevSDKLeo
   com.apple.pkg.X11SDKLeo
   com.apple.pkg.QuickTimeSDKLeo
   com.apple.pkg.OpenGLSDKLeo
   com.apple.pkg.WebKitSDKLeo
   com.apple.pkg.FireWireSDKLeo
   com.apple.pkg.BluetoothSDKLeo
   com.apple.pkg.CoreAudioSDKLeo
   com.apple.pkg.JavaSDKLeo
   com.apple.pkg.X11DocumentationLeo
   com.apple.pkg.ServerSetup
   com.apple.pkg.ServerAdminTools
   com.apple.pkg.update.os.10.5.1

Note all the packages, these are the only packages that are checked when verifying permissions. Packages can be added, but at this time, this command appears to only accept those that are known by the receipts database. One last thing, the repair_packages command allows individual verification of packages. Here's how:

   /usr/libexec/repair_packages -verify -pkg com.apple.pkg.ServerSetup

Imagine using Apple Remote Desktop to verify or repair permissions on any number of packages! That about sums up the power of pkgutil and repair_permissions. I've not gone into all of the options, but there are a number of additional options to pkgutil whichpkgutil, which could be used. Read the man page and have fun!

DTRACe and friends

Dtrace is quite powerful, but who has time to learn a new programming language? I don't,. that's for sure! Here's where some of the newly included programs can be explored and used when troubleshooting problems.

Snoop commands

Four "snooping" commands have been added, execsnoop, iosnoop, rwsnoop and opensnoop. I'll look at rwsnoop first. This command will observe reads and writes at the application level. It is really very verbose, and lists each and every read/write operation. It is also hooked in at the kernel level, so it is quite accurate. It's very simple to use to monitor a specific application. First, get the process id (PID), and then use the -p option. As an example, to monitor all Mail.app activity:

   rwsnoop -p PID

This command monitors any read/write activity for the Mail.app application. Of course, one does not need to specify a particular application, but it is far more useful to only monitor one.

Input output monitoring

Three commands are included to track disk input/output, iotop, iopending, and iopattern. The one I like here is iotop. When troubleshooting a slow system, iotop presents a listing much like the unixUNIXnix top command. On a sluggish system, one could track the drive activity to determine what was slowing a system down.

Included scripts written in d

Lastly, many new commands have been included in Leopard, all written in d, the dtrace programming language. They are all located in /usr/bin. A couple of commands are particularly interesting. The first is creatbyproc.d. Run it in the following way:

   dtrace -s creatbyproc.d

Note the output. It tracks files as they are created by process id. Let's look at another useful d script, filebyproc.d. This command will track files by process. How about yet another? Pathopens.d tracks files by the path, and the count. Here's what the output might look like:

 COUNT PATHNAME
     1 Leopard/.
     2 /dev/dtracehelper
     2 /dev/urandom
     2 /usr/share/locale/en_US.UTF-8/LC_COLLATE
     2 /usr/share/locale/en_US.UTF-8/LC_CTYPE
     2 /usr/share/locale/en_US.UTF-8/LC_MESSAGES/LC_MESSAGES
     2 /usr/share/locale/en_US.UTF-8/LC_MONETARY
     2 /usr/share/locale/en_US.UTF-8/LC_NUMERIC
     2 /usr/share/locale/en_US.UTF-8/LC_TIME
    24 /dev/

Open /usr/bin and explore some of the other d scripts. While not all of the dscripts are there, most are.

One last thing, Brendan Gregg has provided a whole range of one-liners, most of which work on Leopard. Here's their location: http://www.brendangregg.com/DTrace/dtrace_oneliners.txt. Troubleshooting problems with these tools is now so much easier. I've already solved some problems I previously couldn't seem to solve.

Well, that's about it for this month. Play with these new command line tools, as they really increase the arsenal available to any Macintosh system administrator. Until next month, I'll see you on the lists!


Philip Rinehart is co-chair of the steering committee leading the Mac OS X Enterprise Project (macenterprise.org) and is the Lead Mac Analyst at Yale University. He has been using Macintosh Computers since the days of the Macintosh SE, and Mac OS X since its Developer Preview Release. Before coming to Yale, he worked as a Unix system administrator for a dot-com company. He can be reached at: philip.rinehart@yale.edu.

The MacEnterprise project is a community of IT professionals sharing information and solutions to support Macs in an enterprise. We collaborate on the deployment, management, and integration of Mac OS X client and server computers into multi-platform computing environments.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

ScreenFlow 6.1 - Create screen recording...
ScreenFlow is powerful, easy-to-use screencasting software for the Mac. With ScreenFlow you can record the contents of your entire monitor while also capturing your video camera, microphone and your... Read more
Microsoft Office 2016 15.25 - Popular pr...
Microsoft Office 2016 - Unmistakably Office, designed for Mac. The new versions of Word, Excel, PowerPoint, Outlook and OneNote provide the best of both worlds for Mac users - the familiar Office... Read more
FileZilla 3.21.0 - Fast and reliable FTP...
FileZilla (ported from Windows) is a fast and reliable FTP client and server with lots of useful features and an intuitive interface. Version 3.21.0: Fixed Vulnerabilities Fixed a string format... Read more
Fantastical 2.2.5 - Create calendar even...
Fantastical 2 is the Mac calendar you'll actually enjoy using. Creating an event with Fantastical is quick, easy, and fun: Open Fantastical with a single click or keystroke Type in your event... Read more
The Hit List 1.1.26 - Advanced reminder...
The Hit List manages the daily chaos of your modern life. It's easy to learn - it's as easy as making lists. And it's powerful enough to let you plan, then forget, then act when the time is right.... Read more
Typinator 6.10 - Speedy and reliable tex...
Typinator turbo-charges your typing productivity. Type a little. Typinator does the rest. We've all faced projects that require repetitive typing tasks. With Typinator, you can store commonly used... Read more
EtreCheck 3.0.2 - For troubleshooting yo...
EtreCheck is an app that displays the important details of your system configuration and allow you to copy that information to the Clipboard. It is meant to be used with Apple Support Communities to... Read more
FileZilla 3.21.0 - Fast and reliable FTP...
FileZilla (ported from Windows) is a fast and reliable FTP client and server with lots of useful features and an intuitive interface. Version 3.21.0: Fixed Vulnerabilities Fixed a string format... Read more
EtreCheck 3.0.2 - For troubleshooting yo...
EtreCheck is an app that displays the important details of your system configuration and allow you to copy that information to the Clipboard. It is meant to be used with Apple Support Communities to... Read more
Microsoft Office 2016 15.25 - Popular pr...
Microsoft Office 2016 - Unmistakably Office, designed for Mac. The new versions of Word, Excel, PowerPoint, Outlook and OneNote provide the best of both worlds for Mac users - the familiar Office... Read more

Bowmasters tips, tricks and hints
At least for this writer, archery was one of the more pleasant surprises of the 2016 Rio Olympics. As opposed to target shooting with guns, which was dreadfully boring, watching people shoot arrows at targets was pretty darn cool. [Read more] | Read more »
Best apps for watching live TV
The Olympics have come and gone, leaving nearly everyone in a temporary state of "What the heck am I going to watch on TV right now?" Besides old reruns of Golden Girls, but that goes without saying. [Read more] | Read more »
What is Flip Diving, and why has it take...
Move over Pokemon GO. There's a new king in town, and it's "the world's #1 cliff diving game." [Read more] | Read more »
5 places where Pokemon GO is still numbe...
In the U.S., the bloom is off the Pokemon Go rose ever so slightly. It's still doing great, sitting atop the top grossing chart as it has for some time, but it's no longer among the top 10 free apps in downloads, possibly because darn near... | Read more »
Madden NFL Mobile: How defense has chang...
Saying that defense is not a priority in Madden NFL Mobile is a bit of an understatement. In asynchronous head-to-head play, you don't take control of your defenders at all, as the AI manages them while your opponent plays offense. When it's your... | Read more »
Feed Hawk (News)
Feed Hawk 1.0.1 Device: iOS Universal Category: News Price: $2.99, Version: 1.0.1 (iTunes) Description: Feed Hawk makes it easy to subscribe to the RSS feed of the website you are visiting. From within Safari, simply open a share... | Read more »
Reigns character guide: Who's who i...
Know your foes. Keep your friends close, but your enemies closer. And there are probably some other cliches that would apply to your perilous spot on the throne in Reigns as well. [Read more] | Read more »
Match 3 puzzler Small Lime is now availa...
Set to hit Android and IOS on the 17th August, Small Lime is the newest match 3 mobile game, and hopes to throw something a little different into the mix. If you love match 3 puzzles, but are tired of the same old ideas being re-hashed again and... | Read more »
Deus Ex GO tips, tricks, and hints
When Square Enix Montreal first hit us with Hitman GO,it was seen as a clever board game twist on a property that you wouldn't normally think would fit that kind of format. Lara Croft GOexpanded things even further while keeping some of the same... | Read more »
Leap of Fate (Games)
Leap of Fate 1.0 Device: iOS Universal Category: Games Price: $3.99, Version: 1.0 (iTunes) Description: *** Minimum hardware: iPad 4, iPad mini 2, iPhone 5s. *** | Read more »

Price Scanner via MacPrices.net

Typinator 6.10 comes with 50 improvements – G...
Ergonis Software today announced release of Typinator 6.10, a new version of their text expander utility for macOS. Typinator 6.10 comes with 50 improvements, including new features, compatibility... Read more
Taxi Sim 2016 Puts Users Behind the Wheel in...
Ovilex Soft today announces Taxi Sim 2016, an update to their ultra-realistic 3D driving simulator app for iOS and Android devices — literally a global event what with the company’s nearly 450,000... Read more
11-inch 1.6GHz/128GB MacBook Air on sale for...
Amazon has the current-generation 11″ 1.6GHz/128GB MacBook Air (sku MJVM2LL/A) on sale for $788 for a limited time. Their price is $111 off MSRP, and it’s the lowest price available for this model. Read more
Apple refurbished Mac minis available for up...
Apple has Certified Refurbished Mac minis available starting at $419. Apple’s one-year warranty is included with each mini, and shipping is free: - 1.4GHz Mac mini: $419 $80 off MSRP - 2.6GHz Mac... Read more
Apple refurbished 13-inch Retina MacBook Pros...
Apple has Certified Refurbished 13″ Retina MacBook Pros available for up to $270 off the cost of new models. An Apple one-year warranty is included with each model, and shipping is free: - 13″ 2.7GHz... Read more
12-inch 32GB and 128GB WiFi iPad Pros on sale...
B&H Photo has 12″ 32GB & 128GB WiFi Apple iPad Pros on sale for up to $70 off MSRP, each including free shipping. B&H charges sales tax in NY only: - 12″ Space Gray 32GB WiFi iPad Pro: $... Read more
Apple refurbished 11-inch MacBook Airs availa...
Apple has Certified Refurbished 11″ MacBook Airs (the latest models), available for up to $170 off the cost of new models. An Apple one-year warranty is included with each MacBook, and shipping is... Read more
WaterField Launches Kickstarter for Intrepid...
San Francisco based WaterField Design have announced their first Kickstarter campaign for the one-of-a-kind Intrepid iPhone Travel Wallet. The all-new design includes iPhone play-through capability... Read more
Five of Top 10 Worldwide Mobile Phone Vendors...
Global sales of smartphones to end users totaled 344 million units in the second quarter of 2016, a 4.3 percent increase over the same period in 2015, according to Gartner, Inc. Overall sales of... Read more
DriveSavers Offers $300 Off Data Recovery Ser...
DriveSavers, with more than 30 years of experience recovering photos, videos, contact lists, financial records and other important data that may have been kept on devices damaged or even destroyed by... Read more

Jobs Board

*Apple* Retail - Multiple Positions Germanto...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Professional Learning Specialist - A...
# Apple Professional Learning Specialist Job Number: 51234379 Portland, Maine, Maine, United States Posted: Aug. 18, 2016 Weekly Hours: 40.00 **Job Summary** The Read more
Lead *Apple* Solutions Consultant - Apple (...
# Lead Apple Solutions Consultant Job Number: 51218465 Richmond, VA, Virginia, United States Posted: Aug. 18, 2016 Weekly Hours: 40.00 **Job Summary** The Lead ASC Read more
*Apple* Solutions Consultant - Apple (United...
# Apple Solutions Consultant Job Number: 51218534 Pleasant Hill, California, United States Posted: Aug. 18, 2016 Weekly Hours: 40.00 **Job Summary** As an Apple Read more
*Apple* Retail - Multiple Positions Chestnut...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.