sitecopy man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

sitecopy(1)			 User Manuals			   sitecopy(1)

NAME
       sitecopy - maintain remote copies of web sites

SYNOPSIS
       sitecopy [options] [operation mode] sitename ...

DESCRIPTION
       sitecopy is for copying locally stored web sites to remote web servers.
       A single command will upload files to the  server  which	 have  changed
       locally,	 and  delete  files  from  the	server which have been removed
       locally, to keep the remote site synchronized with the local site.  The
       aim  is to remove the hassle of uploading and deleting individual files
       using an FTP client.  sitecopy will also optionally try to  spot	 files
       you move locally, and move them remotely.

       FTP,  WebDAV  and  other	 HTTP-based  authoring	servers (for instance,
       AOLserver and Netscape Enterprise) are supported.

GETTING STARTED
       This section covers how to start maintaining a web site using sitecopy.
       After  introducing the basics, two situations are covered: first, where
       you have already upload the site to the remote  server;	second,	 where
       you haven't.  Lastly, normal site maintenance activities are explained.

   Introducing the Basics
       If  you	have  not already done so, you need to create an rcfile, which
       will store information about the sites you wish to administer. You also
       need  to	 create a storage directory, which sitecopy uses to record the
       state of the files on each of the remote sites. The rcfile and  storage
       directory  must	both be accessible only by you - sitecopy will not run
       otherwise.  To create the storage directory with	 the  correct  permis‐
       sions, use the command
	    mkdir -m 700 .sitecopy
       from your home directory. To create the rcfile, use the commands
	    touch .sitecopyrc
	    chmod 600 .sitecopyrc
       from  your  home directory. Once this is done, edit the rcfile to enter
       your site details as shown in the CONFIGURATION section.

   Existing Remote Site
       If you have already uploaded the site to the remote server, ensure your
       local files are synchronized with the remote files. Then, run
	    sitecopy --catchup sitename
       where  sitename is the name of the site you used after the site keyword
       in the rcfile.

       If you do not have a local copy of the remote site, then	 you  can  use
       fetch mode to discover what is on the remote site, and synchronize mode
       to download it. Fetch mode works well for  WebDAV  servers,  and	 might
       work if you're lucky for FTP servers. Run
	    sitecopy --fetch sitename
       to fetch the site - if this succeeds, then run
	    sitecopy --synch sitename
       to  download  a local copy.  Do NOT do this if you already have a local
       copy of your site.

   New Remote Site
       Ensure that the root directory of the site  has	been  created  on  the
       server by the server administrator. Run
	    sitecopy --init sitename
       where  sitename is the name of the site you used after the site keyword
       in the rcfile.

   Site Maintenance
       After setting up the site as given in one of the	 two  above  sections,
       you  can	 now  start  editing your local files as normal. When you have
       finished a set of changes, and you want to update the  remote  copy  of
       the site, run:
	    sitecopy --update sitename
       and all the changed files will be uploaded to the server. Any files you
       delete locally will be deleted remotely too, unless the nodelete option
       is  specified in the rcfile. If you move any files between directories,
       the remote files will be deleted from the server	 then  uploaded	 again
       unless you specify the checkmoved option in the rcfile.

       At any time, if you wish to see what changes you have made to the local
       site since the last update, you can run
	    sitecopy sitename
       which will display the list of differences.

   Synchronization Problems
       In some circumstances, the actual files which make up the  remote  site
       will be different from what sitecopy thinks is on the remote site. This
       can happen, for instance, if the connection to  the  server  is	broken
       during an update. When this situation arises, Fetch Mode should be used
       to fetch the list of files making up the site from the remote server.

INVOCATION
       In normal operation, specify a single operation mode, followed  by  any
       options you choose, then one or more site names. For instance,
	    sitecopy --update --quiet mainsite anothersite
       will quietly update the sites named 'mainsite' and 'anothersite'.

OPERATION MODES
       -l, --list
	      List  Mode  -  produces a listing of all the differences between
	      the local files and the remote copy for the specified sites.

       -ll, --flatlist
	      Flat list Mode - like list mode, except the output  produced  is
	      suitable	for  parsing  by an external script or program. An AWK
	      script, changes.awk.  is provided which produces	an  HTML  page
	      from this mode.

       -u, --update
	      Update Mode - updates the remote copy of the specified sites.

       -f, --fetch
	      Fetch  Mode  - fetches the list of files from the remote server.
	      Note that this mode has only limited support in FTP - the server
	      must accept the MDTM command, and use a Unix-style 'ls' for LIST
	      implementation.

       -s, --synchronize
	      Synchronize Mode - updates the local site from the remote	 copy.
	      WARNING: This mode overwrites local files. Use with care.

       -i, --initialize
	      Initialization  Mode  - initializes the sites specified - making
	      sitecopy think there are NO files on the remote server.

       -c, --catchup
	      Catchup Mode - makes sitecopy think the local  site  is  exactly
	      the same as the remote copy.

       -v, --view
	      View Mode - displays all the site definitions from the rcfile.

       -h, --help
	      Display help information.

       -V, --version
	      Display version information.

OPTIONS
       -y, --prompting
	      Applicable in Update Mode only, will prompt the user for confir‐
	      mation for each update (i.e., creating a directory, uploading  a
	      file etc.).

       -r RCFILE, --rcfile=RCFILE
	      Specify an alternate run control file location.

       -p PATH, --storepath=PATH
	      Specify an alternate location to use for the remote site storage
	      directory.

       -q, --quiet
	      Quiet output - display the filename only for  each  update  per‐
	      formed.

       -qq, --silent
	      Very quiet output - display nothing for each update performed.

       -o, --show-progress
	      Applicable  in Update Mode only, displays the progress (percent‐
	      age complete) of data transfer.

       -k, --keep-going
	      Keep going past errors in Update Mode or Synch Mode

       -a, --allsites
	      Perform the given operation on all sites -  applicable  for  all
	      modes except View Mode, for which it has no effect.

       -d MASK, --debug=KEY[,KEY...]
	      Turns  on	 debugging.  A list of comma-separated keywords should
	      be given. Each keyword may be one of:
		socket	  Socket handling
		files	  File handling
		rcfile	  rcfile parser
		http	  HTTP driver
		httpbody  Display response bodies in HTTP
		ftp	  FTP driver
		xml	  XML parsing information
		xmlparse  Low-level XML parsing information
		httpauth  HTTP authentication information
		cleartext Display passwords in plain text

	      Passwords will be obscured in the debug output unless the clear‐
	      text  keyword  is	 used. An example use of debugging is to debug
	      FTP fetch mode:

		   sitecopy --debug=ftp,socket --fetch sitename

CONCEPTS
       The stored state of a site is the snapshot of the  state	 of  the  site
       saved  into  the	 storage directory (~/.sitecopy/). The storage file is
       used to record this state between invocations. In update mode, sitecopy
       builds  up  a files list for each site by scanning the local directory,
       reading in the stored state, and comparing the two - determining	 which
       files have changed, which have moved, and so on.

