Skill Summary
- Scripting:
Korn, Bourne, and bash shells; perl, awk, sed, python, make, m4, ed, ex, tcl,
expect, msdos batch (cmd.exe), cgi, strong w/regular
expressions
- Web:
Atlassian Confluence wiki markup, HTML, basic Selenium
- Languages:
C, curses, python, pascal, fortran, basic; some involvement: SQL,
CSS, XML, YAML
- Configuration Management Tools:
Telelogic Synergy (SCM http://en.wikipedia.org/wiki/Telelogic_Synergy),
Subversion svn, cvs, RCS, SCCS, Telelogic Change (problem
tracking), make, ant, diff, patch, sdiff, some work w/autoconf
- Databases:
Telelogic used, and I supported Informix; (exposure to:
PL/SQL w/perl DBI and toad, MySQL, and postgresql);
- Operating Systems:
HPUX, AIX, GNU tools under AIX, Fedora, Centos, 90s era SUNOS, Windows Server: NT
3.51 and all versions through Windows 2003, (7 various UNIXes)
- Services:
sendmail, spamassassin, DNS (bind, named), NIS, apache, ntp, cups, crond, dhcpd,
nfs, sshd
- Currently Learning: Atlassian Jira workflows, Atlassian Bamboo build
management, java, javscript
Tom Rodman: Tools, Shells, Languages
- expert:
- [ ali at atq atrm awk basename bash bc cancel cat chkconfig chgrp chmod
chown ci co colrm comm comp cp crontab d2u date df diff
dirname dist dmesg dos2unix du echo egrep env exportfs false fgrep
file find fmt fold ftp gawk getopt grep gunzip gzip
halt head hostid hostname id kill less ln locate ls make man
md5sum mkdir mktemp more mv next nmh passwd ping ps
pwd rcp rcs rcsdiff rdate reboot rlog rlogin rm rmdir
rsh scan scp 'GNU screen' script send sh shutdown sleep sort
split ssh stat strings su tac tail tar tee telnet test time
top touch tr true tty u2d umount uname uncompress uniq unix2dos
unzip uptime vi vim wall wc wget xargs xterm yes zcat zip
- experienced:
- a2p adduser ash aspell batch bunzip2 bzip2 chfn chroot chsh
cksum cmp col conv convert cpan cpio crond dd ddrescue dig dir
dnsdomainname domainname dump dumpe2fs e2fsck ed editrights eject
ethereal ex expand expect expr fdformat fetchmail find2perl
finger formail fsck getfacl ghostscript gimp gnuplot groupadd
groupdel groupmod groups gs HTML iconv info ispell join keychain
last LATEX ldapsearch look lp lpq lpr lpstat lsof lynx m4 mail
mailx mhbuild mhlist mhshow mhstore minicom mount mutt named
netstat nfs nfsstat nice nisdomainname nl nmap nntp nohup nslookup
ntfs-3g ntpd ntpdate ntpq od packf par perl pg pgrep Pnews pppd
pr printf procmail pwck rcvstore rdist red resize restore rev
rexec rmail rpcinfo rpc.mountd rpc.nfsd rpm rsync rxvt rz SCCS
sdiff sed sendmail seq setfacl setsid sftp sha1sum spamassassin
ssh-add ssh-agent sshd ssh-host-config ssh-keygen startx stty
svn mkdir/import/add/ci/co/export/rm
svn stat
svn diff
svn log svnlook svn ls
svn cp, svn mv
sync
sz talk tclsh telinit TEX traceroute trn tune2fs tzselect units
unlink updatedb useradd userdel usermod uucp uudecode uuencode
vigr vipw vmstat watch wdiff who whois wiki wireshark xauth ypcat
ypdomainname yppasswd ypset ypwhich yum
- occasional:
- alternatives apt automake blkid cc diff3 free fuser gcc gpg hexdump
httpd install iptables killall logrotate losetup lsusb lpc lsdev lvcreate lvs merge
mkfifo mknod mountpoint mysql naim namei nc newer patch pvcreate
realpath s2p shar since smartd strace svnadmin svn cleanup svn switch tcpdump
tic tidy tput vgchange
vgcreate wish write yaml
Tom Rodman Accomplishments
- Created and maintained production shell or perl
scripts for: system administration, software configuration management, account
management, mail, time/date scheduling, text parsing, log file
analysis, file-system permissions and DACLs, log rotation and
purging, backup, recovery, TEX, ssh, application monitoring,
network file syncing or xfer (rsync, scp, ftp, wget, telnet,
expect), HTML, disk diagnostics/file-system checking, LDAP queries,
code metrics, scheduled jobs, software builds, SCM database sessions
and queries, OS-process management, file-system management/monitoring,
and search.
- Created wrapper script to standardize logging and metrics for cron
jobs across multiple servers, collecting STDOUT and STDERR below
a single directory with subdirs named after the job; reports and
logs job exit stat in a standard format; self purging or rotating
logs; creates flag file to detect unfinished, killed or hung jobs;
supports env var assignments and second-level meta-quoting at
command-line for "long 1 liner/no file" cron jobs.
- Did an extensive local disk vs SAN time-bottleneck multi-month analysis
using custom benchmark bash and perl scripts, resulting in SAN
configuration changes that reduced over night database backup
times by up to 20%.
- Wrote script, using join, comm, sort, and diff, comparing
accounts in Windows trustee groups, LDAP, AD, and our application
database - discrepancies explained and emailed. It saved hours
of work monthly, dealing w/(help-desk) related issues w/user
adds, deletes, or disabled accounts.
- Wrote robust/critical shell scripts, using my own library of 33
database related functions, to automate our SCM database upgrades,
they were customized for the upgrade and ran for over 17 hours on
the upgrade weekend processing our 40+GB databases.
- Created system to manage application config files on multiple
hosts at multiple sites using GNU m4 macro language - this
simplified global and site specific config file changes; and the
update/merge steps for upgrades.
- Received "quick thanks" award for timely completion of request to
"snapshot-copy" a UNIX multi GB software development environment,
to a SAN used by Windows 2003; used Cygwin "managed mounts" to
handle UNIX/Windows naming conflicts.
- Lead project to convert NTFS discretionary access control
lists (DACL) on over 100GB of file-systems on SANs and local
disks for several servers, from one Active Directory Domain to
another. Wrote archive, conversion and comparison scripts
in perl, using 'setacl' to read or change the DACls; wrote specs
for an Infosys developer in India to complete and execute the
conversion, which went smoothly.
- Major successful effort at preparing for and completing an April
2008 remote site, bare metal, offsite Disaster Recovery exercise for our
SCM and software problem tracking server. Worked together w/co-worker on
1500 lines of text in about 8 documents w/in the plan.
- Took a prototype perl "code metrics" script, rewrote some of the
logic, enhanced it to handle errors gracefully, added verbose
logging, tested, and put ib production. This is a SCM
code check-in triggered script that annotates code object meta-data
w/"lines of code" metrics based on a comparison to the prior version
- Following the GNU Cygwin project since 1996, and
periodically did a small number pre and post release tests for the
project; as a result have identified problems that have almost
all been fixed by the Cygwin developers after they responded to my
carefully documented test cases.
- Wrote "trip wire" style script to watch perms, ownership, file
attribute, size, time-stamp, or file checksum changes in windows
install tree; another script to monitor registry list of installed
applications.
- have many years of notes, project plans and logs, in one place,
in plain text, under version control, tagged and easily searched
- coordinated successful recovery of a HP Proliant server in India,
remotely (they were ready to give up on the drive data) - the
motherboard was replaced, then we had to troubleshoot an issue
w/the RAID controller configuration - no data was lost
- tested and updated proprietary SCCS based SCM, software build
server, and compile farm for y2k compliance under HPUX; uptime for
this server: typically several years.
date rendered: February 12, 2011
Tom Rodman
2011-02-12