# System administration

School:Information Technology → System administration
System administration is the field of work in which someone manages one or more systems, be they software, hardware, servers or workstations. Its goal is ensuring the systems are running efficiently and effectively.

## Typical usage

System administration is typically done by information technology experts for or within an organization. Their job is to ensure that all related computer systems and services keep working .
A system administrator, or sysadmin, is a person responsible to maintain and operate a computer system or network for a company or other organization. System administrators are often members of an information technology department.
The duties of a system administrator are wide-ranging, and vary from one organization to another. System administrators are usually charged with installing, supporting, and maintaining servers or other computer systems, and planning for and responding to service outages and other problems. Other duties may include scripting or light programming, project management for systems-related projects, supervising or training computer operators, and being the equivalent of a handyman for computer problems beyond the knowledge of technical support staff.
It is common for systems administrators and systems analysts charged with developing and maintaining computer processes to identify operational and developmental systems. This is done to provide maximum reliability and availability on mission-critical systems used within the organization's processes by generic users to accomplish routine work while providing developmental resources to computer process development or research teams augmenting existing or developing new processes for the organization.

## Related fields

Many organizations staff other jobs related to systems administration. In a larger company, these may all be separate positions within a computer support or Information Services (IS) department. In a smaller group they may be shared by a few sysadmins, or even a single person.
* A database administrator (DBA) maintains a database system, and is responsible for the integrity of the data and the efficiency and performance of the system.
* A network administrator maintains network infrastructure such as switches and routers, and diagnoses problems with these or with the behavior of network-attached computers.
* A security administrator is a specialist in computer and network security, including the administration of security devices such as firewalls, as well as consulting on general security measures.
* Technical support staff respond to individual users' difficulties with computer systems, provide instructions and sometimes training, and diagnose and solve common problems.
* A computer operator performs routine maintenance and upkeep, such as changing backup tapes or replacing failed drives in a RAID array. Such tasks usually require physical presence in the room with the computer; and while less skilled than sysadmin tasks require a similar level of trust, since the operator has access to possibly sensitive data.
* A systems analyst documents, trouble shoots, and develops existing and new computer and work processes and systems.
In some organizations, a person may begin as a member of technical support staff or a computer operator, then gain experience on the job to be promoted to a sysadmin position and afterwards an IT Manager.

## Duties of a system administrator

A system administrator's responsibilities typically include:
* Morning checks of systems/software.
* Performing backups of data.
* Applying operating system updates, and configuration changes.
* Installing and configuring new hardware/software.
* Adding/deleting/creating/modifying user account information, resetting passwords, etc.
* Answering technical queries.
* Responsibility for security.
* Responsibility for documenting the configuration of the system.
* Troubleshooting any reported problem or reported problems.
* System performance tuning.
* Keeping the network up and running.
In larger organizations, some tasks listed above may be divided among different system administrators or members of different organizational groups. For example, a dedicated individual may apply all system upgrades, a Quality Assurance (QA) team may perform testing and validation, and one or more technical writers may be responsible for all technical documentation written for a company.
In smaller organizations, a system administrator can also perform any number of duties elsewhere associated with other fields like:
* Technical support
* Database administration (DBA)
* Network administration/analyst and specialist
* Application analyst
* Security administration
* Programming
System administrators, in larger organizations, also tend not to be system architects, system engineers, or system designers, however, like many roles in this field, demarcations between systems administration and these other roles are often not well defined in smaller organizations. However, even in larger organizations, senior systems administrators often have skills in these other areas as a result of their working experience.
In smaller organizations, IT/computing specialties are less often discerned in detail, and the term "system administrator" is used in a rather generic way — they are the people who know how the computer systems work and can respond when something fails.

## Being an administrator

The primary goal of being a system administrator is to be as lazy as possible. Not lazy in the sense that you do no work, but lazy in the sense that you get the computer to do the hard and repetitive jobs, and you do the thinking jobs.
The next goal of system administration is customer satisfaction. While "having a warm and fuzzy feeling" is a laudable goal, we want to fulfill measurable goals. Measuring things like server availability, time to problem resolution, network availability and error rates will help to measure satisfaction.
Remember there are at least two customer types in any sys admins job -- other employees, who are consuming the computer/server/network services, and the management (one of whom is the sys admins boss), who are paying the system administrator to steer their computer resources in a reliable and trouble free direction. Balancing and satisfying both customers is important in the long term. Most important, of course, is consistently providing product to end-users.

