Provided by: sitecopy_0.16.6-14_amd64 bug

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, SFTP, 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 permissions, 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.

       -e, --verify
               Verify stored state of site matches real remote state

       -h, --help
              Display help information.

       -V, --version
              Display version information.

OPTIONS

       -y, --prompting

       -g, --logfile=FILE
               Append debugging messages to FILE (else use stderr)

       -x, --create-remote
               Create root for remote site

       -n, --dry-run
               Display but do not carry out the operation Applicable in Update  Mode  only,  will
              prompt  the  user  for  confirmation  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 performed.

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

       -o, --show-progress
              Applicable in Update Mode only, displays the progress (percentage 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
                sftp      SFTP 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 cleartext 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 | sftp | 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 (S)FTP  protocols  -
       the  protocol  key  specifies  which to use, taking the value of either webdav or ftp/sftp
       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 password 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 specified 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  created  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 appropriate.

       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,  modification 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'  subdirectory  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), sftp(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 Collections Protocol

AUTHOR

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