02.08.2019 22:24, Carlos E. R. пишет:
On 02/08/2019 19.29, Andrei Borzenkov wrote:
02.08.2019 10:59, Carlos E. R. пишет:
On Friday, 2019-08-02 at 06:48 +0300, Andrei Borzenkov wrote:
...
[... trying ...]
Nope (took 9 minutes to run)
rsync $OPTIONS --password-file /root/cripta/keys/rsync.secrets \ --include=/data/storage_** --include=/data/vmware \ --exclude=/lost+found --exclude=/dev --exclude=/sys --exclude=/proc --exclude=/run \ --exclude=/data --exclude=/mnt --exclude=/other --exclude=/media --exclude=/var/lib/samba/lock/ --exclude=/var/run/ \ / root@Isengard::MyBook_Telcontar/$DESTINO
The idea is to copy only some /data/* directories and avoid the rest. Or to not copy /data/** except /data/storage_**
The above command copies none of the /data tree.
Yes, "--exclude /data" prevents rsync from descending into /data. You need "--include /data/storage_** --exclude /data/**" (not sure whether you really need ** or just * here).
Mmm...? I'll try. Now I have to go out to buy a new tea pot, the current one broke. Tea is a crucial part of life :-)
[...]
I think it is working. 80% sure.
No, it is not!
rsync $OPTIONS --password-file /root/cripta/keys/rsync.secrets \ --include /data/storage_** --include=/data/vmware \ --exclude=/lost+found --exclude=/dev --exclude=/sys --exclude=/proc --exclude=/run \ --exclude=/data/** --exclude=/mnt --exclude=/other --exclude=/media --exclude=/var/lib/samba/lock/ --exclude=/var/run/ \ / root@Isengard::MyBook_Telcontar/$DESTINO
The problem is that it is creating: /mnt/BookTelcontar/001/storage_b, /mnt/BookTelcontar/001/storage_c, instead of /mnt/BookTelcontar/001/data/storage_b, /mnt/BookTelcontar/001/storage_a.
:-(
I cannot reproduce it. rsync sends paths relative to source directory by default and you have single source directory which is /: bor@bor-Latitude-E5450:~$ LC_ALL=C find /tmp/root/ /tmp/root/ /tmp/root/foo /tmp/root/data /tmp/root/data/copy /tmp/root/data/copy/foo /tmp/root/data/copy/bar /tmp/root/data/skip /tmp/root/data/skip/baz bor@bor-Latitude-E5450:~$ LC_ALL=C rsync -av --include /data/copy** --exclude /data/** --exclude /foo* /tmp/root/ /tmp/newroot/ sending incremental file list ./ data/ data/copy/ data/copy/bar data/copy/foo sent 232 bytes received 69 bytes 602.00 bytes/sec total size is 0 speedup is 0.00 bor@bor-Latitude-E5450:~$ LC_ALL=C find /tmp/newroot/ /tmp/newroot/ /tmp/newroot/data /tmp/newroot/data/copy /tmp/newroot/data/copy/foo /tmp/newroot/data/copy/bar bor@bor-Latitude-E5450:~$ You may try --relative which send full paths; as your source is filesystem root anyway, it should do what you want. Oh, I believe I understand what happens - shell expands your /data/storage_* so rsync (quite correctly) sends paths relative to *new* root which is /data in this case.