[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Cercasi Aiuto per sviluppo software



Ciao Lista,

Circa due anni fa (e forse anche un po' di più), da una discussione in
lista è partito un progetto per realizzare un software Open Source con
licenza GPL V3.

Questo progetto si è sviluppato in collaborazione tra me (Gollum1) e
Luca (Dea), per circa un anno ha avuto uno sviluppo per gran parte di
tipo teorico, con una base di programmazione in perl per prove e cose
del genere...

In seguito è cominciato lo sviluppo vero e proprio, in cui la parte di
codice è stata curata da me, mentre Luca mi ha fatto da supporto per
la definizione degli algoritmi e di risoluzione dei problemi logici e
logistici.

Purtroppo da diverso tempo a questa parte (mi vergogno a dirlo, ma è
quasi un anno), non sono più riuscito a scrivere che poche righe di
codice... un po' per pigrizia mentale, un po' per diverse
vicissitudini lavorative e familiari (ma la pigrizia credo che sia
stata la parte preponderante)...

In realtà un discreta parte di codice è già stato scritto, e credo che
se si riesce a mettere insieme un po' di teste, che insieme abbiano il
tempo di scrivere il codice che manca, si possa realizzare qualcosa in
breve tempo...

Tutto il codice fin qui prodotto è stato realizzato in perl, con un
uso non indifferente di comandi bash usati direttamente nel codice
perl.

Sono convinto che non sia una brutta idea, poiché abbiamo cercato di
usare il più possibile librerie standard, e comandi standard di una
installazione unix posix... questo ci permette una portabilità anche
verso altri sistemi *nix like

Purtroppo io non sono un esperto di programmazione in perl, quindi
confido che con il vostro aiuto il codice possa essere migliorato e
ripulito.

Ho scritto parecchie parole, ma non ho detto nulla di quello che è il
programma, forse il modo migliore per presentare il programma è la
stampa dell'help del programma stesso, in cui è riassunto praticamente
tutto quello che si vuole ottenere e che deve poter realizzare.


===============================================

    Description: Manages differential or incremental backup of large
file or device (like virtual machine storage).

                  NOT SUITABLE FOR A SMALL FILE OR DIRECTORY BACKUP.


   required parameters:
      --mode|-m      :  Main function.
                        <backup>    :  Make device or file backup.
                        <restore>   :  Make device or file restore.
                        <check>     :  Verify a single backup or a
complex tree, required a specific revision.
                        <collapse>  :  Collapse a backup tree into a
new full or differential backup.
                        <clean>     :  Performs cleaning of a previous
(not completed) operation.
      --project|-p   :  Project name.

   optional parameters:

      --help|-h|-?   :  Print this help and exit.
      --version|-v   :  Print program version and exit.
      --debug        :  Enable debug, more information in SYSLOG.
      --verbose|-V   :  Enable verbose mode, repeat this parameter and
increase verbosity level.
      --quiet        :  Enable quiet mode, disable stdout print and
verbose mode.
      --bwlimit      :  limit I/O bandwidth, KBytes per second.
      --cpulimit     :  Processors/cores number to use (percentage).
      --password     :  Enable AES cryptography mode, required a full
backup created with this mode.
      --override     :  Try to proceed if target free space is less
than source size.



   --mode = backup   - additional-parameters:

      --device|-d    :  (mandatory) - Device (or file) source.
      --type|-t      :  (mandatory) - Backup type.
                        <full>   :  Specify full backup type.
                        <diff>   :  Specify differential backup type.
                        <inc>    :  Specify incremental backup type.
      --size|-s      :  Block size (MByte), only for full backup mode
(auto set default block size, if not specified, related to device
size).
      --path         :  Backup location path.
      --cache        :  Temporary data path.

   --mode = restore  - additional-parameters:

      --device|-d    :  (mandatory) - Device (or file) target.
      --rev|-r       :  (mandatory) - Revision number to restore.
      --path         :  Backup source path.
      --altpath      :  Alternative backup source path, if data
missing from root path.
      --cache        :  Temporary data path.
      --noverify     :  Disable 'verify before restore' (caution).

   --mode = check    - additional-parameters:

      --type|-t      :  (mandatory) - Set check type.
                        <single>    :  Check a single backup revision
(only one level).
                        <complete>  :  Check a backup tree (from zero,
full revision, until specified level).
      --rev|-r       :  (mandatory) - Revision level (see <single> or
<complete> description).
      --path         :  Backup source path to verify.
      --altpath      :  Alternative backup source path to verify, if
data missing from root path.
      --cache        :  Temporary data path.

   --mode=collapse   - additional-parameters:

      --type|-t      :  (mandatory) - Set collapse type.
                        <full>   :  Collapse into a new full backup.
                        <diff>   :  Collapse into a new differential backup.
      --rev|-r       :  (mandatory) - Revision level.
      --path         :  Backup source path to collapse.
      --altpath      :  Alternative backup source path to collapse, if
data missing from root path.
      --cache        :  Temporary data path.
      --newproject   :  (mandatory if type = full) - New project name,
will be the new zero level.
      --newpath      :  New project path, if missing will be used default path.
      --delete       :  Remove source backup after a collapse (caution).
      --noverify     :  Disable 'verify before collapse' (caution).

         NOTE: Full type collapse from 0 to revision into a new zero level.
               Diff type collapse a differential-tree until revision
level into a new diff joined to original zero level.

   --mode=clean additional-parameters:

      No additional parameters.






         NOTE:  Specify a small block size reduce globaly the
differential/incremental backup size,
               but decrease block compression (useful for minimum
variation source).

               Specify a big block size increase (theoretically) block
compression, but increase globaly the
               differential/incremental backup size (useful for
largest variation source).

               Block size automaticaly sets to a value related to device size,
               this is a balanced choice for medium variation source.

               See manual for help.

===============================================

Come potete vedere dall'help si tratta di un software di backup di
supporti di memoria di grandi dimensioni, indipendentemente da quello
che questi supporti contengono (lo abbiamo pensato per gestire in modo
ottimizzato il backup dall'esterno di macchine virtuali)

questo è il sito di riferimento del progetto, anche lui ancora in fase
embrionale, spero che rivitalizzando il progetto, possa crescere anche
il sito:

 http://www.imagebackup.org/en/

entro breve penso di attivare un forum con bbphp, in modo che si possa
lavorare attraverso un supporto pratico e collaborativo...

se c'é chi è interessato a partecipare (come coder, ma anche come
revisore, beta tester e documentarista), mi farebbe un enorme
piacere...

e credo che anche Luca possa apprezzare questa apertura verso aiuti
esterni (ne avevameno parlato, senza però mai arrivare al dunque),
volevamo regalare una beta release funzionante, prima di coinvolgere
altre persone, ma sinceramente, da solo mi trovo in una situazione di
empasse...

contattatemi pure in privato, almeno fino a che non avrò implementato
bbphp sul sito.

Byez
--
Gollum1
Tesssssoro, dov'é il mio tessssoro...


Reply to: