Hi, Rsync. rsync version 3.0.9 protocol version 30 rsync -a --exclude="tmp/*" /home/ /backup/home/ It is necessary that the contents of the folder tmp copy, but the folder tmp in backup was created. If the folder /home/tmp/ is many millions of files, rsync think of this folder can be seen through the lsof -p PID If you do so: rsync -a --exclude="tmp/" /home/ /backup/home/ then backup is done very quickly, but tmp folder in the backup does not will be created. How to make so that rsync long thought over such folders, but This created a backup of them empty? ===================================================================== ????? ????? ?????????? ????? tmp ?? ????????????, ?? ???? ????? tmp ? ?????? ???????????. ???? ? ????? /home/tmp/ ????????? ????? ????????? ??????, rsync ?????? ??? ???? ?????? ??? ????? ????? lsof -p PID ???? ?????? ???: rsync -a --exclude="tmp/" /home/ /backup/home/ ?? ????? ???????? ????? ??????, ?? ??? ???? ????? tmp ? ?????? ?? ??????????. ??? ??????? ??? ????? rsync ????? ?? ????? ??? ?????? ???????, ?? ??? ???? ???????? ?? ??????? ? ??????? -- ? ?????????, ????? ?????? mailto:drug at qwarta.ru QWARTA
On Sat 28 Feb 2015, ????? ?????? wrote:> > rsync version 3.0.9 protocol version 30 > > rsync -a --exclude="tmp/*" /home/ /backup/home/ > > It is necessary that the contents of the folder tmp copy, but the folder tmp in > backup was created. > > If the folder /home/tmp/ is many millions of files, rsync > think of this folder can be seen through the lsof -p PID > > If you do so: rsync -a --exclude="tmp/" /home/ /backup/home/ > then backup is done very quickly, but tmp folder in the backup does not > will be created. > > How to make so that rsync long thought over such folders, but > This created a backup of them empty?I think the problem is that you only excluded files in tmp, not also directories. So if you have a directory /home/tmp/subdir/ that directory will still be created on the destination side. That is why rsync has to check every entry in the tmp directory: to see if it is a directory. Try --exclude="tmp/**" to exclude everything under tmp, including directories. Paul
Hi On Sat, 28 Feb 2015 06:41:59 +0300 ????? ?????? wrote:> rsync -a --exclude="tmp/*" /home/ /backup/home/> If the folder /home/tmp/ is many millions of files, rsync > think of this folder can be seen through the lsof -p PIDOr strace yes. It seems that rsync does an lstat for any file before applying the exclude rules. Possible optimisation?> If you do so: rsync -a --exclude="tmp/" /home/ /backup/home/ > then backup is done very quickly, but tmp folder in the backup does not > will be created.> How to make so that rsync long thought over such folders, but > This created a backup of them empty?Since the backup with --exclude="tmp/" is fast it may be acceptable to make two passes, one for the main stuff, the second to populate the tmp/ directories. Example: rsync -a --delete --exclude='tmp/' --filter='protect tmp/' /home/ /backup/home (cd /home && find . -name tmp -prune -print ) \ | rsync -a --files-from - /home/ /backup/home Francis --