$Id: README 50 2014-09-03 12:24:39Z abalama $
App::MBUtiny v1.03 and later  
This document written in Windows-1251 charset
=============================================

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

App::MBUtiny -         ,     
   . App::MBUtiny        - mbu 
 mbutiny.


-----------

    -   - ()   /
    -     
    -            
    -       ,   FTP/HTTP 
    -       
    -    CPAN      make install


-----------

  ,      ,   
   "" App::MBUtiny:

    - gcc  
    - perl v5.10   (   v5.12)
    - libwww (p5-libwww / perl-libwww)
    - libnet
    - zlib

    ,      WEB  Apache 2.2
 .       CGI (perl) .


---------

   .  - ;  - .

       :

    # cpan install App::MBUtiny

 ( ActivePerl):

    # ppm install App-MBUtiny

        :

    -    CPAN      SourceForge:
    
      https://metacpan.org/pod/App::MBUtiny
      http://search.cpan.org/~abalama/
      https://sourceforge.net/projects/app-mbutiny/
    
    -   ,        
    
    -         :
    
      perl Makefile.PL
      make
      make test
      make install
    
        (),  
          .


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

     mbutiny (  mbutiny).  
         
  App::MBUtiny.

         .

     :

    # mbutiny config

        ,    
   -c DIRECTORY/mbutiny.conf:

    # mbutiny -c /my/config/files/mbutiny.conf config

  ""     /my/config/files


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

    .     
   .

         ,    
 .       : 

    extra/arc.conf
    extra/collector.conf
    extra/sendmail.conf
    hosts/host-foo.conf.sample
    collector.cgi.sample
    mbutiny.conf

     mbutiny.conf.      
       .  collector.cgi.sample
      (      ).  
       extra/collector.conf. 
 extra/arc.conf      ; extra/sendmail.conf
       .  hosts/host-foo.conf.sample
    ,    . 

 -   ,       .
        ().     
    ,     .

mbutiny.conf
~~~~~~~~~~~~

   ,  mbutiny.conf   .

    LogEnable   on
    LogEnable   off

       mbutiny.   - off

    LogLevel warning

   .     : debug, info, 
notice, warning, error, crit, alert, emerg, fatal, except.     debug

   mbutiny    mbutiny.log    
, : /var/log/mbutiny.log

    mbutiny   -l   mbutiny.log    
  - mbutiny_debug.log.         
 App::MBUtiny.

    BUday    3

BUday    .      

    BUweek   3

BUweek    .      
.      ,     .

    BUmonth  3

BUmonth    .      
.      ,      
 .

    SendReport      yes
    SendReport      no

 SendReport ,        
       ,   
 extra/sendmail.conf.   - no

    SendErrorReport yes
    SendErrorReport no

             
,         .
  - no

extra/sendmail.conf
~~~~~~~~~~~~~~~~~~~

    <SendMail>...</SendMail>     
  .      SMTP,   
 :

    TestMail    test@example.com

      test@example.com     
  -t

    ErrorMail   error@example.com

        error@example.com   
 SendErrorReport yes

    Sendmail   /usr/sbin/sendmail
    Flags      -t

 Sendmail   SMTP ,  .  
   -t,   Flags

    SMTP       192.168.0.1
    SMTPuser   user
    SMTPpass   password

      SMTP    . 
SMTPuser  SMTPpass .

    <Attach>...</Attach>
    
 (     )  ,     

extra/arc.conf
~~~~~~~~~~~~~~

   .   .   CTK.

        ,     
    .       :

     :

    FILE     --     
    FILENAME --    
    DIRSRC   --    
    DIRIN    -- = DIRSRC
    DIRDST   --     
    DIROUT   -- = DIRDST
    LIST     --    ,  

       :

    FILE     --       
    DIRSRC   --        
    DIRIN    -- = DIRSRC
    LIST     --    ,  

        tar
 
    <Arc tgz> #   . ,  ,    
        type       tar                       #  ,   
        ext        tgz                       #   
        create     tar -zcpf [FILE] [LIST]   #    
        extract    tar -zxpf [FILE] [DIRDST] #      
        list       tar -ztf [FILE]           #       
        nocompress tar -cpf [FILE]           #      
    </Arc>

extra/collector.conf
~~~~~~~~~~~~~~~~~~~~

       <Collector>...</Collector>

      .

 <Collector>...</Collector>       ( <DBI>...</DBI>) 
  DataDir. 

    DataDir   "/var/data/mbutiny"

        (HTTP ).   - 
    (DOCUMENT_ROOT)

hosts/host-*.conf
~~~~~~~~~~~~~~~~~

   host-*.conf    .   host-*.conf  
  <Host name>...</Host>.  name -   .    
  ,         ,  
 .       , 
    .

    Enable      yes
    Enable      no

   .     .   ,  
  ,   .    .   
,     <Host name>...</Host>  Enable ! , 
    .

    SendReport  no
    SendErrorReport yes

       .      
  <SendMail>...</SendMail> ,      ,  
 extra/sendmail.conf,  .

    ArcName     zip

  <Arc>...</Arc>  extra/arc.conf.      : tar, tgz,
gz, zip, bz2, rar.   ArcName   tar -  Tape ARchive (TAR)

    ArcMask [HOST]-[YEAR]-[MONTH]-[DAY].[EXT]

  . ArcMask   ,    ()   
 .      ,      
: [HOST]-[YEAR]-[MONTH]-[DAY].[EXT]

     :

    DEFAULT  --    [HOST]-[YEAR]-[MONTH]-[DAY].[EXT]
    HOST     --   
    YEAR     --   
    MONTH    --   
    DAY      --   
    EXT      --   
    TYPE     --  

     ,       
  ""  ,  .    
    - .     
     .        
: [HOST].[YEAR][MONTH][DAY].[EXT]
         , : 

    ArcMask [DEFAULT]

    BUday, BUweek  BUmonth     
 mbutiny.conf.      :

    BUday       3
    BUweek      3
    BUmonth     3

 ,     ,   mbutiny   
  .

    SHA1sum     yes
    MD5sum      yes

         SHA1  MD5. 
          , 
     .

    Trigger mkdir /tmp/test
    Trigger echo foo > /tmp/test/foo.txt

.  ,          
 (  ).     ,      
.           
    . 

    Trigger mysqldump -f -h mysql.host.com -u user --port=3306 --password=password \
            --add-drop-table --default-character-set=utf8 \
            --databases databasename > /tmp/test/databasename.sql

             
  .        .

    Object /tmp/test/foo.txt
    Object /tmp/test/databasename.sql



    Object /tmp/test

 Object ,         
. 

    <Exclude "exclude_sample">
         #     .     
         Object /usr/local/etc

         # .      .   
         Target /tmp/test_exclude_sample

         #            Target
         Exclude bar.txt
         Exclude baz.txt
    </Exclude>

   ,     .   
        Object    
   Target.         
  ,     Exclude.    
      .

 ,    Target      
   .    (.  )    
   Object,      .   ,  
:     /tmp/test,    /tmp/test 
 foo.txt   foo.  ,      /tmp/test/foo.txt 
        /tmp/test/foo.txt    /tmp/test.
      .

    <Collector>
        URI         https://user:password@collector.example.com/collector.cgi
        #User       user # Optional. See URI
        #Password   password # Optional. See URI
        #TimeOut    180
    </Collector>
    
   .         .
 URI -  (URI)   ().    HTTP   
   URI,  ,    . TimeOut - .   
180 . 

    <Local>
        FixUP       off
        Localdir    C:\\Temp\\mbutimy-local1
        Localdir    C:\\Temp\\mbutimy-local2
        #Comment    Local said blah-blah-blah for collector # Optional for collector
    </Local>

 <Local>...</Local>        .  
  ,     ,      
      (, , , 
  ..).  <Local>...</Local>   :

Localdir -   .        
( ).   Localdir   ,    
    . 

FixUP -       .    on  off

Comment -   .     .  
    .

    <FTP>
        FixUP       on
        FTPhost     ftp.example.com
        FTPdir      mbutiny/foo
        FTPuser     user
        FTPpassword password
        Comment     FTP said blah-blah-blah for collector # Optional for collector
    </FTP>

 <FTP>...</FTP>    FTP-. <FTP>    
    .         
