aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFiles
2017-03-15Minor changesperlSergey Poznyakoff1
* lib/App/Beam/Config.pm (check_mandatory): Remove (fixup): Rewrite to implement mandatory variable checking.
2017-03-13Implement the 'lint' subcommand.Sergey Poznyakoff3
2017-03-13Keep file names in the history.Sergey Poznyakoff5
Each backup method takes an additional argument - a history item object - and is supposed to store there the names of the files it created. This information will then be used when expiring backups and, eventually, when restoring from them. * lib/App/Beam/Backend/Tar.pm (backup): Take Item object as the 2nd parameter. Add names of the created file to it. * lib/App/Beam/Backup.pm (run): Pass the Item object to the backend method. * lib/App/Beam/History/Item.pm: New file. * lib/App/Beam/History/Record.pm (begin_entry): Rename to begin_item (entries): Rename to items. (entry_names): Rename to item_names. (finish_entry): Rename to finish_item. * lib/App/Beam/List.pm (run): List file names in verbose mode.
2017-03-10Implement the backup --redo optionSergey Poznyakoff4
* lib/App/Beam.pm (isscalar): Rename to isvariable to finish 90cfc43a. * lib/App/Beam/Backup.pm: New option: --redo. * lib/App/Beam/History.pm (drop): New method. * lib/App/Beam/History/Record.pm (reset): New method.
2017-03-10Ensure consistent exit code; standardize verbosity levelsSergey Poznyakoff6
2017-03-10Initial implementation of the restore subcommandSergey Poznyakoff11
* lib/App/Beam/History.pm: New file. * lib/App/Beam/History/Entry.pm: New file. * lib/App/Beam/History/Record.pm: New file. * lib/App/Beam.pm (lock,unlock) (compute_triplet,status_result) (set_result): Remove. Use App::Beam::History instead. (begin): Create a History object. (end): Save the History object. (check_items): New method. * lib/App/Beam/Backend.pm (status): Remove. (record, restore): New method. * lib/App/Beam/Restore.pm: New file. * beam: Implement restore subcommand. * lib/App/Beam/Backend/Tar.pm: Likewise. * MANIFEST: Update. * lib/App/Beam/Backup.pm: Update. * lib/App/Beam/List.pm: Update.
2017-03-09Implement informational options for each subcommandSergey Poznyakoff4
* Makefile.PL: Update. * beam (VERSION): New variavble. Analyze informational options prior to invoking the selected module's run method. * lib/App/Beam/Backup.pm: Add POD markup. * lib/App/Beam/List.pm: Likewise.
2017-03-08Minor fixesSergey Poznyakoff1
2017-03-07Store backup results for each backup item individuallySergey Poznyakoff6
* lib/App/Beam.pm (RESULT_*): New constants. (set_result): Take 3 arguments. * lib/App/Beam/Backend/Tar.pm (backup): Capture stderr. * lib/App/Beam/Backup.pm: Check number of command line arguments. * lib/App/Beam/Command.pm (set_logger): New method. * lib/App/Beam/List.pm: New command line option --verbose.
2017-03-07Catch exceptions in open3Sergey Poznyakoff2
2017-03-07Initial implementation of the list subcommandSergey Poznyakoff7
* MANIFEST: Update * lib/App/Beam/List.pm: New file. * beam (list): New subcommand * lib/App/Beam.pm: End with 1; * lib/App/Beam/Command.pm: Likewise. * lib/App/Beam/Config.pm: Likewise. * lib/App/Beam/Config/Locus.pm: Likewise.
2017-03-07Implement tar backupSergey Poznyakoff8
* lib/App/Beam/Config.pm (get): Return dereferenced array and hash refs. (__lint): Fix array collection. * lib/App/Beam.pm (%parameters): Mark unhandled keywords as arrays (logger): Read from fd, if passed as the first argument. (logcommand): New method. * lib/App/Beam/Backend.pm: New file. * lib/App/Beam/Backend/Tar.pm: New file. * lib/App/Beam/Backup.pm (run): Assume result OK, unless already set otherwise. * lib/App/Beam/Command.pm: New file. * MANIFEST: Update.
2017-03-04Improve config syntax verification.Sergey Poznyakoff5
Fix processing of the '*' entry in the syntax hashes. The entry '*' => '*' in the syntax hash declares that any settings and any subsections are also allowed.
2017-03-04Improve the lint methodSergey Poznyakoff1
* lib/App/Beam/Config.pm (parse_section): Return a tuple. Take locus as parameter. Set locations for all intermediary sections. (check_mandatory): Use the 'select' callback if it is defined. (readconfig): Take exactly two arguments. (lint): Rewrite.
2017-03-04Always keep locus with each statement; phase out the locations keyword.Sergey Poznyakoff10
2017-03-03Locus: correctly handle uninitialized locationsSergey Poznyakoff2
2017-03-03Implement lint() methodSergey Poznyakoff3
* lib/App/Beam/Config.pm: Keep count of errors in the error_count member. (getref): Take into account the {ci} setting. (flatten): Minor fix. (lint): New method. * t/TestConfig.pm (lint): Overload method. * t/conf06.t: New test case.
2017-03-02Small improvement of the config parser.Sergey Poznyakoff2
* lib/App/Beam/Config.pm: Keep ordinal numbers (relative positions in the source file) of statements. (flatten): Rewrite method. * t/TestConfig.pm: Update.
2017-03-02Document App::Beam::ConfigSergey Poznyakoff3
Rename the isscalar method to isvariable.
2017-03-02Rework configuration class to support optional "locations" mode.Sergey Poznyakoff13
When location => 1 is passed to the constructor, the created class will store source locations along with the configuration variables. * lib/App/Beam/Config.pm (error): Use the passed Locus object. (new): New kw parameter "locations" controls whether source locations are stored along with each configuration variable. (check_mandatory): Handle wildcard parameter declarations. (readconfig): Pass locations to all functions as Locus objects. Store them if required. (get): Rewrite to retrieve locations on request. (isset,issection,isscalar): Rewrite. (set): Handle the locations mode. (names_of): New method. * lib/App/Beam/Config/Locus.pm: New file. * MANIFEST: Add new files. * lib/App/Beam.pm (parameters): Declare "backend" and "item" sections. (new): Enable locations mode. (logger, logger_line): Redo to make use of the passed Locus object. (load_backends): New method. * t/TestConfig.pm: Rewrite. * t/conf01l.t: New test case. * t/conf02l.t: New test case. * t/conf03l.t: New test case. * t/conf04l.t: New test case. * t/conf05l.t: New test case. * t/locus.t: New test case.
2017-02-28Improve run-time configuration framework; provide boilerplate for the backup ↵Sergey Poznyakoff7
subcommand
2017-02-16Implement list configuration variablesSergey Poznyakoff3
2017-02-16Improve config parser. Add more tests.Sergey Poznyakoff9
* MANIFEST: Update. * lib/App/Beam/Config.pm: Rewrite 'error' as method. Check for missing mandatory statements. * t/TestConfig.pm: New file. * t/conf01.t: New file. * t/conf02.t: New file. * t/conf03.t: New file. * t/config.t: Remove. * t/f.conf: Remove.
2017-02-16Starting rewrite in PerlSergey Poznyakoff39
2014-09-01Clean up remote filesSergey Poznyakoff1
* cleaner.in: Detect if the files are remote, use beam_exec to remove them.
2014-09-01Bugfix.Sergey Poznyakoff1
* cleaner.in: Fix regexp for extracting week number from the filename.
2014-03-19Minor fixSergey Poznyakoff1
2014-03-19Version 1.5.90Sergey Poznyakoff3
2014-03-19Use uniform indentation, add missing copyleft headers, update years.Sergey Poznyakoff25
2014-03-18Allow for dumping each MySQL database into a separate file.Sergey Poznyakoff4
* lib/beam/common.in (load_config): Set beam_rsh and backup_local_archive_dir. (beam_exec): New function. * lib/beam/mysql.sh (dump_mysql_db) (restore_mysql_db): New functions. (mysql_backup,mysql_restore): Dump databases individually, depending on the value of <item>_alldb variable. * restore.in: Use beam_exec to run find. * doc/beam.conf.5in: Document changes.
2013-08-05Version 1.5release-1.5Sergey Poznyakoff2
2013-07-31Version 1.4.90Sergey Poznyakoff3
* NEWS: Version 1.4.90 * configure.ac: Likewise. * lib/beam/common.in (beam_lock): Bugfix.
2013-03-21Prevent reentrant invocations. Minor bugfix.Sergey Poznyakoff3
At startup a pid file is checked. If it exists, another beam process is assumed to be running and start up is aborted. Otherwise a new pid file is created. The existing pid is removed before exiting (by epilogue_hook). * backup.in (prologue_hook): Prepend beam_lock. * lib/beam/common.in (backup_pidfile): New global. (beam_lock,beam_unlock): New functions. * lib/beam/s3.sh (s3_getmpoint): Fix regexp to take into account s3backer invocation without --vhost.
2013-02-25Bugfix in cleanerSergey Poznyakoff1
* cleaner.in: do not use shell arithmetic expansions on week numbers, because weeks prior to 10 begin with 0 and therefore are processed as octal numbers. This causes grief for weeks 08 and 09.
2013-02-15Fix a minor bugSergey Poznyakoff1
* lib/beam/fs.sh (initdb): Print diagnostics before overwriting the variable it uses.
2013-01-16Fix threshold calculation in cleaner.inSergey Poznyakoff4
* cleaner.in: Fix 0ddbe02c. * NEWS: Version 1.4 * configure.ac: Update. * doc/beam-module.5in: Fix formatting.
2012-12-31Fix threshold calculation in cleaner.inSergey Poznyakoff1
* cleaner.in: Fixup lastweek if it becomes negative. This happens at the beginning of the year.
2012-12-04Bugfix.Sergey Poznyakoff1
* lib/beam/fs.sh (fs_restore): Fix the hardcoded file suffix.
2012-11-19Minor fix.Sergey Poznyakoff1
* cleaner.in: Limit descend to 1 directory level.
2012-10-30Create database dumps in temporary directory.Sergey Poznyakoff6
* backup.in: Set safe umask. * lib/beam/common.in (backup_tmp_dir): New global variable. * beam.conf: Add backup_tmp_dir variable. * doc/beam.conf.5in: Document new variables. * lib/beam/mysql.sh: Create temporary files in backup_tmp_dir * lib/beam/postgres.sh: Likewise.
2012-10-24Improve docs: escape dashes where necessary.Sergey Poznyakoff8
2012-07-15Update the docs.Sergey Poznyakoff7
2012-07-14Update README.Sergey Poznyakoff1
2012-07-14Update the docs.Sergey Poznyakoff9
* beam.conf: Set PATH * doc/.gitignore: Add new generated files. * doc/Makefile.am: Build and install beam-list.1 and beam-module.5. * doc/beam-backup.1in: Update. * doc/beam-list.1in: New file. * doc/beam-module.5in: New file. * doc/beam-restore.1in: Update. * doc/beam.1in: Update. * .gitignore: Update.
2012-07-13Add a LDAP backup module.Sergey Poznyakoff9
* lib/beam/ldap.sh: New file. * lib/beam/Makefile.am (libbackup_SCRIPTS,EXTRA_DIST): Add ldap.sh. * beam.conf: Update, mention new backup type. * doc/beam.conf.5in: Update. * lib/beam/common.in (load_config): If backup_archive_dir is not set, and S3 backup is configured, set backup_archive_dir to $backup_mp_s3. (beam_logrotate): Add missingok to the logrotate configuration. * lib/beam/fs.sh: List configuration keywords. * lib/beam/mysql.sh: Likewise. * lib/beam/postgres.sh: Likewise. * lib/beam/s3.sh: Likewise.
2012-07-04Minor improvement.Sergey Poznyakoff1
* lib/beam/fs.sh: Fall back to level 0 if the previous snapshot file does not exist. This allows to add new items in the middle of the week.
2012-07-04Implement list command.Sergey Poznyakoff6
* list.in: New file. * .gitignore: Add list.sh * Makefile.am: Build and install list.sh * lib/beam/fs.sh: Implement list method. * lib/beam/mysql.sh: Likewise. * lib/beam/postgres.sh: Likewise.
2012-07-03Use "logit" instead of "echo".Sergey Poznyakoff3
2012-06-27Minor changes.Sergey Poznyakoff3
* beam.conf (backup_logrotate_conf): Initialize variable. * cleaner.in: Include more detail in the initial verbose header. * lib/beam/common.in (beam_logrotate): Pass $verbose to logrotate.
2012-06-26Provide a default log rotate hook.Sergey Poznyakoff4
* Makefile.am (build.sed): Define LOCALSTATEDIR and DATAROOTDIR. * beam.conf (openlog_hook): Initialize to beam_logrotate. * doc/beam.conf.5in: Document openlog_hook and its default. * lib/beam/common.in (beam_logrotate): New function.

Return to:

Send suggestions and report system problems to the System administrator.