Linux/Unix administrator's programming language of choice

Greetings,
I finally got everything running to the point where i have 1-2 hours free time during work
So i was wondering which programming language i should learn with focus on linux server administration. (read below)
Some background: Most of my tasks atm include standartization and developing typical solutions for common business processes. I worked with MS AD enough to understand that it sucks (yes, honestly.. a time deviation of 1hour from the domain server preventing 70% of equipment from functioning) so my aim is to find (or develop) alternatives. 
My "programming" background to this day involves only small tweaks with html and bash scripts (switching to reserve internet connection, basic server status scripts, backup, cleaning of old files etc.)
Hardware currently in use: Arch with drbd, kvm for virtualization and redundancy. CentOS - mailserver with Apache,postfix,mysql etc. FreeBSD as gateway cluster with BIND, NTP and stuff, also backup servers. And way too much microsoft running on the VMs.
Choosing a programming language i wanted to keep in mind following tasks:
1. Improving server monitoring script (which currently is really just a server pinging bash script that prints something on a webpage with apache)
- needs some way to check services beyond pinging the servers, f.e. telnet the mailserver on pop3, checking whether shared folders are mounted, printers are visible, checking the time on the AD server (hate this one )
- checking whether the backup is working (some way of analizing the logs and sending "ok" would be enough)
2. automatization of starting and stopping VM's in case of failure
- currently i have to assign primary and secondary drbd, change the autostart script on all nodes according to who is the new primary for the VM and then start the VM manually - which is annoying, especially if i forget to change even one line in one script and the whole MS servers start to hang because of an IP conflict.
3. Something to get rid of Acronis Enterprise Suite for backing up
- it hangs almost every time that someone forgot to close his damn xls file after work.
Therefore i worked out some guidelines for the language:
- crossplatform (MS, Linux and BSD servers in use)
- replacement for bash, should be as easy to implement on any linux and able to work with bash commands (or replace them without the need for much hassle)
- easy to implement with other languages and the web and maybe some common API (like the python script in O'reilly that steals the coffee bean prices from a webpage)
- able to create simple filters for analizing and reformatting huge chunks of texts
PS: i know there may be ready solutions, but i prefer to learn things by doing them myself
I'm looking forward to people sharing their experience in similar tasks,
Rip

I've actually had a hard time finding something that does exactly what I want (linux admin automation, and a "overview" of the general system status). Munin will give you graphs which is "ok", Nagios looks like its from the 90's and has better support for "paying customers", etc...
I'm wanting to build a standardized admining system, so I can actually have time to work on other things. I think it should be KISS, and modular (to keep it lightweight, and to do anything "extra" that someone might want). Webmin comes close, but I don't think it has a CLI. I've tried Puppet and I have problems maintaining Arch and Ubuntu (server), and I want something to fix that.
I've actually started this too, (in Python 2), https://github.com/Afterburn/hal. Its by far not complete, but I'm trying to adhear to what I've stated. Here is a pic http://imgur.com/MZls5. As of now it just logs stuff to a postgres db, and will email you if something is wrong (you have to tell it when it should email you, ie if free space in boot is less than %10).
Sorry if I've kinda skipped around (tired) but at the least I want a solid (lightweight) alerting system (mainly through email, but as I said I want it modular so people can receive updates via RSS if they choose). I'll sub to this thread and explain further when I get a chance.

Similar Messages

  • Linux/ unix administrator quick book

    Looking for linux/ unix administrator quick book

    Hi DBA2008
    I can advice you the following books:
    http://www.amazon.com/Linux-Administration-Beginners-Steve-Shah/dp/0072131365
    http://www.amazon.com/Linux-System-Administration-Tom-Adelstein/dp/0596009526/ref=pd_sim_b_28
    http://www.amazon.com/Learning-UNIX-Operating-System-Fifth/dp/0596002610/ref=pd_bbs_sr_3?ie=UTF8&s=books&qid=1218537408&sr=1-3
    And a quite good book :
    http://www.amazon.com/Essential-System-Administration-Third-Frisch/dp/0596003439/ref=pd_sim_b_8
    Additionally you can prepare the certification Linux+ with the following book:
    http://www.amazon.com/Linux-Study-Guide-3rd-XKO-002/dp/078214389X/ref=pd_bbs_sr_2?ie=UTF8&s=books&qid=1218537517&sr=1-2
    Hopefully this helps you.
    forgotten that book:
    http://www.amazon.com/Linux-System-Administration-Black-Book/dp/1576104192
    Message was edited by:
    Hub

  • The choice of the programming language

    Hi everyone,
    The right programming language in the right place.
    What are according to you the criteria that can help you to decide which programming language you should use to program an application or a system? Why should you use for example Java in place of C++, C# or VB? or may be C++ in place of Java... what sould you take in consideration?
    Thanks,
    Yassin

    It would depend on the platform that your working on. I'm currently working in java because my client wants the system I'm working on (multiple programs that work together) to work on Linux, Windows and the web.
    When Working on THEOS, (http://www.theos-software.com/) I usually use Theos Multi-user basic. VB for Windows (or C++ depending on the project), and C++ for Linux.

  • Linux...programming language or operating system?

    Linux...programming language or operating system?

    whats a kernal?Either
    1) a grain of corn or
    2) the set of instructions that define the behavior of an
    operating system at its lowest level.
    Mark

  • Launching programs from adobe reader on linux/unix

    I am hoping someone has solved this problem before:
    We use pdf for our product manuals and have a large set of examples that we want to allow the user to open by clicking a button. In past releases (pre 8.0 et al) we have not had a problem opening things and we still don't on windows but now, whenever we click on our open buttons we get text of the file in a browser and can not seem to change this behavior.
    I have modified Nautilus and konqueror such that double clicking on our files open the application but this does not change the behavior.
    Prior to this we were using a script - open script results in launching our application on said example file.
    How can we recover this behavior for our users? it makes our example manuals all but useless on Linux/Unix.
    Thanks!
    Dan F.

    Hi,
    Can you please share the PDF file so we can investigate the issue? You can email it to gaurav at adobe dot com.
    Thanks,
    Gaurav

  • Which group of programming languages to master?

    Which group of programming languages should I master to tackle a diverse set of problems? I would like for this list to be small as to not learn too many languages while not having a good grasp on them. The purpose of this is so I can approach any problem and pick the right tool for the job.
    Right now I'm thinking about C and Fortran for computational problems requiring speed (fortran because I'm a science student), Python for quick scripting and when development time is the most crucial factor, and Haskell for a functional middle ground. I appreciate any feedback.
    Last edited by Daedalus1 (2011-11-17 08:35:08)

    Calmatory wrote:Languages are merely tools to get things done. It is much more important to be able to think in an abstract manner to solve problems without creating more of them. Programming is the easy part, program design is the hard part.
    Yes, I know that. I guess the question I should have asked is which categories of languages are appropriate to which problems? Then I could pick one of each category and learn them.
    Basu wrote:
    I mostly second with whatever austin.rbn says but with some additions:
    1. You should learn C because it will make you learn how the machine actually works. Do not conflate C with C++, they are pretty different languages.
    2. You should learn a UNIX-y scripting language -- one of Perl/Python/Ruby for quick prototyping, string mangling, web dev, etc.
    3. You should learn an enterprise-y object oriented programming language such as C++, C# or Java
    4. You should learn a strongly typed functional programming language to better understand the mathematical basis of computer science like ML, OCaml or Haskell
    5. You should learn a Lisp dialect such as Scheme or Common Lisp (I would recommend the Racket implementation of Scheme).
    Let me know if you have any questions.
    Although pling may disagree with some of the reasons, these seem like sensible categories. What are some of the advantages of learning a Lisp language, and what domain would it be advantageous over other languages?
    bsilbaugh wrote:
    You may also want to ask yourself if you will ever need to run your codes in a distributed computing environment; e.g. a Linux cluster. If yes, then there is a high probability that you'll need to learn MPI. I know that most MPI implementations provide Fortran, C, and C++ API's, and there are also some Python wrappers out there as well (e.g. mpi4py).
    I should also point out that most Fortran, C, and C++ compilers support OpenMP out of the box. This means that a code that was initially written in Fortran, C, or C++ can be modified (usually rather easily) to take advantage of multi-core processors.
    As you might be aware, GPGPU computing is becoming more popular within the scientific community. Most of the GPGPU languages are minor extensions of the C language (and in some cases just additional C libraries). So, I suppose if you start out developing in C, then learning one of the GPGPU languages would seem like a natural extension of what you already know.
    (As others have alluded, you may want to view all of this as a never ending evolutionary process. That is, don't worry about finding some panacea to all your future programming needs today. Focus on learning the principles, keep and open mind, and be ready to adapt to an ever changing environment. Whatever the answers you get today, 10 years from now the answers will likely be very different.)
    Yes, I will eventually need to work with distributed computer systems and maybe GPU programming such as CUDA. For this purpose, where speed is critical, I would need to have C mastered. However I'm very used to the OOP methodology of Java and C++ and haven't been able to wrap my head around doing things otherwise. So as pling mentioned, I need to be able to first do procedural algorithms well and I think I need to learn C from the ground up. What I know of C, I've learned through C++. What is an introductory book that you would recommend to do this?
    pling wrote:Do what a pro and would do and code in the highly productive scripting language until you a performance hit, then write C code for that limited area. Rather than learning lots of languages badly, learn the fundamentals of procedural programming well - get books like Code Complete, Pragmatic Programming, Programming Perls, etc and work through them.
    Are C and python sufficient for general purpose programming? Are there any cases where it is difficult in getting the resultant amalgamated program to run smoothly? (just a wild guess)
    Last edited by Daedalus1 (2011-11-23 07:35:01)

  • First programming language: Python?

    I'm interested in learning to code games, something like the abstract shooters Kenta Cho makes.I've dabbled in BASIC before when I was in junior high, but never really programmed anything before. Would Python be a good choice? I realize this isn't going to be an overnight thing, but I'd like something simple enough to learn but advanced enough I can go pretty far with it.

    cdwillis wrote:What IDE would you guys recommend?  I don't really understand how to use Eric so I've been using nano.
    I've been using Scite.  It has several nice features you can set in the config file.  A bonus (if you want to call it that) is that there is a version for Windows also, so if your using mulitple OS's, you can use the same editor on both systems.
    oh, and a tip if you ARE programming on BOTH enviroments (Linux and Windows)
    if you get a Error ": No such file or directory " when running programs on your Linux system, you most likely created them with your Windows system .
    When running a python program by chmod a+x and ./nameofprogram on my Linux system I was getting that error.
    Reason: Mixed OS programming enviroments.
    Cause: Different EOL characters between windows and linux systems
    Solution:
    Open program.py in vi ..........
    hit ESC to get to command line mode.......
    type :set fileformat=unix and hit return.......
    type :wq! and hit return, this saves changes......
    A very simple solution to a problem that is sort of hard to figure out. Upon first glance everything will LOOK fine, permissions set correctly, shebang line correct, etc etc...... those stupid EOL characters put in by Windows systems........... ugggggggghhhhhhhhhh , just one more reason I hate Windows I guess.
    Anyway, that's the lowtech way of fixing that annoying error   I guess that's ALSO a reason to learn VI 
    http://usalug.org/vi.html
    Last edited by crouse (2008-12-06 13:05:53)

  • Programming Language Inquiry

    Hello to all,
    I purchased a Macbook yesterday. Life long Windows user, but did purchase a iMac a few months ago.
    I have created number Windows application using Visual Basic. I would like to start to do the same using my MAC. Is there an equivalent program / language similar to VB (Object Oriented Programming).
    I have looked at Apple Script slightly, but not that much.
    Any assistance or direction is much appreciated.

    Check this out:
    http://www.realsoftware.com/users/visualbasic/
    It's comparible to VB and easily learned - I got it down pretty quickly. However, since mac isn't supporting any Object-Oriented coding anymore you won't be able to get VB directly. There are numerous "conversion" programs out there that claim to be able to change VB into a Linux or Unix based code Macs can understand but I have my doubts about them (never seen them used so I can't say for sure that they don't work - it just seems like a stretch to claim conversion between an Object Oriented language and a "pure" programming language like Linux).
    Your other option would be to try Bootcamp or Parallels and install Windows on your Mac. VB will run in it. I've designed many Access databases in my Parallels Windows XP "machine".

  • ORACLE_HOME of 11g on Linux/Unix

    Hi,
    is default ORACLE_HOME of 11g on Linux/Unix as follows :
    /softwares/app/Administrator/product/11.1.0/db_1
    Thanks and regards.

    user522961 wrote:
    Hi,
    is default ORACLE_HOME of 11g on Linux/Unix as follows :
    /softwares/app/Administrator/product/11.1.0/db_1
    Thanks and regards.ORACLE_HOME based on ORACLE_BASE - in your case you set ORACLE_BASE=softwares/app/Administrator/ and OUI selected ORACLE_HOME as /softwares/app/Administrator/product/11.1.0/db_1

  • What programming language should i learn first?

    Hi, i'm Francis, from Rome. As you can see, i have a MacBook White with Mac OS X 10.5.8.
    Yesterday i downloaded *Xcode with iPhone SDK (version 3.1)*. I want to create Mac and iPhone/iPod/iPad applications.
    I read that there are several programming languages: Java, Cocoa, Cocoa Touch, C, C++, Objective C, Objective C++, Carbon, Classic, BSD, etc...
    What should i begin with? +I think Cocoa, Cocoa Touch, C and Objective C, but i'm not sure!+
    Can you help me? Thanks!

    Java, C, C++, Objective-C are languages. Cocoa, Cocoa Touch, Carbon, and Classic are what are known as APIs - resources you can use in your programs but not languages in their own right. BSD is short for BSD UNIX, and it's an operating system (that's the foundation for OS X). HTML is a document format more than a language.
    What language(s) to learn depends on your objectives or needs. OS X comes with Python, Ruby, PERL, AppleScript, and PHP languages (and JavaScript in the web browser). Current versions also include Java. If you install the OS X development tools, it adds C, C++, and Objective-C along with the XCode development environment.
    Each of the languages has it's strengths and weaknesses. From a purely educational standpoint, C is a high-level language that will teach you about low-level programming. Java teaches very strong object-oriented programming.
    Objective-C would permit you to develop using the iOS toolkits for iPhone and iPad, and also application programming for OS X.
    PERL, Python, and Ruby are all simple to learn scripting languages and very powerful for all sorts of automation tasks, text processing, and CGI scripting.

  • Interconectivity betewn scripts/shells and programming languages

    The problem: I need the buttons from my interface (written in C, Java, perl or any other programming language) to run shell commands or scripts. Is there any posibility to do this? Or, can I make an interface in a shell (let's say bash) with buttons to run shell commands or scripts? And, if not, can I open a terminal to do all this (interface running shell commands)? Thank you very muck in advance!

    Hello,
    Of course you can! But it depends on the language you are going to use. For example, if you plan to use C, you can execute shell commands with the system function, included with stdlib (you can take a look just typing "man system" at your shell). I don�t know Java but I could ensure that it�s possible too. With Perl, you can do it, but now I don�t remember how (I did it long time ago). Take a look at a Perl manual. I think that the best approach is to select the programming language and then to find the correct way to execute the scripts. If you don�t have special needs, maybe Perl is a good choice because you can alter the code without compiling, so a debugging and an optimization of the program will be faster.
    Good luck!
    jmiturbe

  • How to execute Java.exe on MAC, LINUX, UNIX...

    okay, I know this is very stupid, but can anybody tell me how to run Java.exe on MAC, LINUX, UNIX?
    I know how to run it from windows, I have a batch file created in windows, will it work on MAC, LINUX and UNIX as well? (I'm not sure if on other OS, there is such a file type call *.bat)

    See what I mean about probably wanting a beginner's book on Unix and/or shell scripting?
    okay crackers, the only thing that I have to do is put
    in the name of my program into "your program here".Not necessarily. There's the ClassPath, program parameters, etc. What you need to put in the "your program here" depends upon your program. What I did was allow the script to be invoked with command-line parameters and you could (depending upon your program) put "-jar myjar.jar" in the indicated spot, if your JAR file was runnable.
    The rest no need to change. right?I don't know. What does your program need? Only you can answer that, not me. I just furnished an example.

  • Unable to locate existing  file from unix using java program

    Hi
    I have created a file in unix using java program, file.createNewFile();
    And when i try to search for the same file using file.exists() it is returning false. Paths are correct. Can anybody help me out.
    Thanks & Regards,
    Prasanth

    In Linux FC5 using JDK1.6, this code         File temp = new File(System.getProperty("user.home") + "/abcdefghijklmn");
            System.out.println(temp.createNewFile());prints 'true' and the file is created with length zero.

  • Windows or Linux/Unix

    We are having issues with Discoverer Portlets not wanting to refresh, sessions hanging etc, my IT manager wanted me to ask the Forum on what platform are you running appserver? Windows or Linux/Unix....We are ready to upgrade to 11G and are thinking about changing the platform we run the appserver on. Thanks so much for your input!!!

    Raoul,
    To migrate to Linux seems to me the obvious choice then, because:
    (1) Migrating to Linux is cheaper than migrating to Windows, since you will need
    the Microsoft Advanced Server ($$$)
    (2) Less migration headache with moving from UNIX (Solaris, I presume?) to Linux
    than to Windows, considering those UNIX system calls
    So you'll probably have less costs and less migration work to do when moving to
    Linux.
    Winfried Scheulderman
    "Raoul Illyés" <raoul.illyé[email protected]> wrote:
    >
    Hello.
    I have a customer that has a big tuxedo installation running 8.0 that
    have shown
    intresst to to do some research in the possibilities in going from a
    verry expencive
    unix installation to a "intel blade" Solution.
    As i can see it gives them two serious possibilites
    1. Convert (rebuild) their apps to a Windows based platform
    2. Convert (rebuild) their apps to a Linux based platform.
    The apps are in some extent using system calls, and built in PRO#C.
    I know theres a Solaris on Intel as well, but i think theres to mutch
    confusion
    on where Sun is heading right now so i have sorted that one out.
    What i would like to know is if there are annyone of you out there, that
    have
    experienced a conversion like this, and if, what youre experience was?
    pros &
    cons...
    Best regards
    /Raoul

  • Learning programming language

    Hello,
    Ok I know this is a bit classic, but I need some clarification. I want to learn how create an application, specifically for Mac. FYI, I'm basically starting from a scratch. I found in some discussion that the best place to start is from C programming language. But what about C++? I mean will there be a problem if I learn C++ instead of C?
    I need a real basic guide to understand the difference and will learning one leads to understanding of the other?
    Also, when will the Xcode tools provided with Mac install cd be useful? Is it only useable to create an app after I learn at least on language?

    I agree with vidg on Hillegass. If you want to learn Cocoa for OS/X, you want that book!
    Whether you need any preparation before diving into Cocoa doesn't really depend on what languages you've learned, but rather on how much aptitude and experience you have in programming. If you've never programmed a computer, you might want to get a book that teaches programming with C. That's different from a book that assumes you understand the basics and just want to learn a new language.
    To pick out such a book, I'd recommend a trip to a good bookstore. Spend a few hours browsing and find something that makes some sense to you on almost every page. Somewhere on the front or back cover it should say something like "Learn the fundamentals of programming using C". And maybe in smaller print it will say: "Part 1 covers data types, operators, assignments, conditional statements, loops and functions. Part 2 will show you how your data is stored in memory and will explain pointers".
    Also remember that people learn differently. Some people can pick up a skill by just studying a book and doing the projects alone. Others do better when they can discuss concepts and collaborate on projects with others. So if it suits you better, consider at least one introductory programming course at a community college. In my opinion, surfing the web, watching videos and trying to dialogue in forums is a sad excuse for a live class.
    Anyway, which ever path you choose, if you find you like programming but aren't quite ready for Hillegass, you soon will be. The key to all of this is whether programming is fun for you. If it's right for you, the language, the tools and the platform are secondary.
    As to your question about C++, stick to vanilla C until you know enough about programming to decide for yourself. C++ and Obj-C are two branches off C that support programming in an "Object Oriented" fashion. The choice between them is usually determined by the "Application Programming Interface" (API) you're aiming for. For example, Windows doesn't have an Obj-C API, so you might choose to follow the C++ path in that case (though MS now encourages adoption of its own C variant for those of its victims who are lucky enough to escape VB). OS/X supports several API's, and Xcode will work with any of them. However the preferred API for new apps, and the one that appears to have the brightest future is Cocoa. Cocoa requires Obj-C, so if you want to make Mac apps, I would recommend Obj-C over C++. In fact if you want to learn Cocoa, I'd urge you to stay away from C++. So don't pick out a programming book that boasts it will teach you C++ as well as C. The ++ doesn't mean you're getting more for your money, ok?
    Re your question about Xcode: Yes, you can use Xcode to make simple C programs and see your program's output in the Console window. If your C programming book doesn't cover working on a Mac, just remember to choose the Command Line Utility->Standard Tool template after selecting File->New Project from the Xcode menu bar, and be sure to select Run->Console to open your Console window. The template already has enough C code for a program that prints "Hello World!" when you click "Build and Go". So your very first program will compile and run with no errors. It doesn't get much better than that!
    Once you're ready for Cocoa programming, Hillegass includes step by step instructions on using Xcode with each project.
    Hope that helps!

Maybe you are looking for