mod_copy
The mod_copy module implements SITE CPFR
and SITE CPTO commands (analogous to RNFR and
RNTO), which can be used to copy files/directories from one place
to another on the server without having to transfer the data to the client and
back.
This module is contained in the mod_copy.c file for
ProFTPD 1.3.x, and is not compiled by default. Installation
instructions are discussed here.
The most current version of mod_copy is distributed with the
ProFTPD source code.
Please contact TJ Saunders <tj at castaglia.org> with any questions, concerns, or suggestions regarding this module.
SITE Commands
<VirtualHost>, <Global>
The CopyEngine directive enables or disables the module's
handling of SITE COPY et al commands. If it is set to
off this module ignores these commands.
<VirtualHost>, <Global>
The CopyOptions directive is used to configure various optional
behavior of mod_copy.
The currently implemented options are:
NoDeleteOnFailure
The mod_copy file, when a copying operation fails, will
delete the destination file by default. If, however, you do
want to keep that destination file when a failure happens, use this option.
SITE command specifies the source file/directory to use
for copying from one place to another directly on the server.
The syntax for SITE CPFR is:
SITE CPFR source-path
See also: SITE CPTO
SITE command specifies the destination file/directory to use
for copying from one place to another directly on the server.
The syntax for SITE CPTO is:
SITE CPTO destination-path
A client wishing to copy a file/directory first sends a SITE CPFR
command, then a SITE CPTO; this is similar to how renames are
handled using RNFR and RNTO.
Use of these SITE command can be controlled via
<Limit> sections, e.g.:
<Limit SITE_COPY>
AllowUser alex
DenyAll
</Limit>
See also: SITE CPFR
Logging
The mod_copy module supports trace logging, via the module-specific log channels:
proftpd.conf:
TraceLog /path/to/ftpd/trace.log Trace copy:20This trace logging can generate large files; it is intended for debugging use only, and should be removed from any production configuration.
mod_copy module is distributed with ProFTPD. Simply follow
the normal steps for using third-party modules in ProFTPD. For including
mod_copy as a staticly linked module:
$ ./configure --with-modules=mod_copyTo build
mod_copy as a DSO module:
$ ./configure --enable-dso --with-shared=mod_copyThen follow the usual steps:
$ make $ make install
For those with an existing ProFTPD installation, you can use the
prxs tool to add mod_copy, as a DSO module, to
your existing server:
$ prxs -c -i -d mod_copy.c