Date: Thu, 7 Jul 2005 23:38:09 -0400 From: "Matt Emmerton" <matt@gsicomp.on.ca> To: "Drew Tomlinson" <drew@mykitchentable.net>, "FreeBSD Questions" <freebsd-questions@freebsd.org> Subject: Re: tar Syntax Help Message-ID: <004701c5836e$7e3aa160$1200a8c0@gsicomp.on.ca> References: <42CDF112.5070209@mykitchentable.net>
next in thread | previous in thread | raw e-mail | index | archive | help
> I'm trying to copy an entire file system while using an exclude file to > avoid copying things such as /dev, /proc, etc. I've read the man page > and found the -X or --exclude-from tar option. I've create a file > called /exclude.list. It contains lines such as: > > /exclude.list > /dev > /proc > > But I can't figure out how to form the correct command line. I > basically want to do this: > > tar -cvf - --exclude-from /exclude.list -C / . | tar xpf - -C . > > I've search the web and found examples that look similar to the above > but this does not work for me. tar attempts to copy /dev and I get all > the associated errors. I've tried other placements of either "-X", "X", > and "--exclude from" on the command line various things happen from it > just being ignored to tar thinking I want to create and archive named > "-X", etc., to tar trying to add a file named "-X", etc. to the current > archive. I'm at a loss. > > I'm using 4.11 and trying to make a good backup before upgrading to > 5.4. Can anyone tell me the secret incantation to make this work? -X only works with specific files, not entire directories. You will need to list every file in /dev or /proc that you want to exclude, which is somewhat painful. The backup strategy that I've used on production systems is to back up each directory in a separate tar file. Not only does this work quicker (since you can fire off multiple tar sessions in parallel), but you can avoid "special" directories like /dev and /proc, temporary mount points such as /cdrom and /mnt, and other directories that don't need to backed up, such as /tmp. It's also quite handy when you've got large volumes of data (such as in /home) and the complete system image won't fit on a single tape. The general notion of my script is the following: #!/bin/sh for i in bin boot etc home modules root sbin usr var do tar cvzf /backups/$i.`date +%Y%m%d`.tar.gz $i & done wait echo "Backups completed!" -- Matt Emmerton
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?004701c5836e$7e3aa160$1200a8c0>