KNOWN ISSUES ------------ - Backup size check does not honor rsync exclude patterns - Bandwidth parameter is ignored for SQL backups - Missing symlink support when run from MSYS environment CHANGELOG --------- README: FreeBSD execution needs mailer (not found), sudo missing, bash needed, sed missing (see if StripQuotes mandatory) ! XX Dec 2015: obackup v2.0 released - Added reverse backup, now backups can be local, pushed or pulled to or from a remote system - Better fallback for SendAlert even if disk full - Added an alert email sent on warnings while backup script is running - Way better logging of errors in _GetDirectoriesSizeX, _BackupDatabaseX, _CreateStorageDirectoriesX - Added bogus config file checks & environment checks - Full code refactoring to use local and remote code once - Fully merged codebase with osync - Added (much) more verbose debugging (and possibility to remove debug code to gain speed) - Replace child_pid by $? directly, add a better sub process killer in TrapQuit - Added some automatic checks in code, for _DEBUG mode (and _PARANOIA_DEBUG now) - Improved Logging - Updated obackup to be fully compliant with coding style - A long list of minor improvements v0-1.x - Jan 2013 - Oct 2015 - New function to kill child processes - Fixed no_maxtime not honored - Improved some logging, also added highlighting to stdout errors - Backported some fixes from Osync - Small improvements on install script - Copy ssh_filter.sh from osync project - Small improvements in obackup-batch.sh time management - Quick and dirty hack to get the full last run log in SendAlert email - Added detection of obackup.sh script in obackup-batch.sh to overcome mising path in crontab - Moved command line arguments after config file load for allowing command line overrides - Added a config file option equivalent to --dontgetsize - Added basic install script from osync project - Added obackup-batch.sh from osync project to rerun failed backups in row - Delta copy algorithm is now used even for local copies (usefull for network drives), this can be overriden in config file - Added --dontgetsize parameter to backup huge systems immediatly - Fixed multiple keep logging messages since sleep time between commands has been lowered under a second - Create local subdirectories if not exist before running rsync (rsync doesn't handle mkdir -p) - Backported some fixes from Osync - Lowered sleep time between commands - Lowered debug sleep times - Fixed a bug with exclude pattern globbing preventing multiple exludes - Lowered default compression level for email alerts (for low end systems) - Prevent exclude pattern globbing before the pattern reaches the rsync cmd - Fixed some typos with ported code from osync rendering stats and partial downloads unusable - Added delete on destination option for files that vanished from source - Fixed ignoring compression level in conf file - Added experimental partial downloads support for rsync so big files can be resumed on slow links - Fixed dry mode sql backup output - Prevented triggering TrapError if there are no child processes to terminate on TrapQuit - Improved mysql debug logs - Prevent creation of backup-id less log file when DEBUG is set - WARNING: Default behavior is now to copy the referrent files and directories from symlinks (this can reach files outside the backup root) - Recursive directory search now includes symlinks (find -L option. -type d cannot be replaced by -xtype d because of portability issues with BSD) - Dry mode does not create target directories anymore - Dry mode also tries mysqldumps now (check for error messages being logged) - Added experimental partial download support - Added Rsync exclude files suppport from osync - Fixed another issue with existing symlinks to directories on target on non recursive backups - Fixed remaining rsync -E option preventing obackup to work correctly on MacOS X - Fixed an issue with existing symlinks to directories on target - Prevent changed IFS to make ping commands fail - Added RotateCopies execution time (spinner support) - redirect stderr for mysqldump to catch problems - Moved msys specific code to Init(Local|Remote)OSSettings except in TrapQuit that needs to work at any moment - Added support for multithreaded gzip (if pigz is installed) - Merged back changes from osync codebase - Enhanced debugging - Added language agnostic system command output - Enhanced log sending - Better handling of OS specific commands - Improved WaitForTaskCompletion when DEBUG enabled or SILENT enabled - Enhanced OS detection - More correct error message on remote connection failure - Gzipped logs are now deleted once sent - Fixed some typos (thanks to Pavel Kiryukhin) - Improved OS detection and added prelimnary MacOS X support - Improved execution hook logs - Improved RunLocalCommand execution hook - 02 Nov. 2013: v1.84 RC3 - Updated documentation - Minor rewrites in recursive backup code - Added base directory files backup for recursive directories backup - Minor improvements on permission checks - Added local and remote OS detection - Fixed ping arguments for FreeBSD compatibility - Added MSYS (MinGW minimal system) bash compatibility under Windows - Added check for /var/log directory - Added check for shared memory directory - Added alternative way to kill child processes for other OSes and especially for MSYS (which is a very odd way) - Added Sendemail.exe support for windows Alerting - Replaced which commend by type -p, as it is more portable - Added support for ping.exe from windows - Forced usage of MSYS find instead of Windows' find.exe - Added an optionnal remote rsync executable path parameter - Made ListDatabases and ListDirectories Msys friendly - Fixed loop problems in RotateBackups and ListDatabases (depending on IFS environment) - Fixed an error in CheckSpaceRequirements not setting required space to zero if file / sql backup is disabled - Fixed an issue with CheckConnectivity3rdPartyHosts - Added option to stop execution on failed command execution - Improved forced quit command by killing all child processes - Before / After commands are now ignored on dryruns - Improved verbose output - Improved dryrun output - Improved remote connecivity detection - Fixed a typo in configuration file - 18 Aug. 2013: Now v1.84 RC2 - Added possibility to change default logfile - Simplified dryrun (removed dryrun function and merged it with main function) - Simplified Init function - Added --stat switch to rsync execution - Added bandwidth limit - Added --no-maxtime switch - Fixed LoadConfigFile function will not warn on wrong config file - More code cleanup - Added --verbose switch (will add databases list, rsync commands, and file backup list) - Improved task execution checks and more code cleanup - Fixed CleanUp function if DEBUG=yes, also function is now launched from TrapQuit - 16 Jul. 2013: version tagged as v1.84 RC1 - Code cleanup - Uploaded first documentation - Fixed an issue with RotateBackups - Updated obackup to log failed ssh command results - Updated ssh command filter to log failed commands - Updated ssh command filter to accept personalized commands - 23 Jun. 2013 v 1.84 RC1 approaching - Added ssh commands filter, updated documentation - Rewrote local space check function - Added ability to run another executable than rsync (see documentation on sudo execution) - Added some Rsync argument parameters (preserve ACL, Xattr, and stream compression) - Internal hook execution logic revised - Updated WaitForTaskCompletition function to handle skipping alerts - Updated command line argument --silent processing - Added remote before and after command execution hook - Added local before and after command execution hook - 14 Jun 2013 - Initial public release, fully functionnal