There are two commands that can be really helpful when scripting operations that involve filenames and paths. The first of these is dirname: dirname can be used to return the directory portion of a path. The second is basename: basename can be used to output the file name portion of a path. For our first example, let’s say that we have an output of /var/db/shadow/hash/850F62CD-966C-43A7-9C66-9F9E6799A955, which we know contains the encrypted password for a given user. To just see the UUID here would be done using the following extremely basic incantation of basename: basename /var/db/shadow/hash/850F62CD-966C-43A7-9C66-9F9E6799A955 Basename can also be used to trim output. For example, let’s say we didn’t need…
-
- Articles and Books, Business, certifications, Consulting, iPhone, Mac OS X, Mac OS X Server, Mac Security, Mass Deployment
MacTech Bootcamps Coming To A City Near You!
I’ve been watching the MacTech Conference and then Boot Camps for some time. After hearing of the resounding success of the Conference last summer I was then stoked to hear that the January Boot Camp went extremely well. A MacTech Boot Camp is a regional, single-track seminar designed specifically for consultants and techs. MacTech Conference is a multi-day conference for IT professionals with a focus on enterprise and development whereas the Boot Camps are for consultants and techs focused on home users and small to medium sized businesses. Both are going really well. https://krypted.com/ is now a media sponsor of MacTech Boot Camps! This means I get discounts to offer my…
-
Disabling Periodic Scripts
Mac OS X does a little housecleaning in batch processes that run daily, weekly and monthly. These are kicked off by LaunchDaemons that reside in /System/Library/LaunchDaemons and are called com.apple.periodic.daily.plist, com.apple.periodic.weekly.plist and com.apple.periodic.monthly.plist. These need to run and so should not be disabled outright. However, they can disabled temporarily, as when you need a somewhat process intensive script to run for a few days. Therefore, we need a way to disable these and re-enable them. One could just move those files, but there’s actually a more graceful way. Running defaults read against one of the property lists can be done as follows: defaults read /System/Library/LaunchDaemons/com.apple.periodic-daily We could use defaults to…
-
Quick & Dirty sed Find/Replace
I find a very common task that I need to do is find a string in a file and replace it with another string. Or better, find all instances of a given string and replace them with a new string. I figure others will need to do this as well. This is also an interesting example of how Mac OS X is not “the same” as Linux. The sed command can be used to quickly perform a find and replace inside of a file. The following example will use the -i option to do so in-place, defining no extensions to -i using the double quotes (“”), then using the /s…
-
The Mac OS X App Store & Managed Environments
The Mac OS X App Store was released earlier this month as a part of the Mac OS X 10.6.6 update. The App Store, with over 1,000 applications (including a couple of server tools), allowing people to download and install applications on Mac OS X computers without needing to understand how to click through the screens of a standard package installer, drag applications from disk images into the /Applications folder or basically how to do practically anything except for click and provide a valid credit card number. As with the App Store that debuted with the iPhone, the App Store for Mac OS X is clearly aimed at residential customers,…
-
Refreshing Managed Client Cache
Deleting the contents of the /Library/Managed Preferences directory is definitely one way to refresh your managed preferences cache in Mac OS X, but there have been commands specifically designed to clear the cache for each version of Mac OS X. By OS, these include the following: 10.6 – mcxrefresh – You can use this command (in /usr/bin) to refresh managed preferences 10.6 also has a ManagedClient binary in /System/Library/CoreServices/ManagedClient.app/Contents/MacOS/ManagedClient. When run with a -f option, ManagedClient will force updates. 10.5 has a binary called mcxd located in /System/Library/CoreServices/mcxd.app/Contents/MacOS/mcxd which can also be run with a -f option 10.4 has a binary called MCXCacher, stored in /System/Library/CoreServices/mcxd.app/Contents/Resources/MCXCacher which also supports the…
-
Howto Install wget for Mac OS X
The wget command is used to download files from the web and is one of the most useful commands around. But while it comes included with most distributions of Linux, it is not built into Mac OS X by default. Therefore, let’s look at installing wget. To get started, install the developer tools for Mac OS X so that you can get a working copy of a compiler (gcc). Once the developer tools have been installed, you’ll want to download the latest version of wget from gnu. To do so, either download it manually from http://www.gnu.org/software/wget or use the ftp command to do so for you: ftp ftp://ftp.gnu.org/gnu/wget/wget-latest.tar.gz Next, extract…
-
Programmatically Interacting with Google Apps
There are a number of ways that you can interact with Google Apps: there is the website, the new Google Cloud Connect and an API that allows you to integrate Google Apps with your own solutions. The API is available for python and java and can take some time to get used to, even though Google has done a good job with making it pretty straight forward (comparably). Therefore, there are a couple of tools that ease the learning curve a bit. GoogleCL on Ubuntu The first, and easiest is GoogleCL. GoogleCL is a command line version of Google Apps that will allow you to interact with YouTube, Picasa, Blogger…
-
NFS + Ubuntu + Mac OS X Clients = A Quickie
NFS is an old standby in the *nix world. It seems that it’s about as old as the hills and while it can be cranky at times, it’s pretty easy to setup, manage and use. Once it’s configured, you use it in a similar fashion as you do in Mac OS X Server. The client configuration is identical. To get started, let’s install the nfs-kernel-server, nfs-common and portmap packages on our Ubuntu 10.04 box: apt-get install nfs-kernel-server nfs-common portmap Then let’s create a directory to share (aka export): mkdir /Homes Then we need to define the permissions for /Homes (ends up similar in functionality to the export to option in…
-
Installing Ubuntu 10 in Fusion
I’ve done a number of articles on using Ubuntu 10 as a server recently, but haven’t actually looked at doing the base installation of an Ubuntu 10 host. In this example, I’ll look at using Ubuntu 10.04 Desktop. In many of the previous examples I’ve been looking at Ubuntu 10.10 Server; the reason I’m using 10.04 Desktop here is because I believe there is a smaller learning curve and that inherently Mac OS X Systems Administrators who might be following this thread actually like a GUI. There are a number of aspects of this type of setup that are simply not GUI oriented; however, the base OS can easily be,…