Extracting information from Config files /text processing
Hello All,
This is my first post on this forums, which I consider one of the best of its kind. The reason for my post is that I want to export some information form Nagios configuration files to a DB. I know that there are other tools available to do this, like NDO, monarch, etc... But I want to do it my self as I have different requests and I will like to improve my scripting capabilities
This is an example from hosts.cfg file:
I will like to know if there is a way to use a for loop that reads the text inside the { }'s, to define the first column inside it as a variable (or array in case of contact_groups, which has many comma separated values) and second column as value. It will also have to discard comments (# and ; lines)
Any suggestion is welcome, I already did some scripts that do the job using grep, sed and awk; reading line by line, but I think that there are other easier approaches that might improve the script, like reading text blocks instead of lines....
Dear friends,
I'm a novice Unix user and I'm trying to learn the ropes. I have a big task I have to accomplish and I'm convinced Unix can get the job done, I just haven't figured out how. I recently posted on the topic of cutting text between unique text patterns and somebody helped me a great... (24 Replies)
Hi ,
a:) i have configuration file with pattren
<Range start no>,<Range end no>,<type of records to be extracted from the data file>,<name of the file to store output>
eg:
myfile.confg
9899000000,9899999999,DATA,b.dat
9899000000,9899999999,SMS,a.dat
b:) Stucture of my data file is... (3 Replies)
Hi,
I have to perform an iterative function on a set of 10 files. After the first round the output files are named differently than the input files.
examples
input file name = xxxx1.yyy
output file name = xxxx1_0001.yyy
I need to rename all of the output files to the original input... (5 Replies)
It would be highly appreciable if any one helps me in this. I am trying to get it done through Java but I love unix and believe it can be done within minutes with couple of lines.
The input log file is a text file contains multiple entries seperated by a blank line.
Each seperated entry... (7 Replies)
Hi All,
I have some HTML files and my requirement is to extract all the anchor text words from the HTML files along with their URLs and store the result in a separate text file separated by space. For example, <a href="/kid/stay_healthy/">Staying Healthy</a>
which has /kid/stay_healthy/ as... (3 Replies)
Hi all,
I have two .txt file i.e.
First text file:
2
4
1
4
Second text file
2 1.nii.gz
4 334.nii.gz
1 12.nii.gz
4 134.nii.gz
If entry in 1st column of 1st text file matches the 1st column of 2nd text file, then copy the file (name of which is the second column) associated with... (4 Replies)
Hi Everyone,
I'm really new to all this so I'm really hoping someone can help. I have a directory with ~1000 lists from which I want to extract lines from and write to new files. For simplicity lets say they are shopping lists and I want to write out the lines corresponding to apples to a new... (2 Replies)
i m unable to extract data from one text files to different text files..i am able to concat two text files in d same file
---------- Post updated at 03:21 PM ---------- Previous update was at 03:16 PM ----------
i want a c program for it (2 Replies)
Hello there,
I am trying to extract (string) information ( a list words) from 4 files and then put the results into 1 file. Currently I am doing this using grep -f list.txt file1 . and repeat the process for the other 3 files. The reasons i am doing that (a) I do know how to code (b) each file... (4 Replies)
Hello,
I extracted a list of files in a directory with the command ls . However this is not my computer, so the ls functionality has been revamped so that it gives the filesizes in front like this :
This is the output of ls command : I stored the output in a file filelist
1.1M... (5 Replies)
Discussion started by: ajayram
5 Replies
LEARN ABOUT DEBIAN
nagios::object
Nagios::Object(3pm) User Contributed Perl Documentation Nagios::Object(3pm)NAME
Nagios::Object - Creates perl objects to represent Nagios objects
DESCRIPTION
This module contains the code for creating perl objects to represent any of the Nagios objects. All of the perl classes are auto-generated
at compile-time, so it's pretty trivial to add new attributes or even entire objects. The following is a list of currently supported
classes:
Nagios::TimePeriod
Nagios::Command
Nagios::Contact
Nagios::ContactGroup
Nagios::Host
Nagios::Service
Nagios::HostGroup
Nagios::ServiceEscalation
Nagios::HostDependency
Nagios::HostEscalation
Nagios::HostGroupEscalation
Nagios::ServiceDependency
-- next two are for status.dat in Nagios 2.x
Nagios::Info
Nagios::Program
EXAMPLE
use Nagios::Object;
my $generic_host = Nagios::Host->new(
register => 0,
parents => undef,
check_command => $some_command,
max_check_attempts => 3,
checks_enabled => 1,
event_handler => $some_command,
event_handler_enabled => 0,
low_flap_threshold => 0,
high_flap_threshold => 0,
flap_detection_enabled => 0,
process_perf_data => 1,
retain_status_information => 1,
retain_nonstatus_information => 1,
notification_interval => $timeperiod,
notification_options => [qw(d u r)],
notifications_enabled => 1,
stalking_options => [qw(o d u)]
);
# this will automatically 'use' $generic_host
my $localhost = $generic_host->new(
host_name => "localhost",
alias => "Loopback",
address => "127.0.0.1"
);
my $hostname = $localhost->host_name();
printf "max check attempts for $hostname is %s.
",
$localhost->max_check_attempts;
$localhost->set_event_handler(
Nagios::Command->new(
command_name => "new_event_handler",
command_line => "/bin/true"
)
);
METHODS
new()
Create a new object of one of the types listed above.
Calling new() on an existing object will use the LHS object as the template for the object being created. This is mainly useful for
creating objects without involving Nagios::Object::Config (like in the test suite).
Nagios::Host->new( ... );
dump()
Output a Nagios define { } block from an object. This is still EXPERIMENTAL, but may eventually be robust enough to use for a
configuration GUI. Passing in a single true argument will tell it to flatten the object inheritance on dump.
print $object->dump();
print $object->dump(1); # flatten
name()
This method is common to all classes created by this module. It should always return the textual name for an object. It is used
internally by the Nagios::Object modules to allow polymorphism (which is what makes this module so compact). This is the only way to
retrieve the name of a template, since they are identified by their "name" field.
my $svc_desc = $service->name;
my $hostname = $host->name;
Which is just short for:
my $svc_desc = $service->service_description;
my $hostname = $service->host_name;
register()
Returns true/undef to indicate whether the calling object is registerable or not.
if ( $object->register ) { print $object->name, " is registerable." }
has_attribute()
Returns true/undef to indicate whether the calling object has the attribute specified as the only argument.
# check to see if $object has attribute "command_line"
die if ( !$object->has_attribute("command_line") );
list_attributes()
Returns a list of valid attributes for the calling object.
my @host_attributes = $host->list_attributes();
attribute_type()
Returns the type of data expected by the object's set_ method for the given attribute. For some fields like notification_options, it
may return "char_flag."
For "name" attributes, it will simply return whatever %setup_data contains.
This method needs some TLC ...
my $type = $host->attribute_type("notification_period");
attribute_is_list()
Returns true if the attribute is supposed to be a list (ARRAYREF).
if ( $object->attribute_is_list("members") ) {
$object->set_members( [$member] );
} else {
$object->set_members( $member );
}
AUTHOR
Al Tobey <tobeya@cpan.org>
Thank you to the fine people of #perl on freenode.net for helping me with some hairy code and silly optimizations.
WARNINGS
See AUTHOR.
perl v5.12.4 2011-10-22 Nagios::Object(3pm)