Date: Fri, 8 Jul 2005 00:33:41 -0400 From: "Matt Emmerton" <matt@gsicomp.on.ca> To: "Drew Tomlinson" <drew@mykitchentable.net> Cc: FreeBSD Questions <freebsd-questions@freebsd.org> Subject: Re: tar Syntax Help Message-ID: <001101c58376$3ada93f0$1200a8c0@gsicomp.on.ca> References: <42CDF112.5070209@mykitchentable.net> <004701c5836e$7e3aa160$1200a8c0@gsicomp.on.ca> <42CDFA88.5000803@mykitchentable.net>
next in thread | previous in thread | raw e-mail | index | archive | help
> On 7/7/2005 8:38 PM Matt Emmerton wrote: > > > >>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!" > > > Thanks for your reply. I can do it this way and will for the sake of > speed. However this post suggests that one can use wildcards. > > http://lists.freebsd.org/pipermail/freebsd-questions/2004-July/052207.html > > Have you ever tried that? I did but was not successful. I just tried this out (on 5.4-REL) and the wildcards appear to work fine. If you specify wildcards on the command line (ie, with --exclude or -X), you must quote them to prevent premature expansion. -- Matt
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?001101c58376$3ada93f0$1200a8c0>