Re: rsync files from subfolders on source to root of a folder on destination

2012-04-24 Thread James Robertson
 I think hard-links are the easiest solution.

 mkdir hardlinks
 find Music -type f -print0 | xargs -0 cp -al -t hardlinks
 (You get a warning from cp about doubles, if any)

 Then you can rsync the 'hardlinks'-directory as usual.

 When you want to update you should just 'rm -rf hardlinks' then execute
 the find again. That way even deletions work as expected (Or just put it
 in a script).


 Bis denn

Thanks for the suggestions.  In the end I used this example and will
just write a shell script around it to update the hard links when I
add/removed music.

Really appreciate it.

Regards,

James
-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


rsync files from subfolders on source to root of a folder on destination

2012-04-23 Thread James Robertson
I wish to sync a bunch of flac files that reside in various subfolders
to the root of a folder on a destination.

An example of the directory structure on the source is:

source tree Music/
Music/
├── R
│   ├── Radiohead
│   │   └── OK Computer
│   │   ├── 01 - Radiohead - Airbag.flac
│   │   ├── 02 - Radiohead - Paranoid Android.flac
│   └── Red Hot Chilli Peppers
│   └── Greatest Hits
│   ├── 01 - Red Hot Chili Peppers - Under the Bridge.flac
│   ├── 02 - Red Hot Chili Peppers - Give It Away.flac

I am using this command which syncs fine but includes the directory
paths on the destination:

rsync -rltDzvh --delete -e ssh Music/ user@192.168.1.1:/Destination/
--include=*/ --include=*.flac --exclude=*

So on the destination the structure is:

destination tree /Destination/
/Destination/
├── R
│   ├── Radiohead
│   │   └── OK Computer
│   │   ├── 01 - Radiohead - Airbag.flac
│   │   ├── 02 - Radiohead - Paranoid Android.flac
│   └── Red Hot Chilli Peppers
│   └── Greatest Hits
│   ├── 01 - Red Hot Chili Peppers - Under the Bridge.flac
│   ├── 02 - Red Hot Chili Peppers - Give It Away.flac

I want to prune all directories so only the files are placed into the
root of /Destination/ e.g.

destination tree /Destination/
/Destination/
├── 01 - Radiohead - Airbag.flac
├── 02 - Radiohead - Paranoid Android.flac
├── 01 - Red Hot Chili Peppers - Under the Bridge.flac
├── 02 - Red Hot Chili Peppers - Give It Away.flac

All the files have different names so that's ok and I have reviewed
the various options in rsync such as --no-relative but have been
unable to get it working as desired.

I also came up with:

find ./Music/ -name *.flac -exec rsync -ltDzvh {} -e ssh
user@192.168.1.1:/Destination/ \;

But this means using ssh keys and is probably inefficient and if I
want to use the --delete it would likely break everything.

So how would I achieve this whilst still being able to use --delete or
--delete-excluded for times when I add, remove or rename items on my
Music library on the source and have those changes sync to the
destination?
-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html

Re: --files-from= and --delete corrent options

2008-09-23 Thread James Robertson



Try this instead:

rsync [OPTIONS] --include-from=/tmp/BACKUPFILE --exclude='*'
/var/data/shares/vmbackups/ /mnt/usb_backup/SFSYDVS01/daily.0/VM/

This way, rsync will scan the destination directory for deletions (since
you have -a without --files-from, which implies -r) and will delete the
old files because they are excluded with --delete-excluded.

Matt

  

Thanks Matt,

I tried this but it doesn't seem to work for me as you describe.  I just 
created a test setup.  The commands I'm running are as follows:


[EMAIL PROTECTED]:~# rsync --version
rsync  version 2.6.9  protocol version 29
[EMAIL PROTECTED]:~# ls /tmp/source/
Thursday2008-09-11.bkf  Tuesday2008-09-09.bkf  Wednesday2008-09-10.bkf
[EMAIL PROTECTED]:~# ls -t1 /tmp/source | head -n 1  /tmp/BACKUPFILE
[EMAIL PROTECTED]:~# cat /tmp/BACKUPFILE
Thursday2008-09-11.bkf
[EMAIL PROTECTED]:~# rsync -ah --delete --numeric-ids --stats 
--delete-excluded -include-from=/tmp/BACKUPFILE --exclude='*' 
/tmp/source/ /tmp/destination/