CONFIGURATION
       Configuration  is  performed  via  the run control file (rcfile).  This
       file contains a set of site definitions.	 A unique name is assigned  to
       every  site  definition,	 which is used on the command line to refer to
       the site.

       Each site definition contains the details of the	 server	 the  site  is
       stored  on, how the site may be accessed at that server, where the site
       is held locally and remotely, and any other options for the site.

   Site Definition
       A site definition is made up of a series of lines:

       site sitename
	  server server-name
	  remote remote-root-directory
	  local local-root-directory
	[ port port-number ]
	[ username username ]
	[ password password ]
	[ proxy-server proxy-name
	  proxy-port port-number ]
	[ url siteURL ]
	[ protocol { ftp | webdav } ]
	[ ftp nopasv ]
	[ ftp showquit ]
	[ ftp { usecwd | nousecwd } ]
	[ http expect ]
	[ http secure ]
	[ safe ]
	[ state { checksum | timesize } ]
	[ permissions { ignore | exec | all | dir } ]
	[ symlinks { ignore | follow | maintain } ]
	[ nodelete ]
	[ nooverwrite ]
	[ checkmoved [renames] ]
	[ tempupload ]
	[ exclude pattern ]...
	[ ignore pattern ]...
	[ ascii pattern ]...

       Anything after a hash (#) in a line is ignored as  a  comment.	Values
       may be quoted and characters may be backslash-escaped.  For example, to
       use the exclude pattern *#, use the following line:
	    exclude "*#"

   Remote Server Options
       The server key is used to specify the remote server the site is	stored
       on.   This may be either a DNS name or IP address. A connection is made
       to the default port for the protocol used, or that given	 by  the  port
       key.   sitecopy supports the WebDAV or FTP protocols - the protocol key
       specifies which to use, taking  the  value  of  either  webdav  or  ftp
       respectively. By default, FTP will be used.

       The  proxy-server  and  proxy-port  keys may be used to specify a proxy
       server to use. Proxy servers are currently only supported for WebDAV.

       If the FTP server does not support passive (PASV) mode,	then  the  key
       ftp  nopasv  should  be	used.	To display the message returned by the
       server on closing the connection, use the ftp showquit option.  If  the
       server  only supports uploading files in the current working directory,
       use  the	 key  ftp  usecwd  (possible  symptom:	"overwrite  permission
       denied").   Note	 that the remote-directory (keyword remote) must be an
       absolute path (starting with '/'), or usecwd will be ignored.

       If the WebDAV server correctly supports the  100-continue  expectation,
       e.g.  Apache 1.3.9 and later, the key http expect should be used. Doing
       so can save some bandwidth and time in an update.

       If the WebDAV server supports access via SSL, the key http  secure  can
       be  used.   Doing  so will cause the transfers between sitecopy and the
       host to be performed using an secure, encrypted link.  The  first  time
       SSL  is	used to access the server, the user will be prompted to verify
       the SSL certificate, if it's not signed by a CA trusted in the system's
       CA root bundle.

       To  authenticate	 the  user  with the server, the username and password
       keys are used. If it exists, the ~/.netrc will be searched for a	 pass‐
       word if one is not specified. See ftp(1) for the syntax of this file.

       Basic  and  digest  authentication  are supported for WebDAV. Note that
       basic authentication must not be used unless the connection is known to
       be secure.

       The  full  URL that is used to access the site can optionally be speci‐
       fied in the url key. This is used only in flat list mode, so  the  site
       URL  can be inserted in 'Recent Changes' pages. The URL must not have a
       trailing slash; a valid example is
	    url http://www.site.com/mysite

       If the tempupload option is given, new or changed files are upload with
       a  ".in."  prefix,  then	 moved to the true filename when the upload is
       complete.

   File State
       File state is stored in the storage files (~/.sitecopy/*), and is  used
       to  discover  when a file has been changed.  Two methods are supported,
       and can be selected using the  state  option,  with  either  parameter:
       timesize (the default), and checksum.

       timesize	 uses  the  last-modification  date  and  the size of files to
       detect when they have changed.  checksum uses an MD5 checksum to detect
       any changes to the file contents.

       Note  that MD5 checksumming involves reading in the entire file, and is
       slower than simply using the last-modification date and size. It may be
       useful  for instance if a versioning system is in use which updates the
       last-modification date on  a  'checkout',  but  this  doesn't  actually
       change the file contents.

   Safe Mode
       Safe  Mode  is enabled by using the safe key. When enabled, each time a
       file is uploaded to the server, the modification time of the file as on
       the  server  is	recorded.  Subsequently,  whenever  this file has been
       changed locally and is to be uploaded again, the	 current  modification
       time  of	 the  file  on	the server is retrieved, and compared with the
       stored value. If these differ, then the remote copy  of	the  file  has
       been altered by a foreign party.	 A warning message is issued, and your
       local copy of the file will not be uploaded over it, to prevent	losing
       any changes.

       Safe Mode can be used with FTP or WebDAV servers, but if Apache/mod_dav
       is used, mod_dav 0.9.11 or later is required.

       Note Safe mode cannot be	 used  in  conjunction	with  the  nooverwrite
       option (see below).

   File Storage Locations
       The  remote  key specifies the root directory of the remote copy of the
       site.  It may be in the form of an absolute pathname, e.g.
	    remote /www/mysite/
       For FTP, the directory may also be  specified  relative	to  the	 login
       directory, in which case it must be prefixed by "~/", for example:
	    remote ~/public_html/

       The  local  key	specifies  the	directory  in which the site is stored
       locally.	 This may be given relative to your home directory  (as	 given
       by the environment variable $HOME), again using the "~/" prefix.
	    local ~/html/foosite/
	    local /home/fred/html/foosite/
       are equivalent, if $HOME is set to "/home/fred".

       For  both  the local and remote keywords, a trailing slash may be used,
       but is not required.

   File Permissions Handling
       File permissions handling is dictated by the permissions key, which may
       be given one of three values:

       ignore to ignore file permissions completely (the default),

       exec   to mirror the permissions of executable files only,

       all    to mirror the permissions of all files.

       This  can be used, for instance, to ensure the permissions of CGI files
       are set. The option is currently ignored for WebDAV  servers.  For  FTP
       servers, a chmod is performed remotely to set the permissions.

       To handle directory permissions, the key:
	  permissions dir
       may  be	used in addition to a permissions key of either exec, local or
       all.  Note that permissions all does not imply permissions dir.

   Symbolic Link Handling
       Symlinks found in the local site can be either  ignored,	 followed,  or
       maintained. In 'follow' mode, the files references by the symlinks will
       be uploaded in their place. In 'maintain' mode, the link will  be  cre‐
       ated  remotely  as  well, see below for more information. The mode used
       for each site is specified with the symlinks rcfile key, which may take
       the value of ignore, follow or maintain to select the mode as appropri‐
       ate.

       The default mode is follow, i.e. symbolic links found in the local site
       are followed.

   Symbolic link Maintain Mode
       This  mode  is  currently only supported by the WebDAV driver, and will
       work only with servers which  implement	WebDAV	Advanced  Collections,
       which  is  a  work-in-progress. The target of the link on the server is
       literally copied from the target of the	symlink.  Hint:	 you  can  use
       URL's if you like:
	    ln -s "http://www.somewhere.org/" somewherehome

       In  this	 way,  a  "302 Redirect" can be easily set up from the client,
       without having to alter the server configuration.

   Deleting and Moving Remote Files
       The nodelete option may be used to prevent remote files from ever being
       deleted.	 This  may  be useful if you keep large amounts of data on the
       remote server which you do not need to store locally as well.

       If your server does not allow you to upload changed files over existing
       files,  then  you  can  use  the nooverwrite option. When this is used,
       before uploading a changed file, the remote file will be deleted.

       If the checkmoved option is used, sitecopy  will	 look  for  any	 files
       which  have  been moved locally. If any are found, when the remote site
       is updated, the files will be moved remotely.

       If the checkmoved renames option is used, sitecopy will	look  for  any
       files which have been moved or renamed locally. This option may only be
       used in conjunction with the state checksum option.

       WARNING

       If you are not using MD5 checksumming (i.e. the state checksum  option)
       to  determine  file state, do NOT use the checkmoved option if you tend
       to hold files in different directories with identical sizes,  modifica‐
       tion times and names and ever move them about. This seems unlikely, but
       don't say you haven't been warned.

   Excluding Files
       Files may be excluded from the files list by use of  the	 exclude  key,
       which accepts shell-style globbing patterns. For example, use
	    exclude *.bak
	    exclude *~
	    exclude "#*#"
       to  exclude  all	 files which have a .bak extension, end in a tilde (~)
       character, or which begin and end with a a hash. Don't forget to	 quote
       or escape the value if it includes a hash!

       To  exclude certain files within an particular directory, simply prefix
       the pattern with the directory name - including a  leading  slash.  For
       instance:
	    exclude /docs/*.m4
	    exclude /files/*.gz
       which  will exclude all files with the .m4 extension in the 'docs' sub‐
       directory of the site, and all files with  the  .gz  extension  in  the
       files subdirectory.

       An  entire  directory  can  also be excluded - simply use the directory
       name with no trailing slash. For example
	    exclude /foo/bar
	    exclude /where/else
       to exclude the 'foo/bar' and 'where/else' subdirectories of the site.

       Exclude patterns are consulted when scanning the local  directory,  and
       when scanning the remote site during a --fetch.	Any file which matches
       any exclude pattern is not added to the files list.  This means that  a
       file  which  has	 already  been	uploaded by sitecopy, and subsequently
       matches an exclude pattern will be deleted from the server.

   Ignoring Local Changes to Files
       The ignore option is used to instruct  sitecopy	to  ignore  any	 local
       changes	made  to  a  file.  If	a change is made to the contents of an
       ignored file, this file will not be uploaded by	update	mode.  Ignored
       files will be created, moved and deleted as normal.

       The ignore option is used in the same way as the exclude option.

       Note  that  synchronize	mode  will  overwrite  changes made to ignored
       files.

   FTP Transfer Mode
       To specify the FTP transfer mode for files,  use	 the  ascii  key.  Any
       files  which  are transferred using ASCII mode have CRLF/LF translation
       performed appropriately. For example, use
	    ascii *.pl
       to upload all files with the .pl extension as ASCII text.  This key has
       no effect with WebDAV (currently).

RETURN VALUES
       Return  values are specified for different operation modes. If multiple
       sites are specified on the command line, the return value is in respect
       to the last site given.

   Update Mode
	-1 ... update never even started - configuration problem
	 0 ... update was entirely successful.
	 1 ... update went wrong somewhere
	 2 ... could not connect or login to server

   List Mode (default mode of operation)
	-1 ... could not form list - configuration problem
	 0 ... the remote site does not need updating
	 1 ... the remote site needs updating

EXAMPLE RCFILE CONTENTS
   FTP Server, Simple Usage
       Fred's  site  is uploaded to the FTP server 'my.server.com' and held in
       the directory 'public_html', which is in the login directory. The  site
       is stored locally in the directory /home/fred/html.

       site mysite
	 server my.server.com
	 url http://www.server.com/fred
	 username fred
	 password juniper
	 local /home/fred/html/
	 remote ~/public_html/

   FTP Server, Complex Usage
       Here,  Freda's  site is uploaded to the FTP server ´ftp.elsewhere.com´,
       where it is held in the directory /www/freda/. The local site is stored
       in /home/freda/sites/elsewhere/

       site anothersite
	 server ftp.elsewhere.com
	 username freda
	 password blahblahblah
	 local /home/freda/sites/elsewhere/
	 remote /www/freda/
	 # Freda wants files with a .bak extension or a
	 # trailing ~ to be ignored:
	 exclude *.bak
	 exclude *~

   WebDAV Server, Simple Usage
       This example shows use of a WebDAV server.

       site supersite
	 server dav.wow.com
	 protocol webdav
	 username pow
	 password zap
	 local /home/joe/www/super/
	 remote /

FILES
       ~/.sitecopyrc Default run control file location.
       ~/.sitecopy/ Remote site information storage directory
       ~/.netrc Remote server accounts information

BUGS
       Known  problems:	 Fetch + synch modes are NOT reliable for FTP.	If you
       need reliable operation of fetch or synch modes, you shouldn't be using
       sitecopy.  Try rsync instead.

       Please  send  bug  reports  and feature requests to <sitecopy@lyra.org>
       rather than to the author, since the mailing list is archived  and  can
       be a useful resource for others.

SEE ALSO
       rsync(1), ftp(1), mirror(1)

STANDARDS
       [Listed	for reference only, no claim of compliance to any of the below
       standards is made.]

       RFC 959 - File Transfer Protocol (FTP)
       RFC 1521 - Multipurpose Internet Mail Extensions Part One
       RFC 1945 - Hypertext Transfer Protocol -- HTTP/1.0
       RFC 2396 - Uniform Resource Identifiers: Generic Syntax
       RFC 2518 - HTTP Extensions for Distributed Authoring -- WEBDAV
       RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1
       RFC 2617 - HTTP Authentication
       REC-XML - Extensible Markup Language (XML) 1.0
       REC-XML-NAMES - Namespaces in XML

DRAFT STANDARDS
       draft-ietf-ftpext-mlst-05.txt - Extensions to FTP
       draft-ietf-webdav-collections-protocol-03.txt - WebDAV Advanced Collec‐
       tions Protocol

AUTHOR
       Joe Orton and others.
       e-mail: sitecopy@lyra.org
       www: http://www.lyra.org/sitecopy/

sitecopy			   June 2001			   sitecopy(1)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net