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

FreeBSD Manual Pages

  
 
  

home | help
CPDUP(1)		  BSD General Commands Manual		      CPDUP(1)

NAME
     cpdup -- mirror filesystems

SYNOPSIS
     cpdup [-C]	[-v[vv..]] [-u]	[-I] [-f] [-s0]	[-i0] [-j0] [-l] [-p number]
	   [-q]	[-o] [-m] [-H path] [-M	file] [-V] [-S]	[-k] [-K file] [-X
	   file] [-x] [[user@]host:]source_dir [[user@]host:]target_dir

DESCRIPTION
     The cpdup utility makes an	exact mirror copy of the source	in the desti-
     nation, creating and deleting files and directories as necessary.
     UTimes, hardlinks,	softlinks, devices, permissions, and flags are mir-
     rored.  By	default, cpdup asks for	confirmation if	any file or directory
     needs to be removed from the destination and does not copy	files which it
     believes to have already been synchronized	(by observing that the source
     and destination file's size and mtimes match).  cpdup does	not cross
     mount points in either the	source or the destination.  As a safety	mea-
     sure, cpdup refuses to replace a destination directory with a file.

     The following options are available:

     -C	   If the source or target is a	remote host request that the ssh(1)
	   session be compressed.

     -v[vv]
	   Set verboseness.  By	default	cpdup does not report its progress ex-
	   cept	when asking for	confirmation.  A single	-v will	only report
	   modifications made to the destination.  -vv will report directories
	   as they are being traversed as well as modifications	made to	the
	   destination.	 -vvv will cause all files and directories to be re-
	   ported whether or not modifications are made.

     -u	   Causes the ouptut generated by -v[vv] to be unbuffered.  This can
	   be useful for obtaining prompt progress updates through a pipe.

     -I	   will	cause cpdup to print a summary at the end with performance
	   counter.

     -f	   Forces file updates to occur	even if	the files appear to be the
	   same.  If the -H option is used, this option	will force a byte for
	   byte	comparison between the original	file and the file in the
	   hardlink path, even if all the stat info matches, but will still
	   use a hardlink if they match.

     -s0   Disable the disallow-file-replaces-directory	safety feature.	 This
	   safety feature is enabled by	default	to prevent user	mistakes from
	   blowing away	everything accidentally.

     -i0   Do not request confirmation when removing something.

     -j0   Do not try to recreate CHR or BLK devices.

     -l	   Line	buffer verbose output.

     -p	number
	   Use threaded	transactions with up to	the specified number of
	   threads.  This typically improves operation when a remote host
	   specification is given.

     -q	   Quiet operation

     -o	   Do not remove any files, just overwrite/add.

     -m	   Generate and	maintain a MD5 checkfile in each directory on the
	   source and do an MD5	check on each file of the destination when the
	   destination appears to be the same as the source.  If the check
	   fails, cpdup	the source is recopied to the destination.  When you
	   specify a destination directory the MD5 checkfile is	only updated
	   as needed and may not be updated even if modifications are made to
	   a source file.  If you do not specify a destination directory the
	   cpdup command forcefully regenerates	the MD5	checkfile for every
	   file	in the source.

     -H	path
	   cpdup will create a hardlink	from a file found under	path to	the
	   target instead of copying the source	to the target if the file
	   found via path is identical to the source.  Note that a remote host
	   specification should	not be used for	this option's path, but	the
	   path	will be	relative to the	target machine.

	   This	allows one to use cpdup	to create incremental backups of a
	   filesystem.	Create a direct	'level 0' backup, and then specify the
	   level 0 backup path with this option	when creating an incremental
	   backup to a different target	directory.  This method	works so long
	   as the filesystem does not hit a hardlink limit.  If	the system
	   does	hit a hardlink limit cpdup will	generate a warning and copy
	   the file instead.  Note that	cpdup must record file paths for any
	   hardlinked file while operating and therefore uses a	great deal
	   more	memory when dealing with hardlinks or hardlink-based backups.
	   Example use:

		 cpdup -i0 -s0 -I -H /backup/home.l0 /home /backup/home.l1

	   WARNING: If this option is used cpdup must record the paths for all
	   files it encounters while it	operates and it	is possible that you
	   may run the process out of memory.

	   The file found vi the hardlink path will be byte-by-byte compared
	   with	the source if the -V or	-f option is also used,	otherwise only
	   the stat info is checked to determine whether it matches the
	   source.

     -M	file
	   Works the same as -m	but allows you to specify the name of the MD5
	   checkfile.

     -V	   This	forces the contents of regular files to	be verified, even if
	   the files appear to the be the same.	 Whereas the -f	(force)	option
	   forces a copy regardless, this option will avoid rewriting the tar-
	   get if everything matches and the contents are verified to be the
	   same.

     -S	   This	places cpdup into slave	mode and is used to initiate the slave
	   protocol on a remote	machine.

     -k	   Generate and	maintain a FSMID checkfile called .FSMID.CHECK in each
	   directory on	the target.  cpdup will	check the FSMID	for each
	   source file or directory against the	checkfile on the target	and
	   will	not copy the file or recurse through the directory when	a
	   match occurs.  Any source file or directory with the	same name as
	   the checkfile will be ignored.  The FSMID will be re-checked	after
	   the copy has	been completed and cpdup will loop on that directory
	   or file until it is sure it has an exact copy.

	   Warning: FSMID is not always	supported by a filesystem and may not
	   be synchronized if a	crash occurs.  DragonFly will simulate an FS-
	   MID when it is otherwise not	supported by the filesystem, and users
	   should be aware that	simulated FSMIDs may change state in such
	   cases even if the underlying	hierarchy does not due to cache
	   flushes.  Additionally, the FSMID may not reflect changes made to
	   remote filesystems by other hosts.  For example, using these	op-
	   tions with NFS mounted sources will not work	well.

     -K	file
	   Works the same as -k	but allows you to specify the name of the FS-
	   MID checkfile.

     -x	   Causes cpdup	to use the exclusion file ".cpignore" in each direc-
	   tory	on the source to determine which files to ignore.  When	this
	   option is used, the exclusion filename itself is automatically ex-
	   cluded from the copy.  If this option is not	used then the filename
	   ".cpignore" is not considered special and will be copied along with
	   everything else.

     -X	file
	   Works the same as -x	but allows you to specify the name of the ex-
	   clusion file.  This file is automatically excluded from the copy.
	   Only	one exclusion file may be specified.

REMOTE COPYING
     cpdup can mirror directory	structures across machines and can also	do
     third-party copies.  ssh(1) sessions are used and cpdup is	run on the re-
     mote machine(s) in	slave mode.

DIAGNOSTICS
     The cpdup utility exits 0 if no error occurred and	>0 if an error oc-
     curred.

SEE ALSO
     cp(1), cpio(1), tar(1)

HISTORY
     The cpdup command was originally created to update	servers	at BEST	Inter-
     net circa 1997 and	was placed under the FreeBSD copyright for inclusion
     in	the ports area in 1999.	 The program was written by Matthew Dillon and
     Dima Ruban.

BUGS
     UFS(5) has	a hardlink limit of 32767.  Many programs, in particular CVS
     with regards to its CVS/Root file,	will generate a	lot of hard links.
     When using	the -H option it may not be possible for cpdup to maintain
     these hard	links.	If this	occurs cpdup will be forced to copy the	file
     instead of	link it, and thus not be able to make a	perfect	copy of	the
     filesystem.

BSD				April 11, 2008				   BSD

NAME | SYNOPSIS | DESCRIPTION | REMOTE COPYING | DIAGNOSTICS | SEE ALSO | HISTORY | BUGS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=cpdup&manpath=FreeBSD+7.2-RELEASE+and+Ports>

home | help