add option to exclude files or directories from a file and bug fix in tree_list
This commit is contained in:
parent
deb0058b6e
commit
5d374909d4
|
@ -0,0 +1,5 @@
|
||||||
|
.localized
|
||||||
|
.AppleDouble/
|
||||||
|
._*
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
14
osync.sh
14
osync.sh
|
@ -735,6 +735,14 @@ function RsyncExcludePattern
|
||||||
IFS=$OLD_IFS
|
IFS=$OLD_IFS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function RsyncExcludeFrom
|
||||||
|
{
|
||||||
|
if [ ! -z $RSYNC_EXCLUDE_FROM ] && [ -e $RSYNC_EXCLUDE_FROM ]
|
||||||
|
then
|
||||||
|
RSYNC_EXCLUDE="$RSYNC_EXCLUDE --exclude-from=\"$RSYNC_EXCLUDE_FROM\""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function WriteLockFiles
|
function WriteLockFiles
|
||||||
{
|
{
|
||||||
echo $SCRIPT_PID > "$MASTER_LOCK"
|
echo $SCRIPT_PID > "$MASTER_LOCK"
|
||||||
|
@ -909,7 +917,7 @@ function tree_list
|
||||||
ESC=$(EscapeSpaces "$1")
|
ESC=$(EscapeSpaces "$1")
|
||||||
rsync_cmd="$(type -p $RSYNC_EXECUTABLE) --rsync-path=\"$RSYNC_PATH\" -rlptgoDE8 $RSYNC_ARGS --exclude \"$OSYNC_DIR\" $RSYNC_EXCLUDE -e \"$RSYNC_SSH_CMD\" --list-only $REMOTE_USER@$REMOTE_HOST:\"$ESC/\" | grep \"^-\|^d\" | awk '{\$1=\$2=\$3=\$4=\"\" ;print}' | awk '{\$1=\$1 ;print}' | (grep -v \"^\.$\" || :) | sort > \"$RUN_DIR/osync_$2_$SCRIPT_PID\" &"
|
rsync_cmd="$(type -p $RSYNC_EXECUTABLE) --rsync-path=\"$RSYNC_PATH\" -rlptgoDE8 $RSYNC_ARGS --exclude \"$OSYNC_DIR\" $RSYNC_EXCLUDE -e \"$RSYNC_SSH_CMD\" --list-only $REMOTE_USER@$REMOTE_HOST:\"$ESC/\" | grep \"^-\|^d\" | awk '{\$1=\$2=\$3=\$4=\"\" ;print}' | awk '{\$1=\$1 ;print}' | (grep -v \"^\.$\" || :) | sort > \"$RUN_DIR/osync_$2_$SCRIPT_PID\" &"
|
||||||
else
|
else
|
||||||
rsync_cmd="$(type -p $RSYNC_EXECUTABLE) --rsync-path=\"$RSYNC_PATH\" -rlptgoDE8 $RSYNC_ARGS --exclude \"$OSYNC_DIR\" $RSNYC_EXCLUDE --list-only \"$1/\" | grep \"^-\|^d\" | awk '{\$1=\$2=\$3=\$4=\"\" ;print}' | awk '{\$1=\$1 ;print}' | (grep -v \"^\.$\" || :) | sort > \"$RUN_DIR/osync_$2_$SCRIPT_PID\" &"
|
rsync_cmd="$(type -p $RSYNC_EXECUTABLE) --rsync-path=\"$RSYNC_PATH\" -rlptgoDE8 $RSYNC_ARGS --exclude \"$OSYNC_DIR\" $RSYNC_EXCLUDE --list-only \"$1/\" | grep \"^-\|^d\" | awk '{\$1=\$2=\$3=\$4=\"\" ;print}' | awk '{\$1=\$1 ;print}' | (grep -v \"^\.$\" || :) | sort > \"$RUN_DIR/osync_$2_$SCRIPT_PID\" &"
|
||||||
fi
|
fi
|
||||||
LogDebug "RSYNC_CMD: $rsync_cmd"
|
LogDebug "RSYNC_CMD: $rsync_cmd"
|
||||||
## Redirect commands stderr here to get rsync stderr output in logfile
|
## Redirect commands stderr here to get rsync stderr output in logfile
|
||||||
|
@ -1558,7 +1566,9 @@ function Init
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## Add Rsync exclude patterns
|
## Add Rsync exclude patterns
|
||||||
RsyncExcludePattern
|
RsyncExcludePattern
|
||||||
|
## Add Rsync exclude from file
|
||||||
|
RsyncExcludeFrom
|
||||||
}
|
}
|
||||||
|
|
||||||
function Main
|
function Main
|
||||||
|
|
|
@ -25,6 +25,9 @@ LOGFILE=""
|
||||||
## List of directories to exclude from sync on both sides (rsync patterns, wildcards work).
|
## List of directories to exclude from sync on both sides (rsync patterns, wildcards work).
|
||||||
## Paths are relative to sync dirs. List elements are separated by a semicolon.
|
## Paths are relative to sync dirs. List elements are separated by a semicolon.
|
||||||
RSYNC_EXCLUDE_PATTERN="tmp;archives"
|
RSYNC_EXCLUDE_PATTERN="tmp;archives"
|
||||||
|
## File that containes the list of directories or files to exclude from sync on both sides.
|
||||||
|
## Paths are relative to sync dirs. One element per line.
|
||||||
|
RSYNC_EXCLUDE_FROM="files.exclude"
|
||||||
## List elements separator char. You may set an alternative seperator char for your directories lists above.
|
## List elements separator char. You may set an alternative seperator char for your directories lists above.
|
||||||
PATH_SEPARATOR_CHAR=";"
|
PATH_SEPARATOR_CHAR=";"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue