Checking host status for clients on server
Some observations:


Regarding the "stratification". It's hard to give practical advice, this is something that comes from experience and personal taste. Some basics to start with: a) write classes/modules with low coupling to achieve real modularization, b) write fairly short methods than do only one thing. c) Keep model-view separations. d) Don't use global variables.
class Domain_check: that's against Ruby practices, a class or module names are named CamelCase: class DomainCheck.
Don't write an explicit return on the last line of a method/block, it's non idiomatic. 
Don't assign a variable on this last expression, why would be it different from the method name itself? 
Don't call to external commands (ls, grep, awk, ...), Ruby is more than able to perform those tasks, check the standard library.
About this: prefix =  DomainCheck.new.vhost_grab. You are already in the instance, just prefix = vhost_grab.
You are using a class just nominaly, you don't use any of its facilities. You can convert all these methods to classmethods if you store nothing in the instances.
Init empty + iterate with each + push is an anti-pattern in Ruby (and in any language with decent functional capabilities, for that matter). Use Enumerable#map. Also, you use each_index to iterate in a C fashion, use each (or better, map, select, inject, as required, read the Enumerable documentation from start to finish).
Having only a C background your code has a serious problem, it's very, very imperative. Functional programming allows far better abstraction and  clarity, check this wiki page I maintain.
If every method is prefixed with vhost_ there's no point in prefixing anything. Besides, if all the methods start with vhost_, the class should probably be called VirtualHostChecker instead (@Flambino).