<!--
-$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.275 2004/08/08 20:17:33 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.276 2004/08/12 19:03:17 momjian Exp $
-->
<Chapter Id="runtime">
<term><varname>archive_command</varname> (<type>string</type>)</term>
<listitem>
<para>
- The shell command to execute to archive a completed segment of the
- WAL file series. If this is an empty string (which is the default),
- WAL archiving is disabled. Any <literal>%p</> in the string is
- replaced
- by the absolute path of the file to archive, while any <literal>%f</>
- is replaced by the file name only. Write <literal>%%</> if you need
- to embed an actual <literal>%</> character in the command. For more
- information see <xref linkend="backup-archiving-wal">. This option
- can only be set at server start or in the
- <filename>postgresql.conf</filename> file.
+ The shell command to execute to archive a completed segment of
+ the WAL file series. If this is an empty string (the default),
+ WAL archiving is disabled. Any <literal>%p</> in the string is
+ replaced by the absolute path of the file to archive, and any
+ <literal>%f</> is replaced by the file name only. Use
+ <literal>%%</> to embed an actual <literal>%</> character in the
+ command. For more information see <xref
+ linkend="backup-archiving-wal">. This option can only be set at
+ server start or in the <filename>postgresql.conf</filename>
+ file.
+ </para>
+ <para>
+ It is important for the command to return a zero exit status only if
+ it succeeds. Examples:
+<programlisting>
+archive_command = 'cp "%p" /mnt/server/archivedir/"%f"'
+archive_command = 'copy "%p" /mnt/server/archivedir/"%f"' # Win32
+</programlisting>
</para>
</listitem>
</varlistentry>
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.161 2004/08/12 18:34:45 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.162 2004/08/12 19:03:23 momjian Exp $
*
*-------------------------------------------------------------------------
*/
/* %p: full path of target file */
sp++;
StrNCpy(dp, xlogpath, endp-dp);
- /*
- * make_native_path() is required because WIN32 COPY is
- * an internal CMD.EXE command and doesn't process
- * forward slashes in the same way as external commands.
- * Quoting the first argument to COPY does not convert
- * forward to backward slashes, but COPY does properly
- * process quoted forward slashes in the second argument.
- *
- * COPY works with quoted forward slashes in the first argument
- * only if the current directory is the same as the directory
- * of the first argument.
- */
make_native_path(dp);
dp += strlen(dp);
break;
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/postmaster/pgarch.c,v 1.6 2004/08/09 16:26:06 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/postmaster/pgarch.c,v 1.7 2004/08/12 19:03:34 momjian Exp $
*
*-------------------------------------------------------------------------
*/
/* %p: full path of source file */
sp++;
StrNCpy(dp, pathname, endp-dp);
-#ifndef WIN32
+ make_native_path(dp);
dp += strlen(dp);
-#else
- /* On Windows, change / to \ in the substituted path */
- while (*dp)
- {
- if (*dp == '/')
- *dp = '\\';
- dp++;
- }
-#endif
break;
case 'f':
/* %f: filename of source file */
# - Archiving -
#archive_command = '' # command to use to archive a logfile segment
-#
-# If archive_command is '' then archiving is disabled. Otherwise, set it
-# to a command to copy a file to the proper place. Any %p in the string
-# is replaced by the absolute path of the file to archive, while any %f is
-# replaced by the file name only. NOTE: it is important for the command to
-# return zero exit status only if it succeeds.
-#
-# Examples:
-# archive_command = 'cp "%p" /mnt/server/archivedir/"%f"'
-# archive_command = 'copy "%p" /mnt/server/archivedir/"%f"' # Win32
#---------------------------------------------------------------------------
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/port/path.c,v 1.28 2004/08/12 18:32:52 momjian Exp $
+ * $PostgreSQL: pgsql/src/port/path.c,v 1.29 2004/08/12 19:03:44 momjian Exp $
*
*-------------------------------------------------------------------------
*/
/*
- * make_native_path
- * On WIN32, change / to \ in the path.
+ * make_native_path - on WIN32, change / to \ in the path
+ *
+ * This is required because WIN32 COPY is an internal CMD.EXE
+ * command and doesn't process forward slashes in the same way
+ * as external commands. Quoting the first argument to COPY
+ * does not convert forward to backward slashes, but COPY does
+ * properly process quoted forward slashes in the second argument.
+ *
+ * COPY works with quoted forward slashes in the first argument
+ * only if the current directory is the same as the directory
+ * of the first argument.
*/
void
make_native_path(char *filename)