Tuesday, January 31, 2006

Download and gunzip in one step

I was feeling the need to take a look at Nexenta and decided that I wasn't terribly interested in waiting for a download, then waiting for a gunzip. Why not do them both at the same time?

$ wget -O /dev/stdout  http://www.gnusolaris.org/gsmirror/genunix.org/elatte_installcd_alpha2_i386.iso.gz  | gunzip > elatte_installcd_alpha2_i386.iso         => `/dev/stdout'
--20:21:47--  http://www.gnusolaris.org/gsmirror/genunix.org/elatte_installcd_alpha2_i386.iso.gz
Resolving www.gnusolaris.org...
Connecting to www.gnusolaris.org||:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.genunix.org/distributions/gnusolaris/elatte_installcd_alpha2_i386.iso.gz [following]
--20:21:48--  http://www.genunix.org/distributions/gnusolaris/elatte_installcd_alpha2_i386.iso.gz
Resolving www.genunix.org...
Connecting to www.genunix.org||:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 567,433,011 (541M) [text/plain]

13% [====>                                ] 77,025,880   359.25K/s    ETA 22:27
Just 22 minutes to go. I guess at this rate I could have piped it through cdrecord with "speed=2".


Friday, January 13, 2006

patch_order made easy

Some of my most tedious times as a Solaris administrator have been when I needed to create a patch_order file for a custom patch cluster. For a long time I have intended to just write a script...

But now, I don't have to do that any longer! Today I discovered that smpatch(1M) now has an order subcommand. This makes it really quite simple for me to create a patch_order file for a very long list of patches. In this example, I create the patch_order file for the patches in the Solaris 10 Update 1 UpgradePatches directory:

# cd /mnt/Solaris_10/UpgradePatches
# ls > /tmp/patches
# smpatch order -d `pwd` -x idlist=/tmp/patches > /tmp/patch_order
Now, if you want to go the full length and create a patch cluster for it:
# mkdir /tmp/10U1_UpgradePatches
# cd /tmp/10U1_UpgradePatches
# mv /tmp/patch_order .
# ln -s /mnt/Solaris_10/UpgradePatches/* .
# cp /somewhere/10_Recommended/install_cluster .
Modify the SUPPLEMENT_NAME="..." line in install_cluster to be more descriptive for this patch cluster. Be sure to not use characters like /, \, |, etc.
# cd /tmp
# zip -rq 10U1_UpgradePatches.zip 10U1_UpgradePatches
At this point, you can copy the 10U1_UpgradePatches around to your various machines and use it just like you would a 10_Recommended bundle. Enjoy!