Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitb2e431a

Browse files
committed
Implement dry-run mode for pg_archivecleanup
In dry-run mode, just the name of the file to be removed is printed tostdout; this is so the user can easily plug it into another programthrough a pipe. If debug mode is also specified, a more verbose messageis printed to stderr.Author: Gabriele BartoliniReviewer: Josh Kupershmidt
1 parent21238de commitb2e431a

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

‎contrib/pg_archivecleanup/pg_archivecleanup.c

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ const char *progname;
3636

3737
/* Options and defaults */
3838
booldebug= false;/* are we debugging? */
39+
booldryrun= false;/* are we performing a dry-run operation? */
3940

4041
char*archiveLocation;/* where to find the archive? */
4142
char*restartWALFileName;/* the file from which we can restart restore */
@@ -119,6 +120,22 @@ CleanupPriorWALFiles(void)
119120
{
120121
snprintf(WALFilePath,MAXPGPATH,"%s/%s",
121122
archiveLocation,xlde->d_name);
123+
124+
if (dryrun)
125+
{
126+
/*
127+
* Prints the name of the file to be removed and skips the
128+
* actual removal. The regular printout is so that the
129+
* user can pipe the output into some other program.
130+
*/
131+
printf("%s\n",WALFilePath);
132+
if (debug)
133+
fprintf(stderr,
134+
"%s: file \"%s\" would be removed\n",
135+
progname,WALFilePath);
136+
continue;
137+
}
138+
122139
if (debug)
123140
fprintf(stderr,"%s: removing file \"%s\"\n",
124141
progname,WALFilePath);
@@ -205,6 +222,7 @@ usage(void)
205222
printf(" %s [OPTION]... ARCHIVELOCATION OLDESTKEPTWALFILE\n",progname);
206223
printf("\nOptions:\n");
207224
printf(" -d generates debug output (verbose mode)\n");
225+
printf(" -n shows the names of the files that would have been removed (dry-run)\n");
208226
printf(" --help show this help, then exit\n");
209227
printf(" --version output version information, then exit\n");
210228
printf("\n"
@@ -241,13 +259,16 @@ main(int argc, char **argv)
241259
}
242260
}
243261

244-
while ((c=getopt(argc,argv,"d"))!=-1)
262+
while ((c=getopt(argc,argv,"dn"))!=-1)
245263
{
246264
switch (c)
247265
{
248266
case'd':/* Debug mode */
249267
debug= true;
250268
break;
269+
case'n':/* Dry-Run mode */
270+
dryrun= true;
271+
break;
251272
default:
252273
fprintf(stderr,"Try \"%s --help\" for more information.\n",progname);
253274
exit(2);

‎doc/src/sgml/pgarchivecleanup.sgml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,15 @@ pg_archivecleanup: removing file "archive/00000001000000370000000E"
9898
</listitem>
9999
</varlistentry>
100100

101+
<varlistentry>
102+
<term><option>-n</option></term>
103+
<listitem>
104+
<para>
105+
Print the names of the files that would have been removed on <filename>stdout</> (performs a dry run).
106+
</para>
107+
</listitem>
108+
</varlistentry>
109+
101110
</variablelist>
102111
</para>
103112

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp