[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-tar] Bug in (GNU tar) 1.15.90 ?
From: |
Chris Drake |
Subject: |
[Bug-tar] Bug in (GNU tar) 1.15.90 ? |
Date: |
Tue, 2 May 2006 21:44:42 +1000 |
Hi,
Your switch:-
--newer=DATE-OR-FILE
Is not behaving as I expect. It's correctly skipping some things, but
incorrectly backing up unchanged stuff as well!
I'm using RedHat Enterprise ES3 update5
Linux 2.4.21-32.0.1.ELsmp #1 SMP Tue May 17 17:52:23 EDT 2005 i686 i686 i386
GNU/Linux
Initially - I issued these commands:-
cd /;
touch /backup_checkpoint;
nohup nice -19 tar --create -.. etc - to back up everything
Each week, I'm trying to do this, which isn't working:-
cd /;
touch /backup_checkpointp;
nohup nice -19 tar --create -v --ignore-failed-read
--sparse --to-stdout --atime-preserve
--preserve-permissions --same-owner
--bzip2
--newer=./backup_checkpoint
--directory=/
--exclude ./opt/oracle/oradata/ORCL
. 2> /tmp/tar_cal_inc060424_copy.log |
/usr/local/bin/gpg -c |
ssh address@hidden 'cat >cal/cal_inc060424.tar.bz2.gpg' &
(imagine everything from the "nohup" line up to the above ssh line as
one single command - I've just added the line-breaks to make it
readable).
Here's what I've got in my root dir:-
address@hidden cnd]# dir /back*
-rw-r--r-- 1 root root 0 Apr 13 09:51 backup_checkpoint
-rw-r--r-- 1 root root 0 Apr 24 05:12 backup_checkpointp
Here's some parts of my backup log:-
address@hidden cnd]# more /tmp/tar_cal_inc060424_copy.log
./
./lost+found/
./boot/
./boot/lost+found/
./boot/grub/
./boot/grub/grub.conf
./boot/grub/splash.xpm.gz
tar: ./boot/grub/menu.lst: file is unchanged; not dumped
./boot/grub/device.map
./boot/grub/stage1
./boot/grub/stage2
./boot/grub/e2fs_stage1_5
address@hidden cnd]# tail /tmp/tar_cal_inc060424_copy.log
./var/www/html/emsvr/pico/Para_Mt_Beauty.avi
./var/www/html/emsvr/pico/Para_Pico2003.avi
./var/www/html/emsvr/pico/Para_Phillip_Island.mpg
And here is one of the old files that should not have been in the
backup:-
address@hidden cnd]# dir /var/www/html/emsvr/pico/Para_Mt_Beauty.avi
-rwxr--r-- 1 cnd cnd 78428270 Mar 31 2005
/var/www/html/emsvr/pico/Para_Mt_Beauty.avi*
address@hidden cnd]# tar --version
tar (GNU tar) 1.15.90
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software. You may redistribute copies of it under the terms of
the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.
Written by John Gilmore and Jay Fenlason.
address@hidden cnd]# tar --help
Usage: tar [OPTION...] [FILE]...
GNU `tar' saves many files together into a single tape or disk archive, and can
restore individual files from the archive.
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.
Main operation mode:
-A, --catenate, --concatenate append tar files to an archive
-c, --create create a new archive
-d, --diff, --compare find differences between archive and file system
--delete delete from the archive (not on mag tapes!)
-r, --append append files to the end of an archive
-t, --list list the contents of an archive
--test-label Test archive volume label and exit
-u, --update only append files newer than copy in archive
-x, --extract, --get extract files from an archive
Operation modifiers:
-g, --listed-incremental=FILE handle new GNU-format incremental backup
-G, --incremental handle old GNU-format incremental backup
--ignore-failed-read do not exit with nonzero on unreadable files
-n, --seek archive is seekable
--occurrence[=NUMBER] process only the NUMBERth 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. NUMBER defaults to 1.
-S, --sparse handle sparse files efficiently
Overwrite control:
-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
--no-overwrite-dir preserve metadata of existing directories
--overwrite overwrite existing files when extracting
--recursive-unlink empty hierarchies prior to extracting directory
--remove-files remove files after adding them to the archive
-U, --unlink-first remove each file prior to extracting over it
-W, --verify attempt to verify the archive after writing it
Select output stream:
--ignore-command-error ignore exit codes of children
--no-ignore-command-error treat non-zero exit codes of children as
error
-O, --to-stdout extract files to standard output
--to-command=COMMAND pipe extracted files to another program
Handling of file attributes:
--atime-preserve[=METHOD] preserve access times on dumped files, either
by restoring the times after reading
(METHOD='replace'; default) or by not setting the
times in the first place (METHOD='system')
--delay-directory-restore Delay setting modification times and
permissions of extracted directories until the end
of extraction.
--group=NAME force NAME as group for added files
--mode=CHANGES force (symbolic) mode CHANGES for added files
-m, --touch don't extract file modified time
--no-delay-directory-restore
Cancel the effect of --delay-directory-restore
option.
--no-same-owner extract files as yourself
--no-same-permissions apply the user's umask when extracting permissions
from the archive (default for ordinary users)
--numeric-owner always use numbers for user/group names
--owner=NAME force NAME as owner for added files
-p, --preserve-permissions, --same-permissions
extract information about file permissions
(default for superuser)
--preserve same as both -p and -s
--same-owner try extracting files with the same ownership
-s, --preserve-order, --same-order
sort names to extract to match archive
Device selection and switching:
-f, --file=ARCHIVE use archive file or device ARCHIVE
--force-local archive file is local even if it has a colon
-F, --info-script=NAME, --new-volume-script=NAME
run script at end of each tape (implies -M)
-L, --tape-length=NUMBER change tape after writing NUMBER x 1024 bytes
-M, --multi-volume create/list/extract multi-volume archive
--rmt-command=COMMAND use given rmt COMMAND instead of rmt
--rsh-command=COMMAND use remote COMMAND instead of rsh
--volno-file=FILE use/update the volume number in FILE
Device blocking:
-b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record
-B, --read-full-records reblock as we read (for 4.2BSD pipes)
-i, --ignore-zeros ignore zeroed blocks in archive (means EOF)
--record-size=NUMBER NUMBER of bytes per record, multiple of 512
Archive format selection:
-H, --format=FORMAT create archive of the given format.
FORMAT is one of the following:
gnu GNU tar 1.13.x format
oldgnu GNU format as per tar <= 1.12
pax POSIX 1003.1-2001 (pax) format
posix same as pax
ustar POSIX 1003.1-1988 (ustar) format
v7 old V7 tar format
-j, --bzip2 filter the archive through bzip2
--old-archive, --portability
same as --format=v7
--pax-option=keyword[[:]=value][,keyword[[:]=value], ...]
control pax keywords
--posix same as --format=posix
--use-compress-program=PROG
filter through PROG (must accept -d)
-V, --label=TEXT create archive with volume name TEXT. At
list/extract time, use TEXT as a globbing pattern
for volume name
-z, --gzip, --gunzip, --ungzip filter the archive through gzip
-Z, --compress, --uncompress filter the archive through compress
Local file selection:
--add-file=FILE add given FILE to the archive (useful if its name
starts with a dash)
--after-date=DATE same as -N
--anchored exclude patterns match file name start
--backup[=CONTROL] backup before removal, choose version CONTROL
-C, --directory=DIR change to directory DIR
--exclude=PATTERN exclude files, given as a PATTERN
--exclude-caches exclude directories containing a cache tag
-h, --dereference follow symlinks; archive and dump the files they
point to
--ignore-case exclusion ignores case
-K, --starting-file=MEMBER-NAME
begin at member MEMBER-NAME in the archive
--newer-mtime=DATE compare date and time when data changed only
--no-anchored exclude patterns match after any `/' (default)
--no-ignore-case exclusion is case sensitive (default)
--no-recursion avoid descending automatically in directories
--no-unquote do not unquote filenames read with -T
--no-wildcards exclude patterns are plain strings
--no-wildcards-match-slash exclude pattern wildcards do not match `/'
--null -T reads null-terminated names, disable -C
-N, --newer=DATE-OR-FILE only store files newer than DATE-OR-FILE
--one-file-system stay in local file system when creating archive
-P, --absolute-names don't strip leading `/'s from file names
--recursion recurse into directories (default)
--strip-components=NUMBER strip NUMBER leading components from file
names
--suffix=STRING backup before removal, override usual suffix ('~'
unless overridden by environment variable
SIMPLE_BACKUP_SUFFIX)
-T, --files-from=FILE get names to extract or create from FILE
--unquote unquote filenames read with -T (default)
--wildcards exclude patterns use wildcards (default)
--wildcards-match-slash exclude pattern wildcards match `/' (default)
-X, --exclude-from=FILE exclude patterns listed in FILE
Informative output:
--check-links print a message if not all links are dumped
--checkpoint display progress messages every 10th record
--index-file=FILE send verbose output to FILE
--no-quote-chars=STRING Disable quoting for characters from STRING
--quote-chars=STRING Additionally quote characters from STRING
--quoting-style=STYLE Set name quoting style. See below for valid STYLE
values.
-R, --block-number show block number within archive with each message
--show-defaults Show tar defaults
--show-omitted-dirs When listing or extracting, list each directory
that does not match search criteria
--show-stored-names When creating archive in verbose mode, list member
names as stored in the archive
--totals print total bytes written while creating archive
--utc print file modification dates in UTC
-v, --verbose verbosely list files processed
-w, --interactive, --confirmation
ask for confirmation for every action
Compatibility options:
-o when creating, same as --old-archive. When
extracting, same as --no-same-owner
Other options:
-?, --help Give this help list
--restrict Restrict use of some potentially harmful options
--usage Give a short usage message
--version Print program version
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.
The version control may be set with --backup or VERSION_CONTROL, values are:
none, off never make backups
t, numbered make numbered backups
nil, existing numbered if numbered backups exist, simple otherwise
never, simple always make simple backups
Valid arguments for --quoting-style options are:
literal
shell
shell-always
c
escape
locale
clocale
*This* tar defaults to:
--format=gnu -f- -b20 --quoting-style=escape
--rmt-command=/usr/local/libexec/rmt --rsh-command=/usr/bin/rsh
Report bugs to <address@hidden>.
address@hidden cnd]#
Kind Regards,
Chris Drake
- [Bug-tar] Bug in (GNU tar) 1.15.90 ?,
Chris Drake <=