Python: File System Storage Report

Recently I have been updating my scripting skills and learning Python. I have been using some of the great resources out there such as Codeacademy and the book “Dive into Python” but after getting about half way through I found a need to build some apps. So, please forgive me if the code looks horrible or if things could be done a better way but this is literally my first Python program… Anyways, on to the program. I needed a way to parse through terabytes of data and locate files that I could archive to different storage. The scan had …

Solaris 11 Samba / ZFS Configuration

The following is a summary detailing step-by-step how to setup Solaris 11 as an active directory integrated file server using Samba and ZFS. Most of this configuration comes from a tested configuration on Solaris 10 as well as Linux, but with the release of Solaris 11 and some changes in ZFS my previous instructions needed to be updated. The configuration has currently only been built and tested in a virtualized environment and though I do try and test as vigorously as possible please make sure to test before putting into production. I make no promises/warranties regarding any of this information. …

Solaris 10 Mirror Repartition

I ran into a problem a while back because I used a manufacturer installed system without installing the OS myself and I overlooked the manufacturer defined partitioning scheme. After the system was in production I realized that the root file system was not using the entire disk and I was wasting about 400GB of disk space on the root mirror. So I had to repartition but I didnt want to reinstall. This documentation requires that the BIOS is able to choose between boot disks and may not work on all systems. Please use these instructions at your own risk, test …

Using smpatch

After using the Sun update connection software and having lock-ups on several occasions, I have found it much easier and more reliable to use smpatch. Depending on your comfort with patching a system there are several options to make this process very manual or extremely automated. smpatch updates are split up by four main commands (add, update, download and anlayze) which allow you to either perform an update in one step or break down an update into multiple steps. smpatch add Only applies the patch, all other functions require analyze and download. Does not consult patch policy before applying a …

Solaris 10 SSH Migration

While migrating data between multiple servers I ran into a few interesting situations with SSH that I thought would be worth mentioning. If nothing else it will add some more documentation to this site. Solaris tar vs. GNU tar After using tar for years on Linux I always figured all tar’s were the same until I tried to untar an archive on Solaris. When I untar’ed a Linux tar archive on Solaris I ran into an error along with a @LongLink file in my directory. This was caused by incompatabilities between GNU tar and the default tar bundled in Solaris. …

Solaris 10 Samba / ZFS Configuration

The following is a summary detailing step-by-step how to setup Solaris 10 as an active directory integrated file server using Samba and ZFS. The following example comes from a production configuration on an x4500 and previously a similar configuration was used on a production Linux file server for three years. I will update this web site as I test my final configurations. I make no promises/warranties regarding any of this information. The following information contains my opinions from my own experience with Solaris/Samba/ZFS. The following documentation is provided for educational purposes only and should be used at your own risk. …

Solaris 10 Samba Maintenance

Replace permissions on a project directory Because ZFS ACL’s include the concept of inheritance and differentiate between files and directories we need to do a search and replace operation in order to recursively change permissions on an entire directory. chmod -R A- /export/Corporate/Saleschmod -R 770 /export/Corporate/Saleschmod A0=owner@:————–:fdi—:deny /export/Corporate/Saleschmod A1=owner@:rwxpdD-A-W-Co-:fdi—:allow /export/Corporate/Saleschmod A2=group@:————–:fdi—:deny /export/Corporate/Saleschmod A3=group@:rwxpdD——–:fdi—:allow /export/Corporate/Saleschmod A4=everyone@:rwxp–aARWcCos:fdi—:deny /export/Corporate/Saleschmod A+group:domain+domain users:rx:deny /export/Corporate/Saleschmod A+group:domain+corporate-all:wpdDxrcaRAwW:fd:allow /export/Corporate/Saleschmod A+group:domain+corporate-sales:wpdDxraRAwW:fd:allow //export/Corporate/Saleschmod A+group:domain+domain admins:Co:fd:allow /export/Corporate/Salescd /export/Corporate/Salesfind . -type d -exec chmod A0=owner@:————–:fdi—:deny {} ;find . -type d -exec chmod A1=owner@:rwxpdD-A-W-Co-:fdi—:allow {} ;find . -type d -exec chmod A2=group@:————–:fdi—:deny {} ;find . -type d -exec chmod A3=group@:rwxpdD——–:fdi—:allow {} ;find . …