### Resolving problems and troubleshooting

A large part of a sys admins job involves troubleshooting and problem solving. Many problems are user driven, and different users have different levels of competency and understanding of technology. Users are often frustrated over the problem, and sometimes need to vent. But the user is often the best source of information on the cause of an issue.
While there isn't a simple guide to every situation, there are a few steps which can help.
* Isolate the problem as much as possible.
* Look for recent changes
* Check all of the obvious things (cables plugged in and so on)
* Ensure each piece of equipment is working before moving on to the next.
NOTE: Don't make assumptions.
* Develop detailed specific information to communicate to specialized troubleshooters brought to assist with specific repairs or system augmentations.
/Detailed Computer Configuration Troubleshooting Guides

### Planning and Routines

Establish a routine and try to stick to it. If you schedule deliveries of new computer equipment only on Tuesday, then you don't have to worry about matching equipment to orders while trying to get the mail server that failed over the weekend back up. Estimate how long tasks will take and measure how long they actually do. (Document them both in terms of "hours of actual work" and "clock time". It might take only 20 minutes to get a new machine set up in terms of "actual work", but it may take the better part of a day for all of the hardware and software to get installed.)

### Manage and fulfill expectations

People want to know when they are going to see results, so try and think in terms of what your clients are seeing. If the server will arrive in 5 days, but it will take 2 days of setup and 2 days of testing, that is approx. 2 weeks of work, if all goes according to schedule. Don't say "it'll be here in a week", because your client will expect it to be working in 1 week and 1 day then.
Don't tell people what you think they want to hear. Be realistic and honest in your estimates, but under-promise and over-delivery. There are always a couple of things that are unforseen, and underpromising allows you real time to work on those items. Over-delivering means either be dead on, or early in completing tasks. If you are early, make sure you explain that you had some good luck (and avoided those couple unforeseen issues) and were able to deliver faster than you expected.

### Larger projects - Blocking your time

There are always a few projects that will take either most of a day or even a few days, but they need concentration and few interruptions to complete in the best way possible. What do you do if your job is to answer end-user questions when they happen, and they usually happen a few times an hour? The best way is to block your time. Most sys admins work in teams, and this is the best way to block your time. Simply ask your team mate to take over all of the interruption type questions you usually deal with for the time you need, and you will do the same for him/her when they need to do a larger project.

### Create a process and stick to it

Many companies have support hotlines and e-mail areas where users can get support for their questions. Often, however, sys admins complain that users ask them questions in person or call them directly to get around these processes. If you have a formal system, first make sure it's integrated. That means that any question, be it e-mail, phone or in person has to be "entered" into the system. No one should get answers without a ticket number, which should be used by both your users and your sys admins to refer to a request. Each request should be triaged, and the requestor should get an estimated time to resolve.
The system shouldn't build a moat around the sys-admins, though. The idea is that formal questions go through a formal process, and if this is stuck to, then all users should recieve a consistent answer in a timely manner. It should also dissuade "queue jumpers" from phoning certain people direct to work around the process.
These types of processes exist in guidelines such as ITIL. It can be difficult, especially in smaller companies, to convince end users of the benefits of calling a hotline, when they have to wait for the actual sysadmins to respond, instead of calling them directly.

### Document, Document, Document

In real estate, it's location location location. In system administration, it's important to create a documentation trail so you know what was done, when, and by whom. This can be something as simple as short log entries (date-time/username/action), or formal guides. It is especially critical when you are debugging or doing emergency troubleshooting to keep these entries, as changes can affect security, stability or availability of resources.
The best system is one that collects configuration changes made into a central location. Often a version tracking tool, such as CVS or SVN can be used to accomplish this, with the added benefit that you get automatic backups of any such configuration.

## Topic considerations

* Wikiversity:Sandbox Server
* MediaWiki Engine
* Linux Server Administration
* FreeBSD Server Administration
* Topic:Apache -> Apache webserver administration, Using Modperl, LAMP, WAMP, etc...
* Install-script (example)
* Logon-scipt (example)
* BIOS - Troubleshooting (POST codes, example) and accessing (example)
* Regression testing or planning. New systems should meet all old requirements which remain current while adding new capabilities.
* Systems analysis or designing system augmentation or modifications.
* ...brainstorm...

## Off-topic considerations

* Homeschool
* ...brainstorm...

## Software

Both the client and server software that a system administrator uses is very important for every system administrator. Proper software can save a system administrator lots of time and money. It can also be a huge benefit if the source code is available for the software, in the event that a bug is found and the provider is too expensive/slow to fix it and/or come up with workarounds.

### Availability and Performance Monitoring Software

* Montastic - a free online website monitoring service
* mon.itor.us - Monitor Websites, Servers, Visitors and more
* up.time - server monitoring and capacity planning software. Free 14-day Enterprise trial available.
* Nagios - One of the best open source monitoring applications in existance. Start with the base, then get some fantastic plugins.
* Grafana - analytics, monitoring and dashboards written in Go.
* Linux server administration/Zabbix
* Graphite

### Archiving software

* 7-zip - Open source (LGPL) archiving program for windows, which supports most formats (see the website for a full list)

### Audio/video

* VLC Media player - Open source cross-platform audio/video player (can save all files and streams that it can open)
* PiTiVi - Open source video editor for Linux
* Audacity - Open source cross-platform audio editor (works alot like the old cool edit)
* Mediacoder - Adware/nagware audio/video conversion for Windows using open source tools
* VirtualDub - Open source video editor for Windows
* Avidemux - Open source cross-platform video editor
* Kino - Easy, simple and powerful open source video editor for Linux
* SUPER - Freeware windows front-end to various open source encoding tools (includes the tools and codecs)

### Backup

See Synchronization

### CAD

* Autodesk DWG TrueView - Autodesk's own freeware program to open DWG files and can save to DWF, which can also convert all DWG formats from AutoCAD Release 14 through AutoCAD 2008
* Autodesk Design Review - Autodesk's own freeware DWF viewer, which also includes some tools to e.g. measure distance in the DWF file
* QCAD - An open source/commercial dual-licensed CAD program, which can open and save DXF files (open source version only has binaries for linux)
* VariCAD - Commercial cross-platform program that can open autocad DWG files (has a cross-platform freeware viewer)

### CD/DVD burning software

* InfraRecorder Open source dvd / cd burning application similar in functionality to nero.
* ImgBurn Freeware cd / dvd burner which allows the user to burn cd /dvd image files to a disc.
* List of optical disc authoring software on Wikipedia
* DVD Flick - an open source Windows program to create video DVD's

### Data recovery

See also: Data recovery
* Ubuntu - a popular Linux distribution which comes with a live CD with a complete Ubuntu Linux operating system, that can e.g. read from and write to your NTFS or FAT harddisk partitions (some info and links on the sysadmin wiki, should be included here)
* Finnix - a Linux live CD with no GUI and all sorts of good command-line sysadmin utilities
* Knoppix - a Linux live CD with powerful GUI and command line utilities
* Slax - small sized Linux live CD with GUI capable to run from small sized (200 MB) CD, USB Flash Key, MP3 Player or other similar devices

### E-mail application

* Outlook - Microsoft's proprietary e-mail client (well integrated with exchange)
* Mozilla Thunderbird - Open source e-mail client with some exchange capabilities and with RSS functionality (some info and links on the sysadmin wiki, should be included here)
* Evolution - An open source e-mail application that can communicate with exchange (Also has a windows port)

### Firewall

* Untangle - very easy-to-setup firewall distribution

### Hotkey/macro utility

* AutoHotkey - Open source hotkey utility, with a programming interface
* HotkeyP - Open source hotkey utility, with a GUI interface
* Wizard's apprentice - Open source utility to create a GUI from a batch file
* AutoIt - Powerful Freeware hotkey utility, with a GUI interface
* Freeware rename program - Freeware Mass rename program that can rename alot of files with a few clicks

### Mindmapping

* Freemind - Open source mindmapping software

### Office solution

* OpenOffice.Org - Open source office solution
* Lotus Symphony - Free Office Suite by IBM
* Texmaker - Open source LaTeX editor
* LaTeXEditor - Freeware LaTeX editor
* ODF converter - Open source ODF converter for MS Office (has slightly annoying requirements and opens/saves documents through separate menu elements in the file menu)
* Sun ODF plugin - Sun's freeware ODF converter for MS Office (integrates nicely into MS Office)

### PDF creator/viewer

* PDFCreator - Open source printer driver for windows, which saves to PDF (version 0.9.5 with basic Vista support is out)
* Sumatra PDF - Open source PDF viewer for windows (smaller, faster and open source) - the 0.5 version can print PDFs that have disallowed printing
* Adobe Reader - The original, but sometimes slow, PDF viewer
* Foxit PDF Editor - PDF editor for Windows, free trial for 6 months
* PDF Editor - Open source PDF editor for Linux
* PDF Split and Merge (pdfsam) - Open source PDF split and merge tool

### Project management

* GanttProject - Open source project management that can import/export Microsoft Project files

### Remote control

* VNC - Open source cross-platform GUI remote control (some info and links on the sysadmin wiki, should be included here)
* SSH - Encrypted command-line remote control (windows version available, somewhere)
* PuTTY - Windows SSH Client (Several other tools available for SCP, SFTP, etc. available)
* Omnitty - A linux SSH multiplexer (give commands to several SSH sessions simultaneously)
* winexe (part of the wmi-client package on ubuntu) - Open source tool to remotely control windows computers through a linux terminal (same functionality as psexec)

### Security/encryption

* TrueCrypt - Open source cross-platform encryption program (can encrypt whole partitions and even boot-partitions)

### Synchronization

* BackupPC - Open source backup solution (the backup server pulls the files and stores them very efficiently)
* File synchronization on Wikipedia
* rsync - Open source synchronization software, which has been ported to Windows (some info and links on the sysadmin wiki)

### Virtual machine

* VirtualBox - An open source virtual machine (paid version available)
* Vmware - A freeware virtual machine (there are links and info on the sysadmin wiki)

### Web/database server

* XAMPP - A Linux distribution setup to use Linux Apache Mysql and PHP (LAMP) Perl, FTP and PHPmyAdmin
* MySQL - A popular database program.
* WAMP Server - Installs Apache, MySQL and PHP and Perl on a Windows Machine

### Misc

* GRAPHsql - Allows user to generate code for MySQL using a graphical interface.
* Scalable Cluster Environment - A set of tools to assist users in building clusters of servers.
* MyServer
* Curl loader - Load generator written in C, used for testing

## Troubleshooting
### BIOS

The BIOS has different POST codes, which can give indications to problems with a computer. Wikipedia has an article on the POST, including some of the codes it can give.

#### How to enter the BIOS

Different models of computers have different key combinations for entering the BIOS. They can be very handy to use if you need to guide a non-technical user over the phone.
The majority of computers use F2 or Del to enter the BIOS on boot-up but other keys are sometimes used, including alphanumeric keys.
Other options on boot-up include F12 to show the boot order and F8 (on Windows) to open the boot menu. Safe-mode can be booted from this menu.

##### BIOS Brands

Award Modular BIOS' use Del to enter setup.
IBM BIOS' ("300" series PCs) use F1 to enter setup. If you get a restricted menu, you'll have to switch off and on.

##### SCSI BIOS

Some servers come installed with two SCSI BIOS.
IBM eSeries (P3s) Ctrl-A for Adaptec, Ctrl-I for IBM.
Dell PERC Controllers Ctrl-M up to 4 series or Ctrl-C for 5 and later

##### Acer

* TravelMate 3220 - F2 for setup, F12 for boot order

##### Dell

Most Dell computers - F2 for setup, F12 for boot order

##### HP

Some HP computers use F1 to both enter boot order and BIOS setup.

###### Pavillion dv6824eo

* Esc to enable startup message
* F1 to enter system information
* F2 to startup check
* F9 to change boot device order
** Which also gives the option to enter the BIOS setup
* F10 to enter setup
* F11 to system recovery

###### ProLiant ML110

* Esc - Summary and boot progress
* F2 - Setup
* F4 - Boot menu
* F12 - Network boot

###### ProLiant DL380 G5

* F9 - Setup. See also iLO.

##### IBM

Older IBM computers (P2s and P3s of the "300" series) - F1 for setup
A few may require power Off and On, otherwise you'll get a minimal BIOS menu.
On some IBM computers, press the blue ThinkVantage button to get a menu where you can select the BIOS, which device to boot from, etc. You can also press F12 for the boot menu.

##### RM

RM notebooks use F2 to enter BIOS

##### Samsung

Samsung notebooks use F2 to enter BIOS

##### Stone Computers

Stone Computers notebooks and desktop machines use F2 to enter BIOS

##### VMWare

VMWare guests use F2 to enter setup, F12 for network boot and ESC for boot menu

### BSOD
#### 0x7b

See this guide from "the SBS team".