A word, then a post: My Top Ten Essential Admin Tools for Linux
This post comes from a post that Linc had shared via Facebook on someone’s top ten essential admin tools for Linux. Linc and I as well do NOT totally agree with this writer. Some of the things he suggest like Dropbox aren’t even for running on servers. Sure you CAN run it on a server, but drop box is NOT a backup solution. Also he ignores MANY of the tools that are really essential. So, here is MY top ten essential admin tools for Linux:
Bash or one of it’s variants is usually the default shell that most Linux distribution. When you open a terminal, chances are it is a bash prompt you are presented with. Bash is imminently useful for automating tools. It is how you interact with all the other programs like cron for job scheduling and top for checking your systems performance. Any good sysadmin should NOT rely only on graphical tools. You need to learn bash. End of story.
2. ps, vmstat, iostat and top
I group these together as they are my top commands I use when I am trying to determine why a system is acting weird. I use ps (usually used like this: ps -ef ) for finding out what is running and killing a process that is out of control. I use vmstat for checking my memory and iostat for checking io and to get a nice over all picture of what the server is doing now, I use top. These all work in the command line and all will be helpful in troubleshooting the system you are working on. Learn how to use them and they can greatly help, but it’s not the ONLY way to look at that information. I will get to that later.
3. OpenSSH (Secure Shell)
When working remotely or even from my own desk at work, my most commonly executed command is ssh. Using ssh, I can securely administrate my servers at work as well as at home from almost anywhere in the world. When working remotely, I am usually also using a VPN to access our network, but I also use ssh as my only tool for getting a shell prompt on my server. Learn how to use it and it’s sister command scp (secure copy) and you can do a aweful lot of things from almost anywhere in the world.
Almost every distro has one. That is a package manager. This is usually how you update your system for security updates as well as installing other programs. My favorite is apt and the graphical tools around it like Synaptic since I use Ubuntu and other Debian based distros. When I am working on a server, it’s all apt but when I am working on my desktop, I will fire up synaptic at least once a day. Each distro is different so each has their own tool. If you don’t know how to use one of these, then turn in your geek badge.
Any kind of clean up you do more than once should be scripted out and scheduled. Cron helps you do this on Linux or any Unix for that matter. If you don’t do this, then one day your server will run out of disk space and it is usually the day you are on vacation. Just create the script and have cron handle this for you so you can go back to your life.
6. A Wiki
Do you document what you do? Well if you don’t you should. At work we use DocuWiki to write documents on how to do certain things and to document what server has how much ram and more. If you don’t have a wiki somewhere, then get one setup. Wiki’s I have used have been DocuWiki, pmWiki, Media Wiki and a nice portable one you can always carry with you that will work almost anywhere is TiddlyWiki.
7. Server Monitoring
In today’s world, uptime is everything. If your system isn’t up, you need to know about it as soon as possible. You should use some sort of server monitoring to help you out here. Tools you can use are Nagios and Zenoss. I would also include syslog monitoring and web traffic monitoring here as well. Most of these tools can send a e-mail or a text message to your phone. At work, we use a combination of tools. One of those also monitors a website from outside of our network. If you are relying only on scripts to do this for you, then you need to look at implementing something like this. The only bad thing here is a lot of these tools can be closed source. Nothing says you can’t also run Nagios as a backup.
8. Web Browser
A web browser? An Admin tool? Sure! How else do you make sure there’s no errors on that web page you are serving up? My uses at work are actually more serious then that. Since we are a IBM Power shop, we have many hardware management consoles. Access to these are via a web browser. I can create LPAR profiles and get into the console on these all through a browser. Needless to say, these servers are NOT connected to the internet. This is intranet only.
9. Backup Tools – tar, rsync and more
Backups are essential. You WILL loose data and having a second, third or fourth copy of my important server data has saved my bacon more than once. Tools you can use are tar(original name means Tape Archive) and rsync. By far, these aren’t the only commands. They are just the ones I list as that are installed on most distros by default. At work, we use Tivoli Storage Manager, but at home I don’t have that kind of money so I rsync data between multiple boxes. For more on this, check out this great blog post on Foogazi.com.
10. A Text Editor – vi or vim
Graphical admin tools are nice if you are a complete idiot or doing something new to you. They should not be utterly relied on. So you will need a text editor of some sort. Be it for editing scripts or checking configuration files, you should learn how to use one.
It’s ok to use gedit, but it’s far better and way more flexible if you just learn how to use a terminal based editor. My favorite is vim with vi a close second. They do have a learning curve, but it’s not that bad. If you think vi isn’t hard enough, then try emacs. In any case, vim works on every distro known and will work remotely or locally without too much fuss. I know you can do this with gedit, but you usually have to have a local Xserver to run gedit remotely. It’s just easier to fire up a terminal session, use ssh and do a vi <filename> to start working on it.
That’s my list and it is only my list. You may disagree. If you do, leave a comment and let me know what you like to use.