Git Product home page Git Product logo

observer's Introduction

this is <README>
============================================================================
Observer Service Tool (Jan. 2000 Thomas Forbriger IfG Stuttgart)
=====================

The observer service tool is used as a wrapper for hourly, daily, weekly, and
monthly cron-jobs. The observer service tool is able to execute cronjobs for
several different users on the system using their privileges only. The output
of these cron-jobs is summarized. You will receive one single email from the
observer service tool that provides a short summary of the executed tasks,
which quickly informs you about differences to the previous execution of the
task, normal operation or exceptions or errors during execution of individual
scripts. The full output of the cron-jobs is appended to this email and
additional log files may be created by the tasks in dedicated directories.

----------------------------------------------------------------------------

   observer.cfg

   observer.pl*
   observer.hourly.pl -> observer.pl*
   observer.daily.pl -> observer.pl*
   observer.weekly.pl -> observer.pl*
   observer.monthly.pl -> observer.pl*

   observer_mkdir.pl*

The observer-tool comes with four synonyms (which have to match the settings
in the config file - see below). The typical usage is to call
'observer.hourly.pl' from /etc/cron.hourly, 'observer.daily.pl' from
/etc/cron.daily and so on. The observer script should run under root
privileges as it has to su to user accounts. In the user accounts it looks for
observer scripts matching the given interval and executes them. It checks for
the scripts or programs to match the UID of the user account and to be not
writable by others. The observer tool collects reports from these scripts,
sorts them within one report and logs the report. It may also send the report
via e-mail to an admin.

The config file defines the user accounts to include in the action. It has to
be named $HOME/observer/observer.cfg or the name has to be provided in the
environment variable $OBSERVER_CONFIG.

Settings in observer.cfg:
-------------------------
$OBSERVER_CLIENT:
  This is a hash table that defines the user accounts to include in the action
  and defines the directories where to look for scripts or programs.

$OBSERVER_OKREPORT:
  This hash defines the callable intervals (hourly,...) and which report
  levels should be mailed.

$OBSERVER_NOTIFY:
  This string variable defines to e-mail addresses of user to send the report
  to.

$OBSERVER_LOGDIR:
  This string variable defines a log dir for the master logs.
 
Below the directory defined in $OBSERVER_CLIENT the tool expects a
subdirectory structure like this:

  ./scripts
  ./scripts/weekly
  ./scripts/monthly
  ./scripts/daily
  ./scripts/hourly
  ./log
  ./log/weekly
  ./log/monthly
  ./log/daily
  ./log/hourly

Where it expects to find executable scripts in ./scripts/hourly, etc. The
client service job scripts or programs have to be executable (file mode bit
set) and must not end with '.bak'.

The scripts and programs are called with the following environment variables
set:
  
  OBS_CLIENT            the service client (i.e. the user that owns the script)
  OBS_LOG_DIR           the proposed directory for user level log files
  OBS_SCRIPT_DIR        the directory where the script was found
  OBS_LOG               the full pathname of the proposed log file
  OBS_SCRIPT            the full pathname of the script

  OBS_KEY_STATUS        a string indicating a status level ('status:')
  OBS_KEY_MESSAGE       a string indicating a status message ('message:')

  OBS_KEY_OK            the ok level index ('O')
  OBS_KEY_NOTICE        the notice level index ('N')
  OBS_KEY_ALERT         the alert level index ('A')
  
  OBS_STATUS_OK         a full status level string ('status: O')
  OBS_STATUS_NOTICE     a full status level string ('status: N')
  OBS_STATUS_ALERT      a full status level string ('status: A')

The status level indices ('ONA') are used to define report level to send via
e-mail in $OBSERVER_OKREPORT.

The client service script or program has to return a success or status message
through stdout. It has to produce two lines in the following scheme:

  echo $OBS_STATUS_OK
  echo $OBS_KEY_MESSAGE this is an example message...

These values will be used to create a quick status index of all service jobs.
The idea of the three status levels is to give the admin an idea how to react:

  OK:       the service was executed successfull, no further action is needed
  NOTICE:   there happend something that is unusual, but is not dangerous;
            please have a closer look
  ALERT:    the service met an error condition, immediate action might be
            required!

In addition to the status level the client service may write more lines to
stdout or stderr. All these lines will be catched and appended to the
observer-tool log and report.

It is up to the client service tool to create additional logs and reports. The
preferred name for a report file is given in $OBS_LOG and will be unique to
one run of the observer-tool (i.e. it has a time stamp in the file name that
includes the hour at least).

Starting with version 1.6 the observer call /bin/bash as login shell for its
su-clients.

The observer_mkdir.pl tool
--------------------------

After setting up observer.cfg this tool will create all client directories
that are expected by observer.pl.

----- END OF README ----- 

observer's People

Contributors

pantje avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.