2010年4月24日土曜日

特定のディレクトリを除外し、tarでバックアップ

特定のディレクトリを除外し、tarでバックアップできるんですね。今まで、ディレクトリ全部をまるごとバックアップしていたので、これで、きめ細かくバックアップできます。

こちらは1週間ごとに、バックアップをローテーションするスクリプトサンプルです。

#!/bin/sh

cd /home/user/backup/
fname=`/bin/date '+%w_samplewww.tar.gz'`
rm -f /home/user/backup/samplewww.tar.gz
tar cvfp samplewww.tar /var/www/html/* --exclude images --exclude pics
gzip samplewww.tar
cp samplewww.tar.gz $fname

ヘルプを表示させると、ちゃんと書いてありますね。今まで、なんで確認しなかったんだろう(笑)。

GNU `tar' saves many files together into a single tape or disk archive, and
can restore individual files from the archive.

Usage: tar [OPTION]... [FILE]...

Examples:
tar -cf archive.tar foo bar  # Create archive.tar from files foo and bar.
tar -tvf archive.tar         # List all files in archive.tar verbosely.
tar -xf archive.tar          # Extract all files from archive.tar.

If a long option shows an argument as mandatory, then it is mandatory
for the equivalent short option also.  Similarly for optional arguments.

Main operation mode:
-t, --list              list the contents of an archive
-x, --extract, --get    extract files from an archive
-c, --create            create a new archive
-d, --diff, --compare   find differences between archive and file system
-r, --append            append files to the end of an archive
-u, --update            only append files newer than copy in archive
-A, --catenate          append tar files to an archive
--concatenate       same as -A
--delete            delete from the archive (not on mag tapes!)

Operation modifiers:
-W, --verify               attempt to verify the archive after writing it
--remove-files         remove files after adding them to the archive
-k, --keep-old-files       don't replace existing files when extracting
--keep-newer-files     don't replace existing files that are newer
than their archive copies
--overwrite            overwrite existing files when extracting
--no-overwrite-dir     preserve metadata of existing directories
-U, --unlink-first         remove each file prior to extracting over it
--recursive-unlink     empty hierarchies prior to extracting directory
-S, --sparse               handle sparse files efficiently
-O, --to-stdout            extract files to standard output
-G, --incremental          handle old GNU-format incremental backup
-g, --listed-incremental=FILE
handle new GNU-format incremental backup
--ignore-failed-read   do not exit with nonzero on unreadable files
--occurrence[=NUM]     process only the NUMth occurrence of each file in
the archive. This option is valid only in
conjunction with one of the subcommands --delete,
--diff, --extract or --list and when a list of
files is given either on the command line or
via -T option.
NUM defaults to 1.

Handling of file attributes:
--owner=NAME             force NAME as owner for added files
--group=NAME             force NAME as group for added files
--mode=CHANGES           force (symbolic) mode CHANGES for added files
--atime-preserve         don't change access times on dumped files
-m, --modification-time      don't extract file modified time
--same-owner             try extracting files with the same ownership
--no-same-owner          extract files as yourself
--numeric-owner          always use numbers for user/group names
-p, --same-permissions       extract permissions information
--no-same-permissions    do not extract permissions information
--preserve-permissions   same as -p
-s, --same-order             sort names to extract to match archive
--preserve-order         same as -s
--preserve               same as both -p and -s

Device selection and switching:
-f, --file=ARCHIVE             use archive file or device ARCHIVE
--force-local              archive file is local even if has a colon
--rmt-command=COMMAND      use given rmt COMMAND instead of /etc/rmt
--rsh-command=COMMAND      use remote COMMAND instead of rsh
-[0-7][lmh]                    specify drive and density
-M, --multi-volume             create/list/extract multi-volume archive
-L, --tape-length=NUM          change tape after writing NUM x 1024 bytes
-F, --info-script=FILE         run script at end of each tape (implies -M)
--new-volume-script=FILE   same as -F FILE
--volno-file=FILE          use/update the volume number in FILE

Device blocking:
-b, --blocking-factor=BLOCKS   BLOCKS x 512 bytes per record
--record-size=SIZE         SIZE bytes per record, multiple of 512
-i, --ignore-zeros             ignore zeroed blocks in archive (means EOF)
-B, --read-full-records        reblock as we read (for 4.2BSD pipes)

Archive format selection:
--format=FMTNAME               create archive of the given format.
FMTNAME is one of the following:
v7        old V7 tar format
oldgnu    GNU format as per tar <= 1.12                                     gnu       GNU tar 1.13 format                                     ustar     POSIX 1003.1-1988 (ustar) format                                     posix     POSIX 1003.1-2001 (pax) format      --old-archive, --portability   same as --format=v7      --posix                        same as --format=posix  --pax-option keyword[[:]=value][,keyword[[:]=value], ...]                                     control pax keywords  -V, --label=NAME                   create archive with volume name NAME              PATTERN                at list/extract time, a globbing PATTERN  -j, --bzip2                        filter the archive through bzip2  -z, --gzip, --ungzip               filter the archive through gzip  -Z, --compress, --uncompress       filter the archive through compress      --use-compress-program=PROG    filter through PROG (must accept -d)    

Local file selection: 
-C, --directory=DIR          change to directory DIR  -T, --files-from=NAME        get names to extract or create from file NAME      --null                   -T reads null-terminated names, disable -C     --exclude=PATTERN        exclude files, given as a PATTERN
  -X, --exclude-from=FILE      exclude patterns listed in FILE
--anchored               exclude patterns match file name start (default)
--no-anchored            exclude patterns match after any /
--ignore-case            exclusion ignores case
--no-ignore-case         exclusion is case sensitive (default)
--wildcards              exclude patterns use wildcards (default)
--no-wildcards           exclude patterns are plain strings
--wildcards-match-slash  exclude pattern wildcards match '/' (default)
--no-wildcards-match-slash exclude pattern wildcards do not match '/'
--allow-name-mangling    when creating, allow GNUTYPE_NAMES mangling -- considered dangerous
-P, --absolute-names         don't strip leading `/'s from file names
-h, --dereference            dump instead the files symlinks point to
--no-recursion           avoid descending automatically in directories
-l, --one-file-system        stay in local file system when creating archive
-K, --starting-file=NAME     begin at file NAME in the archive
--strip-path=NUM         strip NUM leading components from file names
before extraction
-N, --newer=DATE-OR-FILE     only store files newer than DATE-OR-FILE
--newer-mtime=DATE       compare date and time when data changed only
--after-date=DATE        same as -N
--backup[=CONTROL]       backup before removal, choose version control
--suffix=SUFFIX          backup before removal, override usual suffix

Informative output:
--help            print this help, then exit
--version         print tar program version number, then exit
-v, --verbose         verbosely list files processed
--checkpoint      print directory names while reading the archive
--check-links     print a message if not all links are dumped
--totals          print total bytes written while creating archive
--index-file=FILE send verbose output to FILE
--utc             print file modification dates in UTC
-R, --block-number    show block number within archive with each message
-w, --interactive     ask for confirmation for every action
--confirmation    same as -w

Compatibility options:
-o                                 when creating, same as --old-archive
when extracting, same as --no-same-owner

0 件のコメント:

コメントを投稿