FTP-.   - FTPhost, FTPdir, FTPuser  FTPpassword -  
   FTP-,    FixUP  Comment   
 <Local>...</Local>

    <HTTP>
        FixUP       on
        URI         https://user:password@collector.example.com/collector.cgi
        #User       user # Optional. See URI
        #Password   password # Optional. See URI
        Comment     HTTP said blah-blah-blah for collector # Optional for collector
        #TimeOut    180
    </HTTP>

 <HTTP>...</HTTP>    HTTP-.  <HTTP>   
.        HTTP-.     
,  <HTTP>...</HTTP>     "" ,  
   .        HTTP  
  . URI -    (  ).    HTTP 
    URI  ,    . FixUP -  
     .   FTP  Local  
 on  off.  ,        
  , ..            
. TimeOut - .   180 .       
,         . 

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

    ,    -    
mbutiny.       :

    # mbutiny -h

   mbutiny :

    # mbutiny [OPTIONS] [COMMANDS [ARGS]]

    :

    -D DATADIR

  ()   ,      , 
    -,      .
      .

    -c CONFFILE
    --config=CONFFILE

        CONFFILE.   
     mbutiny.conf.

    -v

        mbutiny.    
    -d.

    :

    test [HOSTs]

     .    ,  
   ,     .

    [backup [HOSTs]]

      .    ,  
   ,     . 
,   backup       mbutiny.

    restore [HOSTs] [DATE]

         
   ( ,    ).  DATE  ,  
YYYY.MM.DD  DD.MM.YYYY  .        ,  
      ,    .    
   ,       .    
    .

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

             
 .           - cron.

           :

    0 2 * * * /usr/bin/mbutiny >/dev/null 2>>/var/log/mbutiny-error.log

 ,          2  

   ,   ""   :

    0 2 * * * /usr/bin/mbutiny backup foo >/dev/null 2>>/var/log/mbutiny-error.log
    0 3 * * * /usr/bin/mbutiny backup bar >/dev/null 2>>/var/log/mbutiny-error.log
    0 4 * * * /usr/bin/mbutiny backup baz >/dev/null 2>>/var/log/mbutiny-error.log

          .

    ,     /var/log/mbutiny-error.log


---------

   App::MBUtiny.   CGI ,    
 collector.cgi.sample:

    #!/usr/bin/perl -w
    use strict;

    use WWW::MLite;
    my $mlite = new WWW::MLite(
        prefix  => 'collector',
        name    => 'Collector',
        module  => 'App::MBUtiny::Collector',
        config_file => '/path/to/mbutiny/extra/collector.conf',
        register => ['App::MBUtiny::Collector::Root'],
    );
    $mlite->show;

       WWW::MLite,    
  App::MBUtiny.     HTTP.

  CGI      MonM. MonM ,   
  App::MBUtiny,         .

  API.   -     XML.  
      ,  extra/collector.conf. 
      CGI . ,  :

    /etc/mbutiny/extra/collector.conf

   ():

    - [check]     

    - [upload]  .
                   ,   #ID   .
                   POST .  HTTP POST multipart  
                    .    
                :
                 - URL/URI (https://user:password@site.com/path/)
                 - user   = <user>,    security    URL
                 - password = <password>,    security    URL
                (- action = upload --  ) 
                 - host   =  
                 - file   =   
                 - data   =     
                 - sha1   = SHA1   ( )
                 - md5    = MD5   ( )
                 - . . .  = . . .
                 ! user  password        

    - [fixup]      .     
                     #ID.     
                ,   .    a 
                 #ID  () .    start/
                   POST ,    XML!
                   :
                 - ID
                 - Date stamp
                 - Agent host (  )
                 - Agent IP
                 - Agent section name
                 - Server host (  )
                 - Server IP (     nslookup    CBWI)
                 - Status of operation (1=OK/0=ERROR)
                 - Date start
                 - Date finish
                 - File name
                 - File size
                 - File MD5 sum
                 - File SHA1 sum
                 - Comment (     Comment)
                 - Message (   ,      
                   (error)     (message)     )
                    WEB  MonM

    - [list]     type=1 (   )   

    - [delete]   (    ).     
                  type=1   <HTTP>...</HTTP>   type=0  
               <Collector>...</Collector>    <HTTP>   FixUp on.
                     date_finish = NOW().  
                 .
               
    - [info]       (   ).     monm
    
    - [download]   (   ).     monm

  ,   monm:

    - [status]     ( )    .   
                 (  ) .   -  .
                        .

API
---

Coming soon...

__END__
