mirror of https://github.com/deajan/obackup.git
Added rsync exclude list support from osync
This commit is contained in:
parent
efefe2df19
commit
73c0191db6
11
CHANGELOG.md
11
CHANGELOG.md
|
@ -20,17 +20,24 @@ KNOWN ISSUES
|
||||||
- Dry mode creates dirs
|
- Dry mode creates dirs
|
||||||
- Dry mode does not try mysqldump
|
- Dry mode does not try mysqldump
|
||||||
|
|
||||||
|
UNDER WORK
|
||||||
|
----------
|
||||||
|
|
||||||
|
- Commands like cp should have their stderr redirected to log file
|
||||||
|
- Mysqldump must be checked for not telling success if a table is damaged
|
||||||
|
|
||||||
|
|
||||||
CHANGELOG
|
CHANGELOG
|
||||||
---------
|
---------
|
||||||
|
|
||||||
|
- Added Rsync exclude files suppport from osync
|
||||||
- Fixed another issue with existing symlinks to directories on target on non recursive backups
|
- 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 remaining rsync -E option preventing obackup to work correctly on MacOS X
|
||||||
- Fixed an issue with existing symlinks to directories on target
|
- Fixed an issue with existing symlinks to directories on target
|
||||||
- Prevent changed IFS to make ping commands fail
|
- Prevent changed IFS to make ping commands fail
|
||||||
- Added RotateCopies execution time (spinner support)
|
- Added RotateCopies execution time (spinner support)
|
||||||
- redirect stderr for mysqldump to catch problems
|
- redirect stderr for mysqldump to catch problems
|
||||||
!-and other commands (cp ?) + verify is not telling success if table damaged
|
- Moved msys specific code to Init(Local|Remote)OSSettings except in TrapQuit that needs to work at any moment
|
||||||
!- Moved msys specific code to Init(Local|Remote)OSSettings (halfway done, still need the WaitForTaskCompletion code to moove)
|
|
||||||
- Added support for multithreaded gzip (if pigz is installed)
|
- Added support for multithreaded gzip (if pigz is installed)
|
||||||
- Merged back changes from osync codebase
|
- Merged back changes from osync codebase
|
||||||
- Enhanced debugging
|
- Enhanced debugging
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
###### Remote (or local) backup script for files & databases
|
###### Remote (or local) backup script for files & databases
|
||||||
###### (L) 2013 by Ozy de Jong (www.netpower.fr)
|
###### (L) 2013 by Ozy de Jong (www.netpower.fr)
|
||||||
###### Config file rev 0903201401
|
###### Config file rev 2411201401
|
||||||
|
|
||||||
## ---------- GENERAL BACKUP OPTIONS
|
## ---------- GENERAL BACKUP OPTIONS
|
||||||
|
|
||||||
|
@ -82,9 +82,8 @@ DATABASES_LIST=""
|
||||||
SOFT_MAX_EXEC_TIME_DB_TASK=3600
|
SOFT_MAX_EXEC_TIME_DB_TASK=3600
|
||||||
HARD_MAX_EXEC_TIME_DB_TASK=7200
|
HARD_MAX_EXEC_TIME_DB_TASK=7200
|
||||||
|
|
||||||
## Preferred SQL dump compression. Can be set to xz, lzma or gzip.
|
## Preferred SQL dump compression. Compression methods can be xz, lzma, pigz or gzip (will fallback from xz to gzip depending if available)
|
||||||
## Generally, xz level 5 is a good compromise between cpu, memory hunger and compress ratio. Gzipped files are set to be rsyncable.
|
## Generally, level 5 is a good compromise between cpu, memory hunger and compress ratio. Gzipped files are set to be rsyncable.
|
||||||
COMPRESSION_PROGRAM=xz
|
|
||||||
COMPRESSION_LEVEL=3
|
COMPRESSION_LEVEL=3
|
||||||
|
|
||||||
## SQL Dump compression should be done on remote side but can also be done locally to lower remote system usage (will take more bandwidth, check for ssh compression)
|
## SQL Dump compression should be done on remote side but can also be done locally to lower remote system usage (will take more bandwidth, check for ssh compression)
|
||||||
|
@ -108,6 +107,12 @@ DIRECTORIES_RECURSE_EXCLUDE_LIST="/home/backupuser;/home/lost+found"
|
||||||
## Rsync exclude patterns, used by simple and division lists
|
## Rsync exclude patterns, used by simple and division lists
|
||||||
RSYNC_EXCLUDE_PATTERN="*/tmp;*/ftp/www/cache/cachefs;*/sessions"
|
RSYNC_EXCLUDE_PATTERN="*/tmp;*/ftp/www/cache/cachefs;*/sessions"
|
||||||
|
|
||||||
|
## File that contains the list of directories or files to exclude from sync on both sides. Leave this empty if you don't want to use an exclusion file.
|
||||||
|
## This file has to be in the same directory as the config file
|
||||||
|
## Paths are relative to sync dirs. One element per line.
|
||||||
|
RSYNC_EXCLUDE_FROM=""
|
||||||
|
#RSYNC_EXCLUDE_FROM="exclude.list"
|
||||||
|
|
||||||
## List separator char. You may set an alternative seperator char for your directories lists above.
|
## List separator char. You may set an alternative seperator char for your directories lists above.
|
||||||
PATH_SEPARATOR_CHAR=";"
|
PATH_SEPARATOR_CHAR=";"
|
||||||
|
|
||||||
|
|
46
obackup.sh
46
obackup.sh
|
@ -5,7 +5,7 @@
|
||||||
AUTHOR="(L) 2013-2014 by Orsiris \"Ozy\" de Jong"
|
AUTHOR="(L) 2013-2014 by Orsiris \"Ozy\" de Jong"
|
||||||
CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr"
|
CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr"
|
||||||
PROGRAM_VERSION=1.84preRC4
|
PROGRAM_VERSION=1.84preRC4
|
||||||
PROGRAM_BUILD=1911201402
|
PROGRAM_BUILD=2411201401
|
||||||
|
|
||||||
## type doesn't work on platforms other than linux (bash). If if doesn't work, always assume output is not a zero exitcode
|
## type doesn't work on platforms other than linux (bash). If if doesn't work, always assume output is not a zero exitcode
|
||||||
if ! type -p "$BASH" > /dev/null
|
if ! type -p "$BASH" > /dev/null
|
||||||
|
@ -417,12 +417,6 @@ function WaitForTaskCompletion
|
||||||
{
|
{
|
||||||
soft_alert=0
|
soft_alert=0
|
||||||
SECONDS_BEGIN=$SECONDS
|
SECONDS_BEGIN=$SECONDS
|
||||||
if [ "$LOCAL_OS" == "msys" ]
|
|
||||||
then
|
|
||||||
PROCESS_TEST_CMD="ps -a | awk '{\$1=\$1}\$1' | awk '{print \$1}' | grep $1"
|
|
||||||
else
|
|
||||||
PROCESS_TEST_CMD="ps -p$1"
|
|
||||||
fi
|
|
||||||
while eval $PROCESS_TEST_CMD > /dev/null
|
while eval $PROCESS_TEST_CMD > /dev/null
|
||||||
do
|
do
|
||||||
Spinner
|
Spinner
|
||||||
|
@ -973,6 +967,23 @@ function RsyncExcludePattern
|
||||||
IFS=$OLD_IFS
|
IFS=$OLD_IFS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function RsyncExcludeFrom
|
||||||
|
{
|
||||||
|
if [ ! $RSYNC_EXCLUDE_FROM == "" ]
|
||||||
|
then
|
||||||
|
## Check if the exclude list has a full path, and if not, add the config file path if there is one
|
||||||
|
if [ "$(basename $RSYNC_EXCLUDE_FROM)" == "$RSYNC_EXCLUDE_FROM" ]
|
||||||
|
then
|
||||||
|
RSYNC_EXCLUDE_FROM=$(dirname $ConfigFile)/$RSYNC_EXCLUDE_FROM
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e $RSYNC_EXCLUDE_FROM ]
|
||||||
|
then
|
||||||
|
RSYNC_EXCLUDE="$RSYNC_EXCLUDE --exclude-from=\"$RSYNC_EXCLUDE_FROM\""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function Rsync
|
function Rsync
|
||||||
{
|
{
|
||||||
i="$(StripQuotes $1)"
|
i="$(StripQuotes $1)"
|
||||||
|
@ -1283,12 +1294,19 @@ function Init
|
||||||
|
|
||||||
function InitLocalOSSettings
|
function InitLocalOSSettings
|
||||||
{
|
{
|
||||||
## If running Msys, find command of windows is used instead of msys one
|
## If running under Msys, some commands don't run the same way
|
||||||
|
## Using mingw version of find instead of windows one
|
||||||
|
## Getting running processes is quite different
|
||||||
|
## Ping command isn't the same
|
||||||
if [ "$LOCAL_OS" == "msys" ]
|
if [ "$LOCAL_OS" == "msys" ]
|
||||||
then
|
then
|
||||||
FIND_CMD=$(dirname $BASH)/find
|
FIND_CMD=$(dirname $BASH)/find
|
||||||
|
PROCESS_TEST_CMD="ps -a | awk '{\$1=\$1}\$1' | awk '{print \$1}' | grep $1"
|
||||||
|
PING_CMD="ping -n 2"
|
||||||
else
|
else
|
||||||
FIND_CMD=find
|
FIND_CMD=find
|
||||||
|
PROCESS_TEST_CMD="ps -p$1"
|
||||||
|
PING_CMD="ping -c 2 -i .2"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## Stat command has different syntax on Linux and FreeBSD/MacOSX
|
## Stat command has different syntax on Linux and FreeBSD/MacOSX
|
||||||
|
@ -1298,14 +1316,6 @@ function InitLocalOSSettings
|
||||||
else
|
else
|
||||||
STAT_CMD="stat --format %y"
|
STAT_CMD="stat --format %y"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## Ping command has different syntax on Msys and others
|
|
||||||
if [ "$LOCAL_OS" == "msys" ]
|
|
||||||
then
|
|
||||||
PING_CMD="ping -n 2"
|
|
||||||
else
|
|
||||||
PING_CMD="ping -c 2 -i .2"
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function InitRemoteOSSettings
|
function InitRemoteOSSettings
|
||||||
|
@ -1366,7 +1376,11 @@ function Main
|
||||||
RotateBackups $LOCAL_FILE_STORAGE
|
RotateBackups $LOCAL_FILE_STORAGE
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
## Add Rsync exclude patterns
|
||||||
RsyncExcludePattern
|
RsyncExcludePattern
|
||||||
|
## Add Rsync exclude from file
|
||||||
|
RsyncExcludeFrom
|
||||||
|
|
||||||
FilesBackup
|
FilesBackup
|
||||||
fi
|
fi
|
||||||
# Be a happy sysadmin (and drink a coffee ? Nahh... it's past midnight.)
|
# Be a happy sysadmin (and drink a coffee ? Nahh... it's past midnight.)
|
||||||
|
|
Loading…
Reference in New Issue