LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - General
User Name
Password
Linux - General This Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.

Notices


Reply
  Search this Thread
Old 09-23-2013, 06:40 PM   #1
slacker_
Member
 
Registered: Aug 2013
Distribution: Arch, Debian, Slackware
Posts: 333

Rep: Reputation: 3
Need some advice from Linux SysAdmins: where is the best place to start?


So I may be getting hired at this company which will offer me more experience with Linux networking and system administrating, as well as large scale virtualization and cloud storage.

I have linux experience with home desktop use but I've not done much in the way of servers or networking. I understand some of the basics, but I have been told I'll be working with services like Untangled, FOG, and FreeNAS. I've never heard of any of these until he mentioned them, and I have very limited linux networking/security experience. I have been reading through wikipedia and the sites for those utils, but it's not enough.

So, my question to you sysadmins:

Where would be the best place to start looking into all of this and getting acquainted enough to understand the conversations I'll be having with the master tech?
Thank you for your input
 
Old 09-23-2013, 08:09 PM   #2
sag47
Senior Member
 
Registered: Sep 2009
Location: Raleigh, NC
Distribution: Ubuntu, PopOS, Raspbian
Posts: 1,899
Blog Entries: 36

Rep: Reputation: 477Reputation: 477Reputation: 477Reputation: 477Reputation: 477
Before you begin, check out this man2pdf script. Convert the man pages of the utility you want to learn about to PDF and read it on the go.

