====== rsync ====== * [[Filename Exclusions]] * [[rsyncd]] ** rsync and slashes ** Rsync will do things differently based on how you add a slash to the source. Let's say you have two directories: ''src'' and ''dest'', and that ''src'' has a file named ''document.txt'' in it. You have two options: Use rsync to copy the entire folder of src **with** its contents, or copy the contents **alone** without the folder. Here's how each would look: Copy the entire directory: rsync -r src dest ls dest/src/document.txt Copy the contents of the directory: rsync -r src/ dest ls dest/document.txt Use the second example if you want to copy all files, **including** dot files in the directory. If you want to ignore the dotfiles, then use an ''*'' to exclude those: touch src/.dotfile.txt rsync -r src/* dest **Copy files to keep them as close to the original as possible** rsync --archive --times foo:src/bar /data/tmp **Add some options for large transfers** Keep a log of transfers rsync --log-file=/tmp/rsync.log == Display progress == rsync --progress == Compress as copying files == rsync --compress == Exclude files == rsync --exclude 'foo-bar*' == Exclude files and delete them on the destination == rsync --exclude 'foo-bar*' --delete-excluded == Specify rsync path == When using SSH to connect to a remote server, it will drop the PATH to ''/bin:/usr/bin'' by default. If rsync is not in that path, set the path manually: rsync --rsync-path=/usr/local/bin/rsync