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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function RsyncExcludeFrom
 | 
			
		||||
{
 | 
			
		||||
        if [ ! -z $RSYNC_EXCLUDE_FROM ] && [ -e $RSYNC_EXCLUDE_FROM ]
 | 
			
		||||
        then
 | 
			
		||||
                RSYNC_EXCLUDE="$RSYNC_EXCLUDE --exclude-from=\"$RSYNC_EXCLUDE_FROM\""
 | 
			
		||||
        fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function WriteLockFiles
 | 
			
		||||
{
 | 
			
		||||
        echo $SCRIPT_PID > "$MASTER_LOCK"
 | 
			
		||||
| 
						 | 
				
			
			@ -909,7 +917,7 @@ function tree_list
 | 
			
		|||
		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\" &"
 | 
			
		||||
	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
 | 
			
		||||
	LogDebug "RSYNC_CMD: $rsync_cmd"
 | 
			
		||||
	## Redirect commands stderr here to get rsync stderr output in logfile
 | 
			
		||||
| 
						 | 
				
			
			@ -1558,7 +1566,9 @@ function Init
 | 
			
		|||
	fi
 | 
			
		||||
 | 
			
		||||
	## Add Rsync exclude patterns
 | 
			
		||||
	RsyncExcludePattern
 | 
			
		||||
    RsyncExcludePattern
 | 
			
		||||
    ## Add Rsync exclude from file
 | 
			
		||||
    RsyncExcludeFrom
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function Main
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,6 +25,9 @@ LOGFILE=""
 | 
			
		|||
## 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.
 | 
			
		||||
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.
 | 
			
		||||
PATH_SEPARATOR_CHAR=";"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue