Monday, March 14, 2011

General System Administration Overview

Classification of Systems:
Small sites have 1 - 10 machines, all running the same OS. Usually the administrator of a small site has only about 20 users. Usually there is only one administrator for a small site.

Medium sites have up to 100 machines, and may be running up to 3 different OSs. The administrator usually has about 100 users. Medium sites may have more that one administrator, either specializing in different operating systems or sharing general system administrator duties.

Large sites have over 100 computers, multiple operating systems, and over 100 users. At a large site, there will be a hierarchy of administration, with the lead or senior System Administrator responsible for all of the systems and assigning duties to one or more assistant administrators.

System Administration Skills:
System administration skills can be classified in four general levels. The links below discuss the required skills, desired skills, and responsibilities of each of those levels. Following the levels are some general thoughts on system administration in general.

Novice Junior Intermediate/advanced Senior Some thoughts on System Administration.
Novice System Administrator:
Required skills:
Has strong inter-personal and communication skills: is capable of explaining simple procedures in writing or verbally; has good phone skills.
Is familiar with Unix and its commands/utilities at the user level. Can edit files using more than one editor. Uses at least two shells one of them being the Bourne shell.
Can perform standard file processing tasks; find, move, remove, redirection.


Required background:
Two years of college or equivalent post-high school education or experience.


Desirable:
A degree or certificat in computer science or related field.
Previous experience in customer support, computer operations, system administration, or another related area.
Motivated to advance in the profession.

Appropriate responsibilities:
Perform routine tasks under the direct supervision of a more experienced administrator.
Be the front-line interface for users; accepting problem reports and passing them to the appropriate system administrators.
Performs some security functions, especially monitoring the system

Junior System Administrator:
Required skills:
Has strong inter-personal and communication skills: capable of training users in applications and Unix fundamentals. Able to write basic system and user documentation.
High skill level with most Unix commands and utilities.
Familiar with most basic system administration tools and tasks. For example, can cleanly boot and shutdown the system, add and remove user accounts, use backup programs, perform fsck and maintain system database files (groups, hosts, aliases, etc.)
Fundamental understanding of the functioning of the Unix operating system: for example understands job control, hard and soft linking, the difference between shell programs and kernel programs.
Basic understanding of Unix security procedures


Required background:
One to three years of system administration experience.


Desirable:
Degree in CS or a related field.
Familiarity with networked/ distributed computing environments. For example: can use the route command, add a workstation to a network, or mount a remote filesystem.
Ability to write functional scripts in an administrative language (shell, Perl, Tk).
Some programming experience in an applicable language like C.


Appropriate Responsibilities:
Administer a small site alone, or assist in the administration of a larger site.
Work under the general supervision of a more senior system administrator or computer systems manager.
Perform normal security procedures, able to advise users on standard security protocol.
Intermediate/Advanced System Administrator
Required Skills
Has strong inter-personal and communication skills: capable of training users in complex topics, making presentations to internal groups. Able to write intricate system and user documentation. Capable of writing and explaining purchase justifications.
Independent problem solving; self-directed, self-starting.
Very comfortable with most aspects of the Unix operating system: paging/swapping, inter-process communication, devices and device driver fundamentals, file system concepts like inode and superblock.
Familiar with fundamental networking/distributed computing environments and concepts. Can configure NFS and NIS, use nslookup or research to check information in the DNS.
Ability to write detailed scripts in at least one, preferably two administrative lnaguages, (shell scripts, Perl, Tk).
Ability to perform at least minimal debugging and modification of C programs.
Ability to perform most security audits, and protect the system against intrusion.


Required Background:
Three to five years of system administration experience.


Desirable:
At least a BS in Computer Science or a related field.
Significant programming background in any applicable language.


Appropriate Responsibilities:
Receive general instructions for new duties from supervisor.
Administers a mid-size site alone, or assists in administration of a larger site.
Initiates some new responsibilities and helps plan for the future of the site and network.
Manages novice system administrators or operators.
Evaluates and/or recommends purchases; has strong influence on the purchasing process.
Serves as the first line of defense against intrusion and inadvertent system damage.
Senior System Administrator:
Required Skills
Strong inter-personal and communication skills; capable of writing proposals and papers, acting as a vendor liaison, making presentations to customer/client audiences or making professional presentations, work closely with upper management.
Ability to solve problems quickly and completely.
Ability to identify tasks which should be automated and then write tools to automate them.
Solid understanding of the Unix based operations system: understands paging and swapping, interprocess communication, devices and device drivers, can perform system analysis and tuning.
Ability to program in at least one, preferably two administrative languages, (shell, Perl, Tk) and port C programs from one platform to another, write small C programs.
Solid understanding of networking/distributed computing environments, understanding the principals of routing, client/server programming, and the design of consistent network-wide filesystems.


Required Background:
More than 5 years of previous system administration experience.


Desirable:
A degree in CS or a related field. Advanced degree preferred.
Extensive programming experience in an applicable language.
Publications within the field of system administration.


Appropriate Responsibilities:
Design/implement complex local and wide-area networks of machines.
Manages a large site or network.
Works under general direction of senior management.
Establishes/recommends policies and procedures for system use and services.
Provides the technical lead and/or supervision for system administrators, system programmers, or others.
Has purchasing authority and responsibility for purchase justification.

Finally, some important thoughts for system Administrators:
Never do something you can't undo.
Always check the backups, never assume they are working. Make sure you can restore from them, too.
Write down what you did, even if you know you will never forget it, you will.
If you do it more than once, write a script.
Get to know your users before there is a problem, then when there is, they will know who you are and maybe have a little understanding.
Remember you are performing a service for your users, you don't own the system, you just get to play with it.
Check your backups.
Never stop learning, there is always something you should know to make your job easier and your system more stable and secure.
Check your backups, again.