|
Softpanorama |
May the source be with you, but remember the KISS principle ;-)
Softpanorama Search
|
The find command lets you copy the entire contents of a directory
while preserving the permissions, times, and ownership of every file and subdirectory.
Because find capabilities to specify complex criteria for files it can create a
perfect list of files for cpio, tar, pax and another archiver to backup
Fortunately find has several options that are very useful for structuring the backup:
The typical usage is to combine find and the cpio command,
as the latter accepts the list of files via standard input. Tar can do this
too with -T - option. Typically each mount point is backed up in a separate
tar or cpio archive.
cd /usr find /usr -mount fstype ext3 - | cpio -pdumv /backup/usr080124.cpi
or, using tar:
find /usr -mount fstype ext3 -print0 | tar -null -cvzf /backup/usr080124.tgzIt is also possible to do incremental backups using -newer option
find /usr -newer /backup/usr080124.tgz -mount fstype ext3 -print0 | tar -null -cvzf /backup/usr_delta080124.tgz
You can also try to avoid errors in backing up named pipes, devises, etc using more complex traversal expressions, for example
find / -mount -fstype ext3 \( -type f -or -type l \) > /tmp/root_list.txt
The problem here is with hard linked files. That that is problem of tar not find. The cpio command is a more sophisticated backup tool than tar. It is harder to use, but is capable of copying special files (such as devices and links) consistently, and will accept wildcard characters when listing the files to be archived.
On higher level you might benefit from exclusion of all files that are not changes in RPMs from which system was installed. This is the approach taken by backup built-in in YAST (it uses tar, not cpio). While tar cannot accept the list of files as standard input it has the -T option which can be used to specify the location of file with list of files to be tarred". Here is how this option is described in the manual:
Instead of giving the names of files or archive members on the command line, you can put the names into a file, and then use the ‘--files-from=file-of-names’ (‘-T file-of-names’) option to
tar. Give the name of the file which contains the list of files to include as the argument to ‘--files-from’. In the list, the file names should be separated by newlines. You will frequently use this option when you have generated the list of files to archive with thefindutility.... ... ...
In the file list given by ‘-T’ option, any file name beginning with ‘-’ character is considered a
taroption and is processed accordingly.(14) For example, the common use of this feature is to change to another directory by specifying ‘-C’ option:$ cat list -C/etc passwd hosts -C/lib libc.a $ tar -c -f foo.tar --files-from list
For example if we want to archive file that has size less then 1000 we can first create of list of such files using find and then use tar to created an archive.
find . -size -1K -print > /etc/small-files tar -cvzT /etc/small-files -f little.tgz
You can also compress the archive with gzip of the fly:
tar -zPvcf backup.tar.gz -T list_of_files_to_be_tarred_or_list_of_locations
You will want to use the ‘--label=archive-label’ (‘-V archive-label’) option to give the archive a volume label, so you can tell what this archive is even if the label falls off the tape, or anything like that.
Unless the file system you are dumping is guaranteed to fit on one volume, you might need to use the ‘--multi-volume’ (‘-M’) option.
Like find, tar has an option of that prevent it from crossing
the filesystem (partition) boundaries: ‘--one-file-system’ option
to prevent from crossing file system boundaries when storing (sub)directories.
It also has the ‘--incremental’ (‘-G’) option
(see section
Using tar to Perform Incremental Dumps).
Copyright © 1996-2009 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. Submit comments This document is an industrial compilation designed and created exclusively for educational use and is placed under the copyright of the Open Content License(OPL). Site uses AdSense so you need to be aware of Google privacy policy. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.
Disclaimer:
Created: May 16, 1997; Last modified: August 25, 2009