Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
TARSNAP(1)		    General Commands Manual		    TARSNAP(1)

NAME
       tarsnap -- manipulate remote encrypted backups

SYNOPSIS
       tarsnap	{-c}  --keyfile	 key-file --cachedir cache-dir -f archive-name
	       [options] [files	| directories]
       tarsnap {-d} --keyfile key-file --cachedir  cache-dir  -f  archive-name
	       [options]
       tarsnap	 {-t  |	 -x}  --keyfile	 key-file  -f  archive-name  [options]
	       [patterns]
       tarsnap {-r} --keyfile key-file -f archive-name
       tarsnap {--list-archives} --keyfile key-file
       tarsnap	{--print-stats}	 --keyfile   key-file	--cachedir   cache-dir
	       [-f archive-name]
       tarsnap {--recover} --keyfile key-file --cachedir cache-dir
       tarsnap {--fsck}	--keyfile key-file --cachedir cache-dir
       tarsnap {--fsck-prune} --keyfile	key-file --cachedir cache-dir
       tarsnap {--initialize-cachedir} --keyfile key-file --cachedir cache-dir
       tarsnap {--nuke}	--keyfile key-file
       tarsnap --verify-config
       tarsnap --version

DESCRIPTION
       tarsnap creates,	reads, deletes,	and otherwise manages online backups.

       The  first  option  to  tarsnap	is a mode indicator from the following
       list:
       -c      Create an archive containing the	specified items	and name.
       -d      Delete the specified archive.
       -t      List archive contents to	stdout.
       -x      Extract to disk from the	archive.
       -r      Read the	specified archive, convert it to  a  tar  stream,  and
	       write it	to stdout.
       --list-archives
	       Print  the  names of archives stored.  If the -v	flag is	speci-
	       fied one	or more	times, the creation time of  each  archive  is
	       also  printed;  if  the -v flag is specified two	or more	times,
	       the command line	with which tarsnap was invoked to create  each
	       archive is also printed.
       --print-stats
	       Print global statistics concerning the archives stored, and op-
	       tionally	 information about individual archive(s).  See "PRINT-
	       ING ARCHIVE STATISTICS" below for  information  on  the	output
	       format.
       --recover
	       Recover	a partial archive from a checkpoint if such an archive
	       exists.	This is	also  done  automatically  the	next  time  an
	       archive is created or deleted.
       --fsck  Perform	some  integrity	checks on the archives stored, and re-
	       construct the cache directory cache-dir.	 In the	unlikely event
	       that there are corrupted	archives, tarsnap will	exit  and  re-
	       quest that it be	run with the --fsck-prune option.
       --fsck-prune
	       Run  as --fsck, but if corrupt archives are detected, prune the
	       broken data.
       --initialize-cachedir
	       Create and initialize the cachedir.  This  option  is  intended
	       for the GUI and is not needed for command-line usage.
       --nuke  Delete all of the archives stored.  To protect against acciden-
	       tal data	loss, tarsnap will ask you to type the text "No	Tomor-
	       row" when using the --nuke command.
       --verify-config
	       Check the configuration file(s) for syntactic errors.
       --version
	       Print version number of tarsnap,	and exit.

       In -c mode, each	specified file or directory is added to	the archive in
       the  order  specified on	the command line.  By default, the contents of
       each directory are also archived.

       In -t or	-x mode, the entire command line is read and parsed before the
       archive is opened.  The pathnames or patterns on	the command line indi-
       cate which items	in the archive	should	be  processed.	 Patterns  are
       shell-style  globbing  patterns	as  documented	in tcsh(1).  Note that
       these follow the	POSIX rules for	pattern	matching, e.g.,	`[]' are  spe-
       cial characters which can be escaped with a backslash.

       Two  concurrent	create	or delete operations may not be	performed with
       the same	key.  Extracting or listing archives may be performed in  par-
       allel with any other operation.

OPTIONS
       @archive-file
	       (c  mode	 only)	The specified archive file is read and the en-
	       tries in	it will	 be  appended  to  the	current	 archive.   If
	       archive-file  is	 "-"  then  the	 archive will be read from the
	       standard	input.	As an example,
		     tarsnap -c	--keyfile  key-file  --cachedir	 cache-dir  -f
		     mybackup @backup.tar
	       reads the archive file backup.tar from disk and stores it using
	       tarsnap.

       @@archive-name
	       (c mode only) The specified tarsnap archive is read and the en-
	       tries in	it will	be appended to the current archive.

       --aggressive-networking
	       (c  mode	only) Use multiple TCP connections to send data	to the
	       tarsnap server.	 If  the  upload  rate	is  congestion-limited
	       rather than being limited by individual bottleneck(s), this may
	       allow  tarsnap  to  use	a significantly	larger fraction	of the
	       available bandwidth, at the expense of slowing down  any	 other
	       network traffic.

       --archive-names filename
	       Read a list of archive names from filename.

       -C directory
	       (c  and x modes only) In	c mode,	this changes the directory be-
	       fore adding the following files.	 In x mode, change directories
	       after opening the archive but before  extracting	 entries  from
	       the archive.

       --cachedir cache-dir
	       (c,  d,	print-stats,  and  fsck	 modes only) Cache information
	       about  the  archives  stored  by	 tarsnap  in   the   directory
	       cache-dir.   The	 contents of this directory will not be	backed
	       up by tarsnap, so it should not be used for any other  purpose.
	       If  the directory cache-dir is lost, it can be reconstructed by
	       running tarsnap --fsck.

       --check-links
	       (c mode only) Issue a warning message unless all	links to  each
	       file are	archived.

       --checkpoint-bytes bytespercheckpoint
	       (c    mode    only)    Create	a   checkpoint	 after	 every
	       bytespercheckpoint  bytes  of   uploaded	  data.	   The	 value
	       bytespercheckpoint must be at least 1000000, and	a higher value
	       is  recommended	since  creating	a checkpoint in	an archive can
	       take a few seconds and several hundred kB of bandwidth.

       --chroot
	       (x mode only) chroot() to the current directory after  process-
	       ing any -C options and before extracting	any files.

       --configfile filename
	       Add filename to the list	of configuration files to be read; op-
	       tions  set  via these take priority over	the default configura-
	       tion files.  This option	can be specified  multiple  times,  in
	       which case all the files	will be	read; where settings conflict,
	       the earlier configuration file will take	priority.

       --creationtime X
	       (c  mode	 only)	Manually specify a creation time (a unix time-
	       stamp) for the archive.	This is	unlikely  to  be  useful  when
	       tarsnap is being	invoked	directly from the command line.

       --csv-file filename
	       (use  with  --print-stats)  Write statistics in CSV format to a
	       file.

       --disk-pause X
	       (c mode only) Pause for X ms between  storing  archive  entries
	       and  after  every  64  kB  of  file  data.  This	will slow down
	       tarsnap and thereby reduce its impact  on  other	 applications.
	       For archiving files which are stored on an ATA disk and are not
	       in  the operating system	disk cache, a value of --disk-pause 10
	       will approximately double the time taken.

       --dry-run
	       (c mode only) Don't really create an archive; just simulate do-
	       ing so.	The list of paths added	to an archive (if the  -v  op-
	       tion  is	 used),	progress messages (if the --progress-bytes op-
	       tion  is	 used),	 and  final   statistics   printed   (if   the
	       --print-stats  option  is used) will be almost identical	(typi-
	       cally within a few kB or	a fraction of a	percent) to if tarsnap
	       is run without the --dry-run option.

	       Note that the --maxbw option does not work in combination  with
	       --dry-run,  since no bandwidth is actually used,	and that since
	       tarsnap does not	contact	the tarsnap server when	 performing  a
	       dry  run,  it  will  not	detect an attempt to create an archive
	       with the	same name as one which already exists.	If an existing
	       archive is being	copied via @@archive-name, then	 some  network
	       bandwidth  will	be  used  while	 tarsnap  reads	metadata about
	       archive-name from the tarsnap server.

	       Furthermore, --dry-run will not check whether the cache	direc-
	       tory is out of sync.

       --dry-run-metadata
	       (c mode only) Don't really create an archive; just simulate do-
	       ing  so.	  This is similar to --dry-run,	except that it doesn't
	       read any	files; it only processes filesystem metadata.

	       This is significantly faster than a regular --dry-run,  but  it
	       is still	suitable for checking which filesystem entries will be
	       archived	 (with	-v), or	getting	the total uncompressed archive
	       size (via --totals or --progress-bytes).

	       This option cannot be used with --print-stats.

       --dump-config
	       Print out the command-line and all non-blank  lines  read  from
	       config files.

       --exclude pattern
	       (c,  x,	and  t modes only) Do not process files	or directories
	       that match the specified	pattern.  Note	that  exclusions  take
	       precedence  over	patterns or filenames specified	on the command
	       line.

       -f archive-name
	       (c, d, x, t, r, list-archives, and print-stats modes only)  Op-
	       erate  on the archive archive-name.  In mode c, if archive cre-
	       ation is	interrupted by ^Q, the SIGQUIT signal, or reaching the
	       bandwidth limit specified via a	--maxbw	 option,  the  archive
	       will  be	 stored	 with  ".part"	appended to its	name.  In mode
	       print-stats, if archive-name is *, statistics will  be  printed
	       for  every  archive.   In  the  print-stats  and	 d  modes,  -f
	       archive-name can	be specified multiple times, in	which case the
	       operation (printing statistics, or deletion) will be  performed
	       for each	of the specified archives.

	       Note that each archive created must have	a different name; con-
	       sequently  many	users  find it useful to include timestamps in
	       archive names when repeatedly creating archives from  the  same
	       files/directories (e.g.,	daily backups).

	       As  a  special case, if used with --list-archives --hashes then
	       -f indicates a tapehash instead of an  archive-name,  and  will
	       print  metadata	about the specified archive(s).	 This combina-
	       tion of options is intended for the GUI and is not  needed  for
	       command-line usage.  (-f	cannot be used with --list-archives if
	       it does not also	include	--hashes.)

       --force-resources
	       Force the decryption of a passphrase-encrypted key file to pro-
	       ceed  even  if it is anticipated	to require an excessive	amount
	       of memory or CPU	time.

       -H      (c mode only) Symbolic links named on the command line will  be
	       followed; the target of the link	will be	archived, not the link
	       itself.

       -h      (c mode only) Synonym for -L.

       --hashes
	       (list-archives  mode  only)  Print hashes of archive names.  If
	       the -v flag is specified	one or more times, print  the  archive
	       name as well.

	       This  option is intended	for the	GUI and	is not needed for com-
	       mand-line usage.

       --humanize-numbers
	       Use SI prefixes to make numbers printed	by  --print-stats  and
	       SIGINFO more readable.

       -I      Synonym for -T.

       --include pattern
	       (c, x, and t modes only)	Process	only files or directories that
	       match  the  specified  pattern.	Note that exclusions specified
	       with --exclude take precedence over inclusions.	If  no	inclu-
	       sions  are  explicitly  specified, all entries are processed by
	       default.	 The --include option is especially useful  when  fil-
	       tering archives.	 For example, the command
		     tarsnap -c	-f foo-backup --include='*foo*'	@@all-backup
	       creates	a  new	archive	foo-backup containing only the entries
	       from all-backup containing the string `foo'.

       --insane-filesystems
	       (c mode only) Allow descent into	synthetic filesystems such  as
	       procfs.	 Normally  archiving  of  such	filesystems is a silly
	       thing to	do, hence the name of the option.

       --iso-dates
	       (t mode only) Print file	 and  directory	 dates	as  yyyy-mm-dd
	       hh:mm:ss.

	       The  default is to use the same format as 'ls -l': If the files
	       were modified within the	past six months, print the month, day,
	       hour, and minutes; otherwise, print the month, day, and year.

       -k      (x mode only) Do	not overwrite existing files.  In  particular,
	       if  a  file  appears more than once in an archive, later	copies
	       will not	overwrite earlier copies.

       --keep-going
	       (d and print-stats modes	only) Continue	deleting  or  printing
	       statistics  after  finding  that	 one of	the archives specified
	       does not	exist.

       --keep-newer-files
	       (x mode only) Do	not overwrite existing files  that  are	 newer
	       than the	versions appearing in the archive being	extracted.

       --keyfile key-file
	       (all  modes) Obtain encryption, authentication, and access keys
	       from  key-file.	 This  file  should  have  been	 generated  by
	       tarsnap-keygen(1).

       -L      (c  mode	 only) All symbolic links will be followed.  Normally,
	       symbolic	links are archived as such.   With  this  option,  the
	       target of the link will be archived instead.

       -l      This is a synonym for the --check-links option.

       --lowmem
	       (c  mode	 only) Reduce memory usage by not caching small	files.
	       This may	be useful when backing up files	of average  size  less
	       than  1	MB  if the available RAM in kilobytes is less than the
	       number of files being backed up.

       -m      (x mode only) Do	not extract modification  time.	  By  default,
	       the modification	time is	set to the time	stored in the archive.

       --maxbw numbytes
	       (c mode only) Interrupt archival	if more	than numbytes bytes of
	       upstream	bandwidth is used (see INTERRUPTING ARCHIVAL below for
	       details).

       --maxbw-rate bytespersecond
	       Limit  download	and  upload  bandwidth	used to	bytespersecond
	       bytes per second.

       --maxbw-rate-down bytespersecond
	       Limit download bandwidth	used to	bytespersecond bytes per  sec-
	       ond.

       --maxbw-rate-up bytespersecond
	       Limit upload bandwidth used to bytespersecond bytes per second.

       -n      (c mode only) Do	not recursively	archive	the contents of	direc-
	       tories.

       --newer date
	       (c,  x,	t modes	only) Only include files and directories newer
	       than the	specified date.	 This compares ctime entries.

       --newer-mtime date
	       (c mode only) Like --newer, except it  compares	mtime  entries
	       instead of ctime	entries.

       --newer-than filename
	       (c mode only) Only include files	and directories	newer than the
	       specified file.	This compares ctime entries.

       --newer-mtime-than filename
	       (c  mode	 only) Like --newer-than, except it compares mtime en-
	       tries instead of	ctime entries.

       --no-aggressive-networking
	       Ignore any aggressive-networking	option specified in a configu-
	       ration file.

       --no-config-exclude
	       Ignore any exclude option specified in  a  configuration	 file.
	       Normally	 exclude options specified via configuration files and
	       the command line	all take effect.

       --no-config-include
	       Ignore any include option specified in  a  configuration	 file.
	       Normally	 include options specified via configuration files and
	       the command line	all take effect.

       --no-default-config
	       Do    not    read    the	   default     configuration	 files
	       /usr/local/etc/tarsnap.conf,
	       $XDG_CONFIG_HOME/tarsnap/tarsnap.conf, and ~/.tarsnaprc.

       --no-disk-pause
	       Ignore any disk-pause option specified in a configuration file.

       --no-force-resources
	       Ignore  any force-resources option specified in a configuration
	       file.

       --no-humanize-numbers
	       Ignore any humanize-numbers option specified in a configuration
	       file.

       --no-insane-filesystems
	       Ignore any insane-filesystems option specified in a  configura-
	       tion file.

       --no-iso-dates
	       Ignore any iso-dates option specified in	a configuration	file.

       --no-maxbw
	       Ignore any maxbw	option specified in a configuration file.

       --no-maxbw-rate-down
	       Ignore  any maxbw-rate-down option specified in a configuration
	       file.  If a maxbw-rate option is	specified in  a	 configuration
	       file,  it  will not affect the download bandwidth used, but may
	       affect the upload bandwidth used	(unless	--no-maxbw-rate-up  is
	       also specified).

       --no-maxbw-rate-up
	       Ignore  any  maxbw-rate-up  option specified in a configuration
	       file.  If a maxbw-rate option is	specified in  a	 configuration
	       file, it	will not affect	the upload bandwidth used, but may af-
	       fect  the  download bandwidth used (unless --no-maxbw-rate-down
	       is also specified).

       --no-noatime
	       Ignore any noatime option specified in a	configuration file.

       --no-nodump
	       Ignore any nodump option	specified in a configuration file.

       --no-print-stats
	       Ignore any print-stats  option  specified  in  a	 configuration
	       file.

       --no-progress-bytes
	       Ignore  any  progress-bytes option specified in a configuration
	       file.

       --no-quiet
	       Ignore any quiet	option specified in a configuration file.

       --no-retry-forever
	       Ignore any retry-forever	option specified  in  a	 configuration
	       file.

       --no-snaptime
	       Ignore any snaptime option specified in a configuration file.

       --no-store-atime
	       Ignore  any  store-atime	 option	 specified  in a configuration
	       file.

       --no-totals
	       Ignore any totals option	specified in a configuration file.

       --noatime
	       (c mode only) Ask the operating system to not update the	 atime
	       when  reading files or directories.  Not	supported by all oper-
	       ating systems and filesystems.

       --nodump
	       (c mode only) Honor the nodump file flag	by skipping this  file
	       or directory.

       --noisy-warnings
	       Be verbose when warning about network glitches.	This is	proba-
	       bly only	useful for debugging purposes.

       --normalmem
	       Ignore  any lowmem or verylowmem	option specified in a configu-
	       ration file.

       --null  (use with -I, -T, or -X)	Synonym	for  --null-input.   Kept  for
	       historical reasons and compatibility with other tar utilities.

       --null-input
	       (use with -I, -T, or -X)	Filenames, archive names, and patterns
	       are separated by	null characters, not by	newlines.  This	is of-
	       ten  used  to  read  filenames  output by the -print0 option to
	       find(1).

       --null-output
	       (x, t,  list-archives,  and  print-stats	 modes	only)  Archive
	       names,  filenames,  and	lines  in output are separated by null
	       characters, not by newlines.

	       If there	are multiple fields on a line, they will be  separated
	       by  two	null  characters.  If a	command	line is	printed	within
	       one of those fields, each argument will be separated  by	 three
	       null characters.

       --numeric-owner
	       (x mode only) Ignore symbolic user and group names when restor-
	       ing  archives  to disk, only numeric uid	and gid	values will be
	       obeyed.

       -O      (x and t	modes only) In extract (-x) mode, files	will be	 writ-
	       ten  to	standard  out rather than being	extracted to disk.  In
	       list (-t) mode, the file	listing	 will  be  written  to	stderr
	       rather than the usual stdout.

       -o      (x  mode	 only)	Use the	user and group of the user running the
	       program rather than those specified in the archive.  Note  that
	       this  has  no significance unless -p is specified, and the pro-
	       gram is being run by the	root user.  In	this  case,  the  file
	       modes  and flags	from the archive will be restored, but ACLs or
	       owner information in the	archive	will be	discarded.

       --one-file-system
	       (c mode only) Do	not cross mount	points.

       -P      (c, x, and t modes only)	Preserve pathnames.  By	 default,  ab-
	       solute pathnames	(those that begin with a / character) have the
	       leading	slash removed both when	creating archives and extract-
	       ing from	them.  Also, tarsnap will refuse  to  extract  archive
	       entries	whose  pathnames  contain .. or	whose target directory
	       would be	altered	by a symlink.  This  option  suppresses	 these
	       behaviors.

       -p      (x  mode	 only)	Preserve file permissions.  Attempt to restore
	       the full	permissions, including owner, file modes,  file	 flags
	       and  ACLs,  if  available,  for	each  item  extracted from the
	       archive.	 By default, newly-created files are owned by the user
	       running tarsnap,	the file mode is  restored  for	 newly-created
	       regular	files,	and all	other types of entries receive default
	       permissions.  If	tarsnap	is being run by	root, the  default  is
	       to restore the owner unless the -o option is also specified.

       --passphrase method:arg
	       Read the	passphrase using the specified method.

	       dev:tty-stdin
		   Attempt  to	read  the  passphrase  from  /dev/tty; if that
		   fails, read it from stdin.  This is the default behaviour.

	       dev:stdin-once
		   Attempt to read the passphrase from stdin, and do  so  only
		   once	 even  when encrypting.	 This cannot be	used if	infile
		   is also stdin (aka '-').

	       dev:tty-once
		   Attempt to read the passphrase from	/dev/tty,  and	do  so
		   only	once even when encrypting.

	       env:VAR
		   Read	the passphrase from the	environment variable specified
		   by VAR.

		   Storing  a  passphrase  in an environment variable may be a
		   security risk.  Only	use this option	 if  you  are  certain
		   that	you know what you are doing.

	       file:FILENAME
		   Read	the passphrase from the	file specified by FILENAME.

		   Storing  a  passphrase  in  a  file may be a	security risk.
		   Only	use this option	if you are certain that	you know  what
		   you are doing.

       --print-stats
	       (c  and	d  modes  only)	Print statistics for the archive being
	       created (c mode)	or delete (d  mode).   See  "PRINTING  ARCHIVE
	       STATISTICS" below for information on the	output format.

       --progress-bytes	X
	       Display	a  progress  message  (as if generated from SIGUSR1 or
	       SIGINFO)	after processing each X	bytes.	Occurs	at  most  once
	       per file.

       -q (--fast-read)
	       (x and t	modes only) Extract or list only the first archive en-
	       try  that  matches  each	 pattern or filename operand.  Exit as
	       soon as each specified pattern or filename  has	been  matched.
	       By  default,  the archive is always read	to the very end, since
	       there can be multiple entries with the same name	and,  by  con-
	       vention,	 later entries overwrite earlier entries.  This	option
	       is provided as a	performance optimization.

       --quiet
	       Avoid printing some warnings.  Currently	the warnings which are
	       silenced	by this	option are "Removing leading  '/'  ...",  "Not
	       adding  cache  directory	 to archive", "... file	may have grown
	       while being archived", and "Skipping  entry  on	filesystem  of
	       type  ...",  but	 it  is	likely that other warnings will	be si-
	       lenced by this option in	future versions	of tarsnap.

       --resume-extract
	       (x mode only) Don't extract  files  whose  filesize  and	 mtime
	       matches	existing  files	on the disk.  Primarily	used to	resume
	       an archive extraction which was interrupted.  The mtime compar-
	       ison ignores sub-second timestamp precision,  as	 this  is  not
	       supported  on  all  filesystems.	  This differs from -k in that
	       --resume-extract	will overwrite a file if the size or modifica-
	       tion time do not	match, as can  happen  if  tarsnap  is	killed
	       partway through extracting a file.

       --retry-forever
	       This  option  causes tarsnap to continue	trying to reconnect to
	       the tarsnap server forever, instead of  giving  up  after  5-10
	       minutes.	  This may be useful for people	with excessively flaky
	       networks, or on mobile devices which regularly lose  their  in-
	       ternet  connections  for	extended periods of time.  This	is not
	       enabled by default since	continued failures generally  indicate
	       a problem which should be investigated by the user.

       -S      (x  mode	 only) Extract files as	sparse files.  For every block
	       on disk,	check first if it contains any non-NULL	bytes and seek
	       over it otherwise.  This	works similar to the  conv=sparse  op-
	       tion of dd.

       -s pattern
	       Modify  file or archive member names according to pattern.  The
	       pattern has the format /old/new/[gps].  old is a	basic  regular
	       expression.   If	it doesn't apply, the pattern is skipped.  new
	       is the replacement string of the	matched	part.	~  is  substi-
	       tuted  with the match, \1 to \9 with the	contents of the	corre-
	       sponding	captured group.	 The  optional	trailing  g  specifies
	       that  matching  should continue after the matched part and stop
	       on the first unmatched pattern.	The optional trailing s	speci-
	       fies that the pattern applies to	the value of  symbolic	links.
	       The  optional trailing p	specifies that after a successful sub-
	       stitution the original path name	and the	new path  name	should
	       be printed to standard error.

       --snaptime filename
	       (c  mode	 only)	This  option MUST be specified when creating a
	       backup from a filesystem	snapshot, and  filename	 must  have  a
	       modification  time  prior  to  when the filesystem snapshot was
	       created.	 (This is necessary to prevent races between file mod-
	       ification and snapshot creation which could result  in  tarsnap
	       failing to recognize that a file	has been modified.)

       --store-atime
	       (c mode only) Enable the	storing	of file	access times.  The de-
	       fault  behaviour	 of tarsnap is to not store file access	times,
	       since this can cause a  significant  amount  of	bandwidth  and
	       storage	to  be	wasted when the	same set of files are archived
	       several times (e.g., if daily backup archives are created)  due
	       to tarsnap itself accessing files and thereby causing their ac-
	       cess times to be	changed.

       --strip-components count
	       (x  mode	only) Remove the specified number of leading path ele-
	       ments.  Pathnames with fewer elements will be silently skipped.
	       Note that the pathname is edited	after  checking	 inclusion/ex-
	       clusion patterns	but before security checks.

       -T filename
	       (c,  x, and t modes only) In x or t mode, tarsnap will read the
	       list of names to	 be  extracted	from  filename.	  In  c	 mode,
	       tarsnap will read names to be archived from filename.  The spe-
	       cial  name  "-C"	on a line by itself will cause the current di-
	       rectory to be changed to	the directory specified	on the follow-
	       ing line.  Names	are terminated by newlines unless --null-input
	       is specified.  Note that	--null-input also disables the special
	       handling	of lines containing "-C".  If filename is "-" then the
	       list of names will be read from the standard input.  Note:   If
	       you  are	 generating lists of files using find(1), you probably
	       want to use -n as well.

       --totals
	       (c mode only) Print the size of the archive after creating  it.
	       This  option is provided	mainly for compatibility with GNU tar;
	       in most situations the --print-stats option will	 be  far  more
	       useful.

       -U      (x  mode	only) Unlink files before creating them.  Without this
	       option, tarsnap overwrites existing files, which	preserves  ex-
	       isting hardlinks.  With this option, existing hardlinks will be
	       broken,	as  will any symlink that would	affect the location of
	       an extracted file.

       -v      (c, d, t, x, and	list-archives modes only) Produce verbose out-
	       put.  In	create and extract modes, tarsnap will list each  file
	       name  as	 it is read from or written to the archive.  In	delete
	       mode, tarsnap will list the name	 of  each  archive  as	it  is
	       deleted.	  In list mode,	tarsnap	will produce output similar to
	       that of ls(1).  Additional -v options will  provide  additional
	       detail.

       --verify-config
	       Check the configuration file(s) for syntactic errors.

       --version
	       Print version number of tarsnap,	and exit.

       --verylowmem
	       (c mode only) Reduce memory usage, by approximately a factor of
	       2  beyond  the  memory usage when --lowmem is specified,	by not
	       caching anything.

       -w      (c and x	modes only) Ask	for confirmation for every action.

       -X filename
	       (c, x, and t modes only)	Read a list of exclusion patterns from
	       the specified file.  See	--exclude for more  information	 about
	       the handling of exclusions.

SIGNALS
       tarsnap handles the following signals:

       SIGUSR1 & SIGINFO
		On receipt of the SIGUSR1 signal or (on	platforms where	it ex-
		ists)  the  SIGINFO signal, tarsnap prints the current file or
		directory being	processed, and (for files) its progress	within
		the file.  It also prints the number of	files and  the	number
		of  uncompressed  bytes	 processed.   Note that	due to network
		buffering the file position will not align precisely with  how
		much  data  has	 been  sent  to	 or  received from the tarsnap
		server.

       SIGSTOP & SIGTSTP
		On receipt of a	SIGSTOP	or SIGTSTP  signal,  the  kernel  will
		suspend	the tarsnap process.  Upon receiving a SIGCONT signal,
		tarsnap	 will  reconnect to the	server (if necessary) and con-
		tinue the specified task.

       SIGUSR2	On receipt of the SIGUSR2 signal, if tarsnap  is  creating  an
		archive	 (mode	c), it will create a checkpoint	at the current
		position.

       SIGQUIT	On receipt of the SIGQUIT signal, if tarsnap  is  creating  an
		archive	 (mode	c) it will truncate the	archive	at the current
		position and exit (see "INTERRUPTING ARCHIVAL" below).

PRINTING ARCHIVE STATISTICS
       There are four commands which print statistics about archives:

              Global statistics:
		     tarsnap --print-stats

              Global statistics and info about	specific archive(s):
		     tarsnap --print-stats -f archive-name1 [-f	...]

              Global statistics and info about	all archives:
		     tarsnap --print-stats -f '*'

              Global statistics and info about	the archive(s) that were  just
	       created or deleted:
		     tarsnap -c	--print-stats -f archive-name DIR
		     tarsnap -d	--print-stats -f archive-name1 [-f ...]

       tarsnap will print a table in the following format:

					      Total size  Compressed size
       All archives			    104491640436      51510524844
	 (unique data)			     14830618089       7733620463
       This archive			       808723344	289077325
       New data					17858641	  5658308

       In  this	 example,  the combined	size of	all archives stored by tarsnap
       using the same keys is 104 GB, and the combined	size  post-compression
       would be	51 GB; but after removing duplicate blocks, there is only 14.8
       GB  which  is  compressed  down to 7.7 GB.  (It is this 7.7 GB which is
       stored via the Tarsnap service and must thus be paid for.)   The	 newly
       created	archive	 is  808 MB in size (compressible to 289 MB), but only
       17.8 MB of the data is new, and after compression only 5.6  MB  is  up-
       loaded to the Tarsnap server.

       When  tarsnap  --print-stats  is	 executed  as  a command, the table is
       printed to the standard output; when the	--print-stats option  is  used
       while  creating or deleting archives, the table is printed to the stan-
       dard error device.

       Global statistics are calculated	based on the current cache  directory,
       without using the keyfile or querying the Tarsnap servers.

INTERRUPTING ARCHIVAL
       Upon  receipt  of  the  SIGQUIT signal or ^Q, or	if the bandwidth limit
       specified via a --maxbw option is reached, tarsnap will	interrupt  the
       creation	 of  an	archive	and truncate it	at the current position.  When
       an archive is truncated,	it will	be named according to the  user-speci-
       fied  name plus ".part" to denote the fact that it is incomplete.  Such
       a truncated archive may be useful in its	own right, but also offers the
       benefit that future attempts to archive the same	data  will  be	faster
       and use less bandwidth.

FIREWALLS
       tarsnap	communicates  with  the	tarsnap	server via a TCP connection to
       port 9279; in some environments it may be necessary to add  a  firewall
       rule  to	 allow	outgoing TCP connections to this port.	At the present
       time (July 2009)	there is only one IP address in	use  for  the  tarsnap
       server,	so  network  administrators  may wish to hard-code that	IP ad-
       dress; however, it is likely that at some point in the future  that  IP
       address will change and/or other	IP addresses will be added.

ENVIRONMENT
       The following environment variables affect the execution	of tarsnap:

       LANG	  The locale to	use.  See environ(7) for more information.

       TZ	  The  timezone	 to use	when displaying	dates.	See environ(7)
		  for more information.

FILES
       /usr/local/etc/tarsnap.conf
	       The system global tarsnap configuration file.  Parameters spec-
	       ified here only take effect if they are not specified  via  the
	       current	user's	local  configuration  file  or via the command
	       line.

       $XDG_CONFIG_HOME/tarsnap/tarsnap.conf
	       A tarsnap configuration file for	the current user.  If the  en-
	       vironment  variable XDG_CONFIG_HOME is empty, the default value
	       of ~/.config/tarsnap/tarsnap.conf  will	be  used.   Parameters
	       specified  here	take  effect  unless  they  are	 specified via
	       ~/.tarsnaprc or the command line.

       ~/.tarsnaprc
	       Another location	for the	tarsnap	 configuration	file  for  the
	       current	user.	Parameters  specified  here take effect	unless
	       they are	specified via the command line.

EXIT STATUS
       The tarsnap utility exits 0 on success, and >0 if an error occurs.

       An exit code of 2 indicates that	an error has occurred and the  server-
       side state was modified.

EXAMPLES
       Register	with the server	and generate keys:
	     tarsnap-keygen  --keyfile	/usr/tarsnap.key --user	me@example.com
	     --machine myserver

       Perform a backup	of /usr/home and /other/stuff/to/backup:
	     tarsnap --keyfile /usr/tarsnap.key	--cachedir  /usr/tarsnap-cache
	     -c	-f backup-2008-04-24 /usr/home /other/stuff/to/backup

       Perform	another	backup,	a day later; this is much faster since tarsnap
       will avoid storing data which was previously stored:
	     tarsnap --keyfile /usr/tarsnap.key	--cachedir  /usr/tarsnap-cache
	     -c	-f backup-2008-04-25 /usr/home /other/stuff/to/backup

       List the	archives:
	     tarsnap --keyfile /usr/tarsnap.key	--list-archives

       Delete the first	backup,	leaving	the second backup intact:
	     tarsnap  --keyfile	/usr/tarsnap.key --cachedir /usr/tarsnap-cache
	     -d	-f backup-2008-04-24

       List the	files in the remaining backup:
	     tarsnap --keyfile /usr/tarsnap.key	-tv -f backup-2008-04-25

       Restore two users' home directories from	the backup:
	     tarsnap  --keyfile	 /usr/tarsnap.key  -x	-f   backup-2008-04-25
	     usr/home/auser usr/home/anotheruser

       In  /etc/crontab	 to create a backup of the entire system at 10:32 each
       day:
	     32	10 * * * root tarsnap  --keyfile  /usr/tarsnap.key  --cachedir
	     /usr/tarsnap-cache	-c -f backup-`date +\%Y\%m\%d` /

       Note that the --keyfile and --cachedir options can be specified via the
       tarsnap.conf(5)	configuration  file, in	which case they	may be omitted
       from the	command	line.

SECURITY
       Certain security	issues are common to many archiving programs,  includ-
       ing  tarsnap.   In  particular,	carefully-crafted archives can request
       that tarsnap extract files to locations outside of  the	target	direc-
       tory.   This  can potentially be	used to	cause unwitting	users to over-
       write files they	did not	intend to overwrite.  If the archive is	 being
       extracted  by  the superuser, any file on the system can	potentially be
       overwritten.  There are three ways this can happen.   Although  tarsnap
       has mechanisms to protect against each one, savvy users should be aware
       of the implications:

              Archive	entries	 can  have  absolute  pathnames.   By default,
	       tarsnap removes the leading / character from  filenames	before
	       restoring them to guard against this problem.

              Archive	entries	can have pathnames that	include	.. components.
	       By default, tarsnap will	not extract files containing ..	compo-
	       nents in	their pathname.

              Archive entries can exploit symbolic links to restore files  to
	       other  directories.   An	archive	can restore a symbolic link to
	       another directory, then use that	link to	restore	 a  file  into
	       that directory.	To guard against this, tarsnap checks each ex-
	       tracted path for	symlinks.  If the final	path element is	a sym-
	       link,  it  will be removed and replaced with the	archive	entry.
	       If -U is	specified, any intermediate symlink will also  be  un-
	       conditionally  removed.	 If  neither  -U  nor -P is specified,
	       tarsnap will refuse to extract the entry.

       Although	tarsnap	cryptographically signs	archives in such a manner that
       it is believed to be unfeasible for an attacker	to  forge  an  archive
       without having possession of key-file, you may wish to examine the con-
       tents of	archive(s) with
	     tarsnap -t	--keyfile key-file -f archive-name
       before extraction.  Note	that the -P option to tarsnap disables the se-
       curity checks above and allows you to extract an	archive	while preserv-
       ing  any	absolute pathnames, .. components, or symlinks to other	direc-
       tories.

SEE ALSO
       tarsnap-keygen(1), tar(5), tarsnap.conf(5)

HISTORY
       A tar command appeared in Seventh Edition Unix, which was  released  in
       January,	1979.  There have been numerous	other implementations, many of
       which extended the file format.	John Gilmore's pdtar public-domain im-
       plementation  (circa  November, 1987) was quite influential, and	formed
       the basis of GNU	tar.  GNU tar was included as the standard system  tar
       in  FreeBSD  beginning with FreeBSD 1.0,	but was	replaced by Tim	Kient-
       zle's bsdtar utility and	libarchive(3) library in FreeBSD 5.3.

       tarsnap is built	around bsdtar and libarchive(3).

BUGS
       This program follows ISO/IEC 9945-1:1996	("POSIX.1") for	the definition
       of the -l option	to tar(5).  Note that GNU tar prior  to	 version  1.15
       treated -l as a synonym for the --one-file-system option.

       To  archive  a  file called @foo, @@foo,	or -foo	you must specify it as
       ./@foo, ./@@foo,	or ./-foo, respectively.

       In create mode, a leading  ./  is  always  removed.   A	leading	 /  is
       stripped	unless the -P option is	specified.

       Hard  link information may be lost if an	archive	file which is included
       via the @archive-file option is in a non-"tar" format.  (This is	a con-
       sequence	of the incompatible ways that different	archive	formats	 store
       hardlink	information.)

       There  are  alternative long options for	many of	the short options that
       are deliberately	not documented.

       The limit specified by a	--maxbw	option is not  strictly	 enforced;  in
       particular, due to the need to cleanly terminate	an archive, the	amount
       of bandwidth used may slightly exceed the limit.

       If  tarsnap  is	run with standard input, standard output, and standard
       error redirected	and inside a chroot where terminal devices are not ex-
       posed, ^Q will not be mapped to SIGQUIT and will	consequently not trig-
       ger the truncation of the current archive.

FreeBSD	ports 15.0		March 20, 2025			    TARSNAP(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=tarsnap&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help