LinuxQuestions.org
Support LQ: Use code LQ3 and save $3 on Domain Registration
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: Debian, Slackware
Posts: 275

Rep: Reputation: 1
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: Philly, PA
Distribution: Kubuntu x64, RHEL, Fedora Core, FreeBSD, Windows x64
Posts: 1,431
Blog Entries: 33

Rep: Reputation: 358Reputation: 358Reputation: 358Reputation: 358
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.
 
6 members found this post helpful.
Old 09-23-2013, 08:14 PM   #3
netnix99
Member
 
Registered: Jun 2011
Distribution: redhat, CentOS, OpenBSD
Posts: 239

Rep: Reputation: 73
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!!
 
1 members found this post helpful.
Old 09-23-2013, 10:12 PM   #4
slacker_
Member
 
Registered: Aug 2013
Distribution: Debian, Slackware
Posts: 275

Original Poster
Rep: Reputation: 1
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: Philly, PA
Distribution: Kubuntu x64, RHEL, Fedora Core, FreeBSD, Windows x64
Posts: 1,431
Blog Entries: 33

Rep: Reputation: 358Reputation: 358Reputation: 358Reputation: 358
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: 516

Rep: Reputation: 58
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: Debian, Slackware
Posts: 275

Original Poster
Rep: Reputation: 1
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.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

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


All times are GMT -5. The time now is 10:52 PM.

Main Menu
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
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration