Essential Linux SysAdmin Skills Explained

<<>>
I am a Linux Operations Engineer and have some insights in this area. Let me share the tools you need to master.

When I say “tools,” outsiders might call them “skills,” but in our industry, we generally refer to them as tools — essential tools every ops engineer must master.

I’ll roughly list these areas below. Once you have these down, getting started will be basically problem-free.

For learning Linux systems, you can choose Redhat or CentOS. CentOS, in particular, is the most widely used in enterprises. Of course, there are other distros, but learners should just stick to these two since they are siblings with no real difference. When you have time, you can also explore SUSE — some companies like using it, for instance, my company…

The tools are as follows:

1. Linux System Fundamentals

This goes without saying — it’s the foundation of all foundations. If you don’t know this, don’t even bother. For reference books, check out “Niao Ge’s Linux Basics” (private kitchen). You need to master at least 60% of its content; no need to master everything, but you must know the basic commands at the very least.

2. Network Services

There are many types of services, and each company uses different ones. But you must master the fundamental services like FTP, DNS, SAMBA, and email. Just learn these roughly. LAMP and LNMP are must-haves and require proficiency. I don’t mean just knowing how to set them up, but being very familiar with the corresponding configurations, because the company’s most critical asset is definitely the WEB server. So be familiar with nginx and apache — especially nginx, you need to know it very well. Some companies also use tomcat, so it’s best to learn that too. Actually, don’t worry too much about network services. The company’s environment is usually already set up. Even if there’s a new server or you need to make changes, the company will have corresponding documentation for you to follow — they won’t let you mess around. But you must learn the relevant configurations thoroughly, and most setups are compiled from source, so familiarize yourself with those modules and their functions, especially PHP modules.

The above two points are just the basics and prerequisites — they can’t really be called tools. The following are the real tools you need to master.

3. Shell Scripting and Another Scripting Language

Shell is a must-have for ops personnel. Without it, you can’t even get hired. You need to be able to write system administration scripts; at the simplest, you should write a script to monitor CPU and memory usage ratios — this is the most basic. Don’t think writing number-guessing or calculation scripts counts for much; those are just for learning purposes. Writing system scripts is the most meaningful. Another scripting language is optional, generally one of the 3Ps: python, perl, and php. Forget about php unless you’re going into development. I personally recommend learning python, as it makes automated operations easier to achieve. perl is very powerful for text processing. Anyway, just learn one of these two.

4. sed and awk Tools

Must master. While mastering these two tools, you also need to master regular expressions. This part is painful — regex is the hardest expression to learn. But combined with sed and awk, it becomes very powerful and is extremely useful when processing text content and filtering WEB content. However, while learning shell, you’ll often use them together, so learning point 3 naturally leads to learning point 4.

5. Text Processing Commands

sort, tr, cut, paste, uniq, tee, etc. Must learn, and should be studied in conjunction with point 3.

6. Database

The first choice is mysql. Don’t ask me why not sqlserver or oracle — because in the Linux world, the most used is definitely mysql. CRUD (Create, Read, Update, Delete) operations are a must-learn, especially mastering queries. Other aspects might not be as necessary, because ops personnel use queries the most. Optimization and development statements won’t be your responsibility.

7. Firewall

You can’t skip this. The firewall is also a tough point — not too difficult, not too easy. The most important thing is to understand the rules. If you’ve studied CCNA, it might be easier, because iptables also has NAT tables, and the principle is the same. The FILTER table is used most frequently. Anyway, if you don’t learn this, you definitely won’t qualify.

8. Monitoring Tools

Extremely important. I personally suggest learning these three: cacti, nagios, zabbix. The most used in enterprises are probably nagios and zabbix. Just learn them all anyway. But nagios can be a bit difficult because it involves writing scripts for automated monitoring, and that part is quite hard.

9. Clustering and Hot Standby

This is very important and you definitely need to understand it. But once you’re at a company, they won’t let you touch it — because newbies are basically not allowed to. There are many clustering tools; the best to learn is LVS, which is a must. It’s also good to learn nginx clustering, reverse proxy, and hot standby. There are even more tools that can implement this. For instance, my company developed its own hot standby tools. mysql hot standby must also be learned, i.e., master-slave replication. Don’t tell me this is easy — it’s actually not easy at all. Understanding the entire process is no simple feat. Just following instructions step-by-step is meaningless.

10. Data Backup

You can’t skip this. There are many tools, but at least understand the principles of RAID, especially the most common enterprise setups like 1+0 or 0+1. You need to be able to set these up yourself in experiments. There are many backup tools like tar, dump, rsync, etc. — it’s best to learn more about them.

Alright, these 10 points are already enough to keep you busy and should get you started. Some techniques are relatively hard to learn — for example, there are still some very important technologies in apache and nginx, such as system tuning, service optimization, and program optimization. These are hard to learn before actually working on the job. So just learn these 10 points first. I estimate it will take at least more than 3 months to become proficient. The scripting part alone will be quite demanding. My suggestion is to master shell first, then learn another scripting language after you start working. That will work out better.

Leave a Comment

Your email address will not be published.