.d..t.. ./

Number of files: 1
Number of files transferred: 0
Total file size: 0 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 20
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 42
Total bytes received: 26

sent 42 bytes  received 26 bytes  136.00 bytes/sec
total size is 0  speedup is 0.00
[EMAIL PROTECTED]:~# ls /tmp/destination/
[EMAIL PROTECTED]:~#

--
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


Re: --files-from= and --delete corrent options

2008-09-23 Thread James Robertson

Matt McCutchen wrote:

On Wed, 2008-09-24 at 13:00 +1000, James Robertson wrote:
  
I tried this but it doesn't seem to work for me as you describe.  I just 
created a test setup.  The commands I'm running are as follows:


[EMAIL PROTECTED]:~# rsync --version
rsync  version 2.6.9  protocol version 29
[EMAIL PROTECTED]:~# ls /tmp/source/
Thursday2008-09-11.bkf  Tuesday2008-09-09.bkf  Wednesday2008-09-10.bkf
[EMAIL PROTECTED]:~# ls -t1 /tmp/source | head -n 1  /tmp/BACKUPFILE
[EMAIL PROTECTED]:~# cat /tmp/BACKUPFILE
Thursday2008-09-11.bkf
[EMAIL PROTECTED]:~# rsync -ah --delete --numeric-ids --stats 
--delete-excluded -include-from=/tmp/BACKUPFILE --exclude='*' 
/tmp/source/ /tmp/destination/

.d..t.. ./

Number of files: 1
Number of files transferred: 0
Total file size: 0 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 20
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 42
Total bytes received: 26

sent 42 bytes  received 26 bytes  136.00 bytes/sec
total size is 0  speedup is 0.00
[EMAIL PROTECTED]:~# ls /tmp/destination/
[EMAIL PROTECTED]:~#



The -include-from=/tmp/BACKUPFILE is short a dash, causing it to be
parsed as -i -n -c -l -u -d --rsh=-from=/tmp/BACKUPFILE .  Change it to
--include-from=/tmp/BACKUPFILE .

Matt

  

If /tmp/BACKUPFILE contained a directory e.g.

[EMAIL PROTECTED]:~# cat /tmp/BACKUPFILE
3/

How would I get it to copy everything under and including 
/var/data/shares/vmbackups/3/? and delete everything else on the 
destination?  The guys running the backup to /var/data/shares/vmbackups/ 
are considering copying the files direct rather than sticking it into a 
*.bkf and have it create folders like 1/, 2/, 3/ with files and folders 
under that.


I came up with running this:

[EMAIL PROTECTED]:~# ls /tmp/source/
1/  2/  3/
[EMAIL PROTECTED]:~# ls -t1 /tmp/source/ | head -n 1  /tmp/BACKUPFILE
[EMAIL PROTECTED]:~# cat /tmp/BACKUPFILE
3/
[EMAIL PROTECTED]:~# ls -t1 /tmp/source/ | grep -f /tmp/BACKUPFILE -v  
/tmp/BACKUPEXCLUDE

[EMAIL PROTECTED]:~# cat /tmp/BACKUPEXCLUDE
2/
1/
[EMAIL PROTECTED]:~# rsync -ah --numeric-ids --stats --delete-excluded 
--include-from=/tmp/BACKUPFILE --exclude-from=/tmp/BACKUPEXCLUDE 
/tmp/source/ /tmp/destination/

[EMAIL PROTECTED]:~# ls /tmp/destination/
3/

Which works and copies the subdirectories and files but is there a more 
elegant solution without the need for the /tmp/BACKUPEXCLUDE file?


I think i'll rename /tmp/BACKUPFILE to /tmp/BACKUPDIR :)

Apologies as they only just decided this today after I came back with 
the solution you helped me with.






--
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html