First you should start with the Linux System Administrator's Guide. It's not all encompassing but it's a start. You should definitely learn a shell scripting language. My recommendation is Bash as it's on most *nix systems (see Bash Beginner's Guide and Advanced Bash Guide). You should print out (or print to PDF) the bash man page as it has a whole bunch of tips and tricks which are completely awesome and not covered in most guides. Reading the coreutils package manual will introduce you to many often used command line utilities.

Many systems you'll be working with will likely be headless (i.e. no graphical environment). That being said you should learn a CLI text editor. I recommend you learning two. The two I recommend is nano (which is more simple and less learning curve) and vim.

Once you've learned a little bit about the Linux system, shell scripting, and cli editing you should start learning a few scripting languages (Python, Ruby, Perl, Awk). Two I highly recommend is Python and Awk. When you're scripting you should make use of option parsing libraries for handling arguments. That includes using getopt for bash scripts. You'll find as you get more experience doing terminal one liners and one off scripts that there is no end all language. Some tools are better for some jobs.

You should familiarize yourself with the standard coreutils tool set. You should get to know network tools such as tcpdump, nmap, telnet, openssl s_client, openssl x509, netstat, and dig. You should learn about iptables firewall (the man page is a great resource) as it is used by RedHat (RHEL 5/6 use iptables and RHEL 7 will use firewalld which is a daemonized wrapper for iptables) and Ubuntu (ufw is a wrapper for iptables). Other useful utilities include vmstat, iostat, dstat (basically a combination of the previous three), ps, top, strace, lspci, dmesg, the list goes on. If you're able to master what I've mentioned then you're well on your way to being a good sysadmin. Take advantage of cron and even inode events for launching scripts. You should learn to be lazy. Preemptive strikes are always better than putting out fires as they ignite.

Bonus:
I have handy little sysadmin scripts and bits in my git repository. Check out the bin directory.

You'll likely encounter source version control at your new job as there are many different kinds (distributed vs centrally managed) and softwares for it (git, mercurial, subversion, CVS, etc.). I highly recommend learning git (distributed source code management) and finding yourself a good workflow (I recommend gitflow or you can mix and match with other types of workflow). Source control can be used for more than just source code. It's useful for checking in system configurations as well.

You should familiarize yourself with real time system monitoring (e.g. Icinga/Nagios, OpenNMS, Zabbix). My recommendation is to learn Icinga. It is better than Nagios in my opinion and knowledge translates directly into Nagios since it is a fork (and Nagios dominates the monitoring market). You might also want to familiarize yourself with system trending (cacti, PNP4Nagios, munin-monitoring). It compliments real time system monitoring well.

Learn more about the logging transports in Linux (syslog, rsyslog, syslog-ng, logstash, splunk). You might also want to check out how logging can be centralized using syslog-ng and syslog/rsyslog as clients. Go a step further by having logstash eat those centralized logs. Logstash is like splunk but without having to sell your family to afford it. Splunk may be better for large setups processing large amounts of log data which need support (such as my corporate environment).

Learn about continuous integration (e.g. Jenkins/Hudson is one example). It can be used for automated deployments through your infrastructure as well. You can even get fancy and set up git hooks which automatically build and/or deploy upon each commit.

Learn about centralized configuration management (salt, puppet, chef).

Familiarize yourself with different types of storage (know most common RAID levels). Be aware of isilon, netapp, and 3par.

Learn about backups, disaster recovery, snapshot vs copy, etc. If you know C then understanding these concepts will be a no brainer.

Last edited by sag47; 09-30-2013 at 01:09 PM.
 
13 members found this post helpful.
Old 09-23-2013, 08:14 PM   #3
netnix99
Member
 
Registered: Jun 2011
Distribution: redhat, CentOS, OpenBSD
Posts: 298

Rep: Reputation: 99
I don't know what your time frame is, but keep in mind that Rome wasn't built in a day. In a matter of weeks, you won't be able to keep up with someone who has been doing this for a living for decades.

My advice: Groundwork

Try to learn definitions and uses of the technologies. Even if you had been doing this for years, you would still need to be taught how THESE people handle their networks, users, and security. If you at least understand the definitions of the technologies they are talking about, it will help you piece together the bigger picture.

Brush up on your command line skills and shell scripting. Be able to perform small tasks with little direction. They shouldn't expect you to come in and run the place unless you way OVER-EMBELISHED your resume to some horrible degree... and even then, there would be a learning curve to running their systems THEIR way.

And finally, as with any job, listen and learn! The master tech has a wealth of information to teach you. Learn!! They will be much more willing to teach if you are willing and able to listen and learn.

Good Luck!!
 
2 members found this post helpful.
Old 09-23-2013, 10:12 PM   #4
slacker_
Member
 
Registered: Aug 2013
Distribution: Arch, Debian, Slackware
Posts: 333

Original Poster
Rep: Reputation: 3
Quote:
Originally Posted by sag47 View Post
Before you begin ... [insert wall of useful info here]
That is the most useful response I've ever gotten from a "where do I start" question. Thank you so much! I've got a lot of reading and learning ahead of me, but I'm looking forward to it. Thank you once more.

One quick question though, I don't know C but it's on my list of langs to learn. Do you know of a good source for learning C?

Quote:
Originally Posted by netnix99 View Post
I don't know what your time frame is, but keep in mind that Rome wasn't built in a day. In a matter of weeks, you won't be able to keep up with someone who has been doing this for a living for decades.

My advice: Groundwork

[Very useful and good advice here]

Good Luck!!
That's really helpful, thank you!

Thing is, I didn't necessarily embellish, however I did generalize just enough to seem like I know a lot. I mean, I do know a good bit, but I feel like I will always need to know more. I dunno, I can always explain/elaborate on my first meeting.
 
Old 09-24-2013, 08:02 AM   #5
sag47
Senior Member
 
Registered: Sep 2009
Location: Raleigh, NC
Distribution: Ubuntu, PopOS, Raspbian
Posts: 1,899
Blog Entries: 36

Rep: Reputation: 477Reputation: 477Reputation: 477Reputation: 477Reputation: 477
In my opinion the best resource for learning C is from the guys who invented the language. Kernighan and Ritchie wrote The C Programming Language and are also the inventors of C. You can find it in PDF format everywhere. A good book to compliment that is The Practice of Programming by Kernighan and Pike. It covers good coding practices in C which apply to every coding language. There are PDF copies of that floating around as well and it is available at most book stores.

Kernighan & Pike, The Practice of Programming, Addison-Wesley, 1999, ISBN 020161586X
 
Old 09-24-2013, 11:09 AM   #6
SAbhi
Member
 
Registered: Aug 2009
Location: Bangaluru, India
Distribution: CentOS 6.5, SuSE SLED/ SLES 10.2 SP2 /11.2, Fedora 11/16
Posts: 665

Rep: Reputation: Disabled
One cant learn linux by just reading .... i will suggest if you really want to learn install a distro like centos and while you read things or come across them try it on your system .. see what is the output ..check teh man page of the command you are using and then try different switches , this will give an idea what does what, how and why ? the most important thing to learn is to start doing it, dont really rely on books to guide you and make you something.. make your own way .. thats it ..


Enjoy
 
Old 09-24-2013, 01:27 PM   #7
slacker_
Member
 
Registered: Aug 2013
Distribution: Arch, Debian, Slackware
Posts: 333

Original Poster
Rep: Reputation: 3
Quote:
Originally Posted by SAbhi View Post
One cant learn linux by just reading .... i will suggest if you really want to learn install a distro like centos and while you read things or come across them try it on your system .. see what is the output ..check teh man page of the command you are using and then try different switches , this will give an idea what does what, how and why ? the most important thing to learn is to start doing it, dont really rely on books to guide you and make you something.. make your own way .. thats it ..


Enjoy

Thanks for your input. I run linux primarily, but never tried any enterprise OS. I think I'll give that a try today.

Quote:
Originally Posted by sag47 View Post
In my opinion the best resource for learning C is from the guys who invented the language. Kernighan and Ritchie wrote The C Programming Language and are also the inventors of C. You can find it in PDF format everywhere. A good book to compliment that is The Practice of Programming by Kernighan and Pike. It covers good coding practices in C which apply to every coding language. There are PDF copies of that floating around as well and it is available at most book stores.

Kernighan & Pike, The Practice of Programming, Addison-Wesley, 1999, ISBN 020161586X

Thank you very much for that. I'm going to dive into that over the coming weeks.
 
Old 03-13-2015, 07:49 AM   #8
sag47
Senior Member
 
Registered: Sep 2009
Location: Raleigh, NC
Distribution: Ubuntu, PopOS, Raspbian
Posts: 1,899
Blog Entries: 36

Rep: Reputation: 477Reputation: 477Reputation: 477Reputation: 477Reputation: 477
I've created an advanced git training video if you want to make use of it for furthering your git education.
 
1 members found this post helpful.
Old 03-13-2015, 04:08 PM   #9
slacker_
Member
 
Registered: Aug 2013
Distribution: Arch, Debian, Slackware
Posts: 333

Original Poster
Rep: Reputation: 3
Thanks! Looks helpful!
 
Old 03-18-2015, 12:08 PM   #10
onebuck
Moderator
 
Registered: Jan 2005
Location: Central Florida 20 minutes from Disney World
Distribution: SlackwareŽ
Posts: 13,925
Blog Entries: 44

Rep: Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159
Member response

Hi,

Maybe some of the following may be of help;
Quote:
Just a few links to aid you to gaining some understanding;



1 Linux Documentation Project
2 Rute Tutorial & Exposition
3 Linux Command Guide
4 Bash Beginners Guide
5 Bash Reference Manual
6 Advanced Bash-Scripting Guide
7 Linux Newbie Admin Guide
8 LinuxSelfHelp
9 Utimate Linux Newbie Guide
10 Linux Home Networking
11 Virtualization- Top 10

The above links and others can be found at 'Slackware-Links'. More than just SlackwareŽ links!Be sure to look at 'RUTE' tutorial link above. Plus the Tutorials section of SlackwareŽ-Links will be very useful.


Hands on will win out for gaining experience with Gnu/Linux. I use Slackware since it is UNIX-like and provides good ground work for anyone wanting to learn Admin.
Hope this helps.
Have fun & enjoy!


Last edited by onebuck; 03-18-2015 at 05:13 PM. Reason: typo & repair URLs
 
Old 03-19-2015, 06:40 PM   #11
slacker_
Member
 
Registered: Aug 2013
Distribution: Arch, Debian, Slackware
Posts: 333

Original Poster
Rep: Reputation: 3
Quote:
Originally Posted by onebuck View Post
Hi,

Maybe some of the following may be of help;
Thanks very much, this all looks great. One concern, you have suggested looking through rute, but it is from 15 years ago... how is such a thing still as valuable as something from say 1 or 2 years ago, what with the rapid progression of technological change and such?

Now that I'm looking closer, a lot of these things are 6+ years old... Will these really help me with passing, for example, the LPIC certs, or knowing what really goes into a modern linux system?

Last edited by slacker_; 03-19-2015 at 06:43 PM.
 
Old 03-19-2015, 09:17 PM   #12
onebuck
Moderator
 
Registered: Jan 2005
Location: Central Florida 20 minutes from Disney World
Distribution: SlackwareŽ
Posts: 13,925
Blog Entries: 44

Rep: Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159
Member response

Hi,
Quote:
Originally Posted by slacker_ View Post
Thanks very much, this all looks great. One concern, you have suggested looking through rute, but it is from 15 years ago... how is such a thing still as valuable as something from say 1 or 2 years ago, what with the rapid progression of technological change and such?

Now that I'm looking closer, a lot of these things are 6+ years old... Will these really help me with passing, for example, the LPIC certs, or knowing what really goes into a modern linux system?
RUTE is still a valuable resource even today. Basics are something everyone should learn. Some may be dated but still relative information that is applicable today. Try it!
 
Old 06-14-2015, 10:29 AM   #13
sag47
Senior Member
 
Registered: Sep 2009
Location: Raleigh, NC
Distribution: Ubuntu, PopOS, Raspbian
Posts: 1,899
Blog Entries: 36

Rep: Reputation: 477Reputation: 477Reputation: 477Reputation: 477Reputation: 477
It's been a couple years since this thread was initially opened and it seems fairly popular. It would be neat if you could give a progress report. What is really deceiving about my first post in this thread is it took me a couple years to learn it. It wasn't a quick epiphany.

So I ask this, slacker_, how did/does your job go? How much of my post was actually useful for you? What worked and what didn't? It would be really neat if you could give a 2 year touch point. Even if you didn't do any of it; it would still be useful to know. I could follow up with a new post for next steps to learn if you're interested in taking your skills to the next level because I've grown these past two years as well.

Last edited by sag47; 06-14-2015 at 10:30 AM.
 
Old 06-14-2015, 08:02 PM   #14
sundialsvcs
LQ Guru
 
Registered: Feb 2004
Location: SE Tennessee, USA
Distribution: Gentoo, LFS
Posts: 10,659
Blog Entries: 4

Rep: Reputation: 3941Reputation: 3941Reputation: 3941Reputation: 3941Reputation: 3941Reputation: 3941Reputation: 3941Reputation: 3941Reputation: 3941Reputation: 3941Reputation: 3941
Congratulations on your progress thus-far in the interview process, and we all hope for your success!

As for "where to go from here," you obviously should strive to "do your homework" about the various technologies that have been thus-far described to you, but, "don't bluff(!)" And, "don't feel that you actually have to." No one knows everything. Every new job/engagement is more-or-less "a sip from the firehose," and I guess that's part of the fun of it.

What you should, instead, be very, very careful to do ... is to be scrupulously honest: "Here's what I do know right now, and here's what I don't." "Here's where I am coming-from right now, therefore here's what I can sort-of think-I relate to, and here's where my mind is completely blank."

Then, express a genuine interest and willingness to learn.

If you get hired, express humility. Don't remotely-pretend that you know anything that you are not, in fact, absolutely certain of. "Err on the side of 'politely asking, and then carefully listening.'"

E-v-e-r-y-o-n-e that you may encounter ... that you may work with, and that you may work for ... "knows the rules of this game." (Knows them better than you do, at this point.) Therefore, "you are among friends." All of us started where you are. All of us understand, intimately, what it means to be there. (And, from time to time, you betcha, "we're there again, too!")

"Welcome to the crazy profession."
 
Old 08-21-2015, 12:24 AM   #15
slacker_
Member
 
Registered: Aug 2013
Distribution: Arch, Debian, Slackware
Posts: 333

Original Poster
Rep: Reputation: 3
Quote:
Originally Posted by sag47 View Post
It's been a couple years since this thread was initially opened and [...] it would be neat if you could give a progress report. So I ask this, slacker_, how did/does your job go?
Progress report for that job: total dud. The 'mentor' gave little to no support in the way of teaching or mentoring. It was much like being thrown in the deep end without a swim lesson. Told me to configure a couple security/firewall appliances using a platform I had at that point never heard of (Untangle, nice piece of software once I learned it), prepare a cost analysis of deploying them, and research 2 other security based distros for him (pfsense and security onion). All in the first 2 days. I was give zero time to study what Untangle was, or how to use it, and expected to know way more than I did. All in all it was a bad experience.

Quote:
Originally Posted by sag47 View Post
How much of my post was actually useful for you? What worked and what didn't? It would be really neat if you could give a 2 year touch point. Even if you didn't do any of it; it would still be useful to know. I could follow up with a new post for next steps to learn if you're interested in taking your skills to the next level because I've grown these past two years as well.
Your post has actually been incredibly useful. I have stuck with learning as often as I can, but I've wound up in many sticky situations along the way which derailed and often set back my learning: losing my job, my car, a family member, and being hit with a couple high bills (since reconciled), losing my home, moving across the country, all along these last 2 years. But I never stopped trying to learn. I've picked up bash and awk fairly well, still not great with them but I can manage. Beefed up my python abilities a bit as well. I haven't had much opportunity to practice with the continuous integration or the real time system monitory utilities you mentioned, but with my recent move across country I've been afforded more time for studying/training, as well as a great market for proper entry level I.T. jobs and internships to really get hands on with things. I'm rather surprised looking back at where I was when I made this post and seeing that I actually have made a good deal of progress in my learning, but I have no illusions of grandeur; I know I still have a very long way to go. I have set up a small home lab (now that I have the stability to do so) with a couple laptops, old desktop, and a switch, so I hope to really get some better experience with things that were before impossible to do on my own at home.

At this point I'm thinking I'm going to be focusing at first primarily on solidifying my basic scripting skills, brushing up on the coreutils tools and network tools you mentioned again, as well as dive into real time system monitoring. Unless you had some better advice or focus at this point?

Thanks again for all the advice sag. It's been really appreciated.
 
1 members found this post helpful.
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
It's THE BEST place to start with Linux! Ponchitto LinuxQuestions.org Member Intro 1 04-05-2012 07:55 AM
Linux Live CD for sysadmins psychobyte Linux - General 3 03-02-2005 02:41 PM
advice to place the /home partition stram Linux - General 2 01-11-2003 08:53 AM
good place to start messing with Linux redmeat Linux - General 2 12-18-2002 05:30 PM
I need information on a place to start coding C++ in Linux Manyguns Programming 1 06-06-2001 06:03 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - General

All times are GMT -5. The time now is 09:10 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration