Win a copy of Five Lines of Code this week in the OO, Patterns, UML and Refactoring forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
  • Campbell Ritchie
  • Bear Bibeault
  • Ron McLeod
  • Jeanne Boyarsky
  • Paul Clapham
  • Tim Cooke
  • Liutauras Vilda
  • Junilu Lacar
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • fred rosenberger
  • salvin francis
  • Piet Souris
  • Frits Walraven
  • Carey Brown

to be a good linux administrator?

Ranch Hand
Posts: 135
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi guys well i finally found a good path for me to settle in and that is to become a linux administrator. I am about done with my 4 year degree, and I do plan on testing for my linux + certification, however, what are the true essentials that a good Jr developer should know?
protocols, applications, management, snmp, backing up etc?

what tools technology

example, samba print server, samba file sharing server etc
author & internet detective
Posts: 40035
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
UNIX shell scripting

I recommend looking at job descriptions for your target role.
Saloon Keeper
Posts: 22248
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Your topic says "how to be a good administrator, but your question body is about being a good developer. Unless you're going the DevOps route - which may be a bit ambitious if you're still junior-level - the answers are different.

A developer needs basically how to log in and get around. Knowing how to write shell scripts is very useful, although I'll admit I managed to dodge the really complicated parts of that for several years. Knowing python and/or perl is also good. And, of course, it's essential to know how to use (and ideally, how to install) your build tools and editors. Also how to run whatever debuggers your chosen language employs. These days, knowing how to set up tests is considered important as well.

A sysadmin should start by knowing how to install and operate Linux itself. Installation is probably easier these days for Linux than it is for Windows, but you do need to know some basic things about disk layout and plugging into the network. You should know how to use yum and rpm for redhat-style distros and apt-get/synaptic/dpkg for Debian-style distros. You probably won't run across the secondary stuff like "emerge" for gentoo or manual package build/install.

A sysadmin should know how to manage disk space. That means fdisk (or one of its relatives, such as parted) and LVM. Also how to create and mount filesystems.

A sysadmin should know how to configure network interfaces (preferably both Redhat and Debian styles, since they're quite different).

A sysadmin should know where the log information is and how to read it. Which can be a challenge, since the old way of maintaining discrete logfiles is being pushed aside in the newer distros in favor of the journalctl database.

A sysadmin should know how init scripts work and how their replacement (systemd) operates and how to stop and start system processes (dæmons).

That more or less covers basic operation. Then there's infrastructure. Client and server configurations for:

File shares. Samba, NFS, and more recently things like glusterfs and ceph. Extended file systems.

Printing (Usually that means CUPS)

Backup and restore. For example, bacula

Installing, configuring and maintaining web servers, both primary (apache httpd) specialized (ngnix) and proxy (squid). Apache will usually be sufficient for starters, though.

Installing, configuring and maintaining other servers and clients, such as NTP (system time), DHCP and so forth.

System monitoring tools such as nagios and cacti, with bonus points for learning SNMP. Also, the low-level tools such as ps and top and the status files under /proc.

Full-time administrators currently are well-advised to know how to work with virtual machines and provisioning systems such as Ansible, chef and puppet.

I'm sure I could go on and on. Adverts for junior system admin positions tend to be long "laundry lists" and laundry lists should be viewed sceptically, since they're often drawn up by people who don't know what's really required, but they can point out possibilities.

Ranch Hand
Posts: 310
MS IE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Before moving to things like samba, apache, I would recommend to learn the most important Linux/Unix tools along with shell scripting. A lot of server work can be easily automated or simplified, if you know how.

Understanding of security concepts is also very important. You cannot even imagine how often I saw /var/www folder blasted with chmod -R 777, because somebody had no idea how to set correct permissions. If a server get cracked by your incorrect configuration, then you can get in serious troubles.

And lastly, understand the philosophy and work of the system. Learn how to configure and compile kernel, learn about run levels, init scripts, how everything works. This knowledge will give you solid fundamentals that you will need in the future.
Posts: 7638
Mac OS X VI Editor BSD Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It is worth to know at least one of popular integrated scripting languages: python, perl. I'd go with python, easier to pick up for novice.
    Bookmark Topic Watch Topic
  • New Topic