diff options
author | Tony Asleson <tasleson@redhat.com> | 2013-10-21 13:13:18 -0400 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2013-10-21 13:13:53 -0400 |
commit | 13a454a56040af9146c232760993e35f2b0e1ec4 (patch) | |
tree | 72dd17015491e2e46b483c21ad6bc653a5aed942 | |
parent | 610e8a05ecadf2d46cf2ed4c64ee5ce332117f6a (diff) | |
download | nfs-utils-13a454a56040af9146c232760993e35f2b0e1ec4.tar.gz nfs-utils-13a454a56040af9146c232760993e35f2b0e1ec4.tar.xz nfs-utils-13a454a56040af9146c232760993e35f2b0e1ec4.zip |
exportfs: Add -s option.
Adds '-s' option which outputs the current exports in a format
suitable for /etc/exports.
Signed-off-by: Tony Asleson <tasleson@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-rw-r--r-- | utils/exportfs/exportfs.c | 23 | ||||
-rw-r--r-- | utils/exportfs/exportfs.man | 7 |
2 files changed, 20 insertions, 10 deletions
diff --git a/utils/exportfs/exportfs.c b/utils/exportfs/exportfs.c index 4331697..52fc03d 100644 --- a/utils/exportfs/exportfs.c +++ b/utils/exportfs/exportfs.c @@ -38,7 +38,7 @@ static void export_all(int verbose); static void exportfs(char *arg, char *options, int verbose); static void unexportfs(char *arg, int verbose); static void exports_update(int verbose); -static void dump(int verbose); +static void dump(int verbose, int export_format); static void error(nfs_export *exp, int err); static void usage(const char *progname, int n); static void validate_export(nfs_export *exp); @@ -88,6 +88,7 @@ main(int argc, char **argv) int f_export = 1; int f_all = 0; int f_verbose = 0; + int f_export_format = 0; int f_reexport = 0; int f_ignore = 0; int i, c; @@ -105,7 +106,7 @@ main(int argc, char **argv) export_errno = 0; - while ((c = getopt(argc, argv, "afhio:ruv")) != EOF) { + while ((c = getopt(argc, argv, "afhio:ruvs")) != EOF) { switch(c) { case 'a': f_all = 1; @@ -132,6 +133,9 @@ main(int argc, char **argv) case 'v': f_verbose = 1; break; + case 's': + f_export_format = 1; + break; default: usage(progname, 1); break; @@ -164,7 +168,7 @@ main(int argc, char **argv) return 0; } else { xtab_export_read(); - dump(f_verbose); + dump(f_verbose, f_export_format); return 0; } } @@ -634,7 +638,7 @@ dumpopt(char c, char *fmt, ...) } static void -dump(int verbose) +dump(int verbose, int export_format) { nfs_export *exp; struct exportent *ep; @@ -647,14 +651,15 @@ dump(int verbose) if (!exp->m_xtabent) continue; /* neilb */ if (htype == MCL_ANONYMOUS) - hname = "<world>"; + hname = (export_format) ? "*" : "<world>"; else hname = ep->e_hostname; - if (strlen(ep->e_path) > 14) + if (strlen(ep->e_path) > 14 && !export_format) printf("%-14s\n\t\t%s", ep->e_path, hname); else - printf("%-14s\t%s", ep->e_path, hname); - if (!verbose) { + printf(((export_format)? "%s %s" : "%-14s\t%s"), ep->e_path, hname); + + if (!verbose && !export_format) { printf("\n"); continue; } @@ -728,6 +733,6 @@ error(nfs_export *exp, int err) static void usage(const char *progname, int n) { - fprintf(stderr, "usage: %s [-afhioruv] [host:/path]\n", progname); + fprintf(stderr, "usage: %s [-afhioruvs] [host:/path]\n", progname); exit(n); } diff --git a/utils/exportfs/exportfs.man b/utils/exportfs/exportfs.man index 8853486..d481645 100644 --- a/utils/exportfs/exportfs.man +++ b/utils/exportfs/exportfs.man @@ -3,7 +3,7 @@ .\" Copyright (C) 1995 Olaf Kirch <okir@monad.swb.de> .\" Modifications 1999-2003 Neil Brown <neilb@cse.unsw.edu.au> .\" -.TH exportfs 8 "31 December 2009" +.TH exportfs 8 "30 September 2013" .SH NAME exportfs \- maintain table of exported NFS file systems .SH SYNOPSIS @@ -17,6 +17,8 @@ exportfs \- maintain table of exported NFS file systems .br .BI "/usr/sbin/exportfs -f" .br +.BI "/usr/sbin/exportfs -s" +.br .SH DESCRIPTION An NFS server maintains a table of local physical file systems that are accessible to NFS clients. @@ -133,6 +135,9 @@ when they make their next NFS mount request. Be verbose. When exporting or unexporting, show what's going on. When displaying the current export list, also display the list of export options. +.TP +.B -s +Display the current export list suitable for /etc/exports. .SH DISCUSSION .SS Exporting Directories The first synopsis shows how to invoke |