Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I have been unable to think of one for Linux system administrators. :-(


I've found 'list 10 two-letter linux commands and their use'

They don't actually have to think of 10, but their answer can show what they've actually had to do on a *nix system. Its also lets you prod them with questions like 'how might I get disk usage' or if they mention dd, ask them how they use it, what its good for etc.


I was surprised I could actually think of 10. Using both dc and bc seems like cheating, though ;)


To be honest, a reason I like it is that if they free-think and say 'what about sed, oh of course thats three characters', shows what they know. Also whether shell-built ins count too.


I'd grant bonus points for remembering the standard text editor. Or dismiss everyone who didn't!


I've seen a good one -- actually got asked it in a phone screen I did last year:

"How would you recursively delete all files with extension 'mp3' in a given directory tree?"

The (simplest) correct answer (I know) is

    find /path/to/wherever -name "*.mp3" -exec rm -fv {} \;
Maybe that's more of a pons asinorum, I suppose, but then isn't a pons asinorum precisely what a fizzbuzz question is meant to be?


Alternatively, you can just use

    find /path/to/wherever -name "*.mp3" -delete


The simplest would be

    find /path/to/wherever -name "*.mp3" -delete
This works at least in GNU find and FreeBSD.


At which point I'd argue that using -exec with an appropriate command is simpler, in the general case, than using one of find(1)'s many, many, many twiddly little command-line arguments. Granted, -exec spawns a process per file, but processor cycles are cheaper than brain cycles, &c., &c.


That seems like a recipe for holy-war between those who kind-of like xargs and those who think find | xargs is an abomination.


Can't we

    cd /path/to/wherever
    rm -rf *.mp3

?


You have stumbled squarely into the tripwire implicit in that question; "rm -rf *.mp3" ignores directories whose names don't end in ".mp3", and deletes those whose do.


It's supposed to be recursive. That would only delete the files in the current directory, not subdirectories as well.


-r is the 'recursive' flag.


Yes, but it doesn't do what you think it does. Feel free to try it for yourself if you don't believe me.


  find path -iname "*.mp3" -print0 | xargs -0 rm -fv


I'd give half marks for this, because it optimizes (meaninglessly) for processes, at the risk of ending up with "rm: Too many arguments" in a directory tree containing a sufficiently large number of MP3 files.


xargs knows the maximum command line length, and will invoke the program more than once if necessary. One of the points of xargs is to break up invocations of a program into chunks of arguments that fit in one maximum length command line.

  xargs reads items
  from  the  standard  input, delimited by blanks (which can be protected
  with double or single quotes or a backslash) or newlines, and  executes
  the  command (default is /bin/echo) one or more times with any initial-
  arguments followed by items read from standard input.

  --max-chars=max-chars
  -s max-chars
         Use at most max-chars characters per command line, including the
         command  and  initial-arguments and the terminating nulls at the
         ends of the argument strings.  The largest allowed value is sys‐
         tem-dependent,  and  is  calculated as the argument length limit
         for exec, less the size of your environment, less 2048 bytes  of
         headroom.   If this value is more than 128KiB, 128Kib is used as
         the default value; otherwise, the default value is the  maximum.
         1KiB is 1024 bytes.


Well, how about that! It could be that I formed my opinion regarding xargs before it got that smart, or it could be the old Red Hat boxes on which I mostly learned my craft didn't bother compiling in that capability. Either way, I'm glad to know about it now, and thank you very kindly for pointing it out to me!


breaking up the input into multiple executions is feature #1 for xargs and has been present since PWB UNIX in 1977


Then perhaps I'm thinking of "rm -f `find ...`". In any case, thanks for pointing it out; I learned something new today.


Well put


zero marks for not understanding how xargs works


And a resounding "no hire" for privileging snark over substance.


wouldn't take an offer from a place where sysadmins wouldn't read a man page to verify a candidate's answer


I've been a contract sysadmin for a long time. In a former "life" part of my work was doing phone screens and job interviews for contract sysadmin candidates.

If a candidate's answer to a nonspecific troubleshooting scenario didn't begin with (or contain very close to the beginning of the answer) "look at the logs" I'd bump them. Anybody whose problem-solving methodology doesn't including gathering pertinent data early in the process isn't somebody I want "solving" problems for me.


The best question I have is "Describe the power on of a RHEL x86 system in as much detail as possible from beginning to end, each step of what happens". It is open ended but can tell you a lot. You can get very fine grained, down to the hardware signals which take place before FFFF0000 is executed.


"You need shell access to a remote system using ssh. What file would email to the admin to grant you access using ssh?"

You'd be surprised of how many supposed Linux admins have no idea how to setup ssh logins, which says a lot about the depth of their experience.


I'd make this a requirement of developers too, some basic unix skills goes a long way as a developer.


1 - How to connect to a server using SSH without a password

2 - How would you check if $DATABASE is running and how would you start it if it wasn't. Bonus points: how do you make it start automatically at next reboot

3 - Show me the processes using the most CPU


Is 1. really that trivial? If I recall there's some really weird convention about usernames across both platforms (assuming *nix) having to be identical, in addition to fiddling around with the RSA keys.


Here's a couple:

Grep a current running process.

Grep x file and copy it.

You'd be surprised how many "Sys Admins" I've interviewed who can't do basic things.


Ask about disaster recovery, backups, penetration testing, what to do if a database/webserver breach occurs, or any form of generic networking/routing.


Not sysadmin specifically, but when I was working as a computer technician, questions we would ask to scope out the skills of people were along the lines of:

Q: "Something you have no experience with has broken and won't do a basic function, how will you go about fixing it?" A: Research, ask someone else etc.

Q: "X is missing their password for a system we have no admin rights on. How are you going to fix this?" A: Recovery Tools. Format device and set it up again. Use JS/Developer tools to get it in plain text from the browser.


Years ago I've been asked: There is a file named "-foo", how do you delete it?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: