diff options
-rw-r--r-- | sbin/dump/dump.8 | 59 | ||||
-rw-r--r-- | sbin/dump/main.c | 34 | ||||
-rw-r--r-- | sbin/ping/ping.8 | 80 | ||||
-rw-r--r-- | sbin/ping/ping.c | 80 | ||||
-rw-r--r-- | sbin/tunefs/tunefs.8 | 6 | ||||
-rw-r--r-- | sbin/tunefs/tunefs.c | 38 |
6 files changed, 158 insertions, 139 deletions
diff --git a/sbin/dump/dump.8 b/sbin/dump/dump.8 index 424e4b3..350792d 100644 --- a/sbin/dump/dump.8 +++ b/sbin/dump/dump.8 @@ -45,8 +45,8 @@ .Op Fl 0123456789ackLnSu .Op Fl B Ar records .Op Fl b Ar blocksize -.Op Fl D Ar dumpdates .Op Fl C Ar cachesize +.Op Fl D Ar dumpdates .Op Fl d Ar density .Op Fl f Ar file .Op Fl h Ar level @@ -80,7 +80,8 @@ option below for doing remote backups). A dump that is larger than the output medium is broken into multiple volumes. On most media the size is determined by writing until an -end-of-media indication is returned. This can be enforced +end-of-media indication is returned. +This can be enforced by using the .Fl a option. @@ -103,7 +104,7 @@ as either its device-special file or its mount point The following options are supported by .Nm : .Bl -tag -width Ds -.It Fl 0\-9 +.It Fl 0-9 Dump levels. A level 0, full backup, guarantees the entire file system is copied @@ -119,8 +120,9 @@ The default level is 0. .It Fl a .Dq auto-size . Bypass all tape length considerations, and enforce writing -until an end-of-media indication is returned. This fits best -for most modern tape drives. Use of this option is particularly +until an end-of-media indication is returned. +This fits best for most modern tape drives. +Use of this option is particularly recommended when appending to an existing tape, or using a tape drive with hardware compression (where you can never be sure about the compression ratio). @@ -132,8 +134,24 @@ This option overrides the calculation of tape size based on length and density. .It Fl b Ar blocksize The number of kilobytes per output block, except that if it is -larger than 64, the command uses 64. (See the BUGS section.) +larger than 64, the command uses 64. +(See the +.Sx BUGS +section.) The default block size is 10. +.It Fl C Ar cachesize +Specify the cache size in megabytes. +This will greatly improve performance +at the cost of +.Nm +possibly not noticing changes in the file system between passes. +It is +recommended that you always use this option when dumping a snapshot. +Beware that +.Nm +forks, and the actual memory use may be larger than the specified cache +size. +The recommended cache size is between 8 and 32 (megabytes). .It Fl c Change the defaults for use with a cartridge tape drive, with a density of 8000 bpi, and a length of 1700 feet. @@ -143,16 +161,6 @@ Specify an alternate path to the file. The default is .Pa /etc/dumpdates . -.It Fl C Ar cachesize -Specify the cache size in megabytes. This will greatly improve performance -at the cost of -.Nm -possibly not noticing changes in the filesystem between passes. It is -recommended that you always use this option when dumping a snapshot. -Beware that -.Nm -forks, and the actual memory use may be larger then the specified cache -size. The recommended cache size is between 8 and 32 (megabytes). .It Fl d Ar density Set tape density to .Ar density . @@ -201,7 +209,8 @@ The default honor level is 1, so that incremental backups omit such files but full backups retain them. .It Fl k -Use Kerberos authentication to talk to remote tape servers. (Only +Use Kerberos authentication to talk to remote tape servers. +(Only available if this option was enabled when .Nm was compiled.) @@ -222,6 +231,9 @@ notify all operators in the group .Dq operator by means similar to a .Xr wall 1 . +.It Fl S +Display an estimate of the backup size and the number of +tapes required, and exit without actually performing the dump. .It Fl s Ar feet Attempt to calculate the amount of tape needed at a particular density. @@ -230,9 +242,6 @@ If this amount is exceeded, prompts for a new tape. It is recommended to be a bit conservative on this option. The default tape length is 2300 feet. -.It Fl S -Display an estimate of the backup size and the number of -tapes required, and exit without actually performing the dump. .It Fl T Ar date Use the specified date as the starting time for the dump instead of the time determined from looking in @@ -299,7 +308,9 @@ option is set, all other options are ignored, and .Nm exits immediately. .It Fl w -Is like W, but prints only those file systems which need to be dumped. +Is like +.Fl W , +but prints only those file systems which need to be dumped. .El .Pp Directories and regular files which have their @@ -442,7 +453,8 @@ is written. .Pp Currently, .Xr physio 9 -slices all requests into chunks of 64 KB. Therefore, it is +slices all requests into chunks of 64 KB. +Therefore, it is impossible to use a larger output block size, so .Nm will prevent this from happening. @@ -472,7 +484,8 @@ for the operator running The .Nm utility cannot do remote backups without being run as root, due to its -security history. This will be fixed in a later version of +security history. +This will be fixed in a later version of .Fx . Presently, it works if you set it setuid (like it used to be), but this might constitute a security risk. diff --git a/sbin/dump/main.c b/sbin/dump/main.c index 6784b55..b540383 100644 --- a/sbin/dump/main.c +++ b/sbin/dump/main.c @@ -128,9 +128,9 @@ main(int argc, char *argv[]) obsolete(&argc, &argv); #ifdef KERBEROS -#define optstring "0123456789aB:b:cd:f:h:kLns:ST:uWwD:C:" +#define optstring "0123456789aB:b:C:cD:d:f:h:kLnSs:T:uWw" #else -#define optstring "0123456789aB:b:cd:f:h:Lns:ST:uWwD:C:" +#define optstring "0123456789aB:b:C:cD:d:f:h:LnSs:T:uWw" #endif while ((ch = getopt(argc, argv, optstring)) != -1) #undef optstring @@ -155,10 +155,18 @@ main(int argc, char *argv[]) 1L, 1000L); break; + case 'C': + cachesize = numarg("cachesize", 0, 0) * 1024 * 1024; + break; + case 'c': /* Tape is cart. not 9-track */ cartridge = 1; break; + case 'D': + dumpdates = optarg; + break; + case 'd': /* density, in bits per inch */ density = numarg("density", 10L, 327670L) / 10; if (density >= 625 && !bflag) @@ -169,14 +177,6 @@ main(int argc, char *argv[]) tape = optarg; break; - case 'D': - dumpdates = optarg; - break; - - case 'C': - cachesize = numarg("cachesize", 0, 0) * 1024 * 1024; - break; - case 'h': honorlevel = numarg("honor level", 0L, 10L); break; @@ -195,14 +195,14 @@ main(int argc, char *argv[]) notify = 1; break; - case 's': /* tape size, feet */ - tsize = numarg("tape size", 1L, 0L) * 12 * 10; - break; - case 'S': /* exit after estimating # of tapes */ just_estimate = 1; break; + case 's': /* tape size, feet */ + tsize = numarg("tape size", 1L, 0L) * 12 * 10; + break; + case 'T': /* time of last dump */ spcl.c_ddate = unctime(optarg); if (spcl.c_ddate < 0) { @@ -576,9 +576,9 @@ usage(void) #ifdef KERBEROS "k" #endif - "nSu] [-B records] [-b blocksize] [-D dumpdates]\n" - " [-d density] [-f file] [-h level] [-s feet]\n" - " [-T date] [-C cachesizeMB] filesystem\n" + "LnSu] [-B records] [-b blocksize] [-C cachesize]\n" + " [-D dumpdates] [-d density] [-f file] [-h level] [-s feet]\n" + " [-T date] filesystem\n" " dump -W | -w\n"); exit(X_STARTUP); } diff --git a/sbin/ping/ping.8 b/sbin/ping/ping.8 index 5efdcdf..eae6b1e 100644 --- a/sbin/ping/ping.8 +++ b/sbin/ping/ping.8 @@ -42,24 +42,22 @@ packets to network hosts .Sh SYNOPSIS .Nm -.Op Fl ADQRadfMnoqrv +.Op Fl AaDdfMnoQqRrv .Op Fl c Ar count .Op Fl i Ar wait .Op Fl l Ar preload .Op Fl m Ar ttl -.Op Fl p Ar pattern .Op Fl P Ar policy -.Op Fl s Ar packetsize +.Op Fl p Ar pattern .Op Fl S Ar src_addr +.Op Fl s Ar packetsize .Op Fl t Ar timeout .Op Fl z Ar tos -.Bo .Ar host | .Op Fl L .Op Fl I Ar interface .Op Fl T Ar ttl .Ar mcast-group -.Bc .Sh DESCRIPTION The .Nm @@ -79,7 +77,8 @@ header, followed by a .Dq struct timeval and then an arbitrary number of .Dq pad -bytes used to fill out the packet. The options are as follows: +bytes used to fill out the packet. +The options are as follows: .Bl -tag -width indent .It Fl A Audible. @@ -108,12 +107,12 @@ packets. If this option is not specified, .Nm will operate until interrupted. +.It Fl D +Set the Don't Fragment bit. .It Fl d Set the .Dv SO_DEBUG option on the socket being used. -.It Fl D -Set the Don't Fragment bit. .It Fl f Flood ping. Outputs packets as fast as they come back or one hundred times per second, @@ -130,6 +129,9 @@ Only the super-user may use this option. .Bf -emphasis This can be very hard on a network and should be used with caution. .Ef +.It Fl I Ar interface +Source multicast packets with the given interface address. +This flag only applies if the ping destination is a multicast address. .It Fl i Ar wait Wait .Ar wait @@ -141,8 +143,8 @@ values less than 1 second. This option is incompatible with the .Fl f option. -.It Fl I Ar interface -Source multicast packets with the given interface address. +.It Fl L +Suppress loopback of multicast packets. This flag only applies if the ping destination is a multicast address. .It Fl l Ar preload If @@ -152,24 +154,33 @@ is specified, sends that many packets as fast as possible before falling into its normal mode of behavior. Only the super-user may use this option. -.It Fl L -Suppress loopback of multicast packets. -This flag only applies if the ping destination is a multicast address. +.It Fl M +Use +.Dv ICMP_MASKREQ +instead of +.Dv ICMP_ECHO . +Print the netmask of the remote machine. +Set the +.Va net.inet.icmp.maskrepl +MIB variable to enable +.Dv ICMP_MASKREPLY . .It Fl m Ar ttl Set the IP Time To Live for outgoing packets. If not specified, the kernel uses the value of the .Va net.inet.ip.ttl MIB variable. -.It Fl M -Use ICMP_MASKREQ instead of ICMP_ECHO. Print the netmask of the remote -machine. Set the -.Va net.inet.icmp.maskrepl -MIB variable to enable ICMP_MASKREPLY. .It Fl n Numeric output only. No attempt will be made to lookup symbolic names for host addresses. .It Fl o Exit successfully after receiving one reply packet. +.It Fl P Ar policy +.Ar policy +specifies IPsec policy for the ping session. +For details please refer to +.Xr ipsec 4 +and +.Xr ipsec_set_policy 3 . .It Fl p Ar pattern You may specify up to 16 .Dq pad @@ -179,13 +190,6 @@ For example, .Dq Li \-p ff will cause the sent packet to be filled with all ones. -.It Fl P Ar policy -.Ar policy -specifies IPsec policy for the ping session. -For details please refer to -.Xr ipsec 4 -and -.Xr ipsec_set_policy 3 . .It Fl Q Somewhat quiet output. .No Don Ap t @@ -194,8 +198,9 @@ Originally, the .Fl v flag was required to display such errors, but .Fl v -displays all ICMP error messages. On a busy machine, this output can -be overbearing. Without the +displays all ICMP error messages. +On a busy machine, this output can be overbearing. +Without the .Fl Q flag, .Nm @@ -232,6 +237,14 @@ This option can be used to ping a local host through an interface that has no route through it (e.g., after the interface was dropped by .Xr routed 8 ) . +.It Fl S Ar src_addr +Use the following IP address as the source address in outgoing packets. +On hosts with more than one IP address, this option can be used to +force the source address to be something other than the IP address +of the interface the probe packet is sent on. +If the IP address +is not one of this machine's interface addresses, an error is +returned and nothing is sent. .It Fl s Ar packetsize Specify the number of data bytes to be sent. The default is 56, which translates into 64 @@ -241,19 +254,12 @@ with the 8 bytes of .Tn ICMP header data. Only the super-user may specify values more than default. -.It Fl S Ar src_addr -Use the following IP address as the source address in outgoing packets. -On hosts with more than one IP address, this option can be used to -force the source address to be something other than the IP address -of the interface the probe packet is sent on. If the IP address -is not one of this machine's interface addresses, an error is -returned and nothing is sent. -.It Fl t Ar timeout -Specify a timeout, in seconds, before ping exits regardless of how -many packets have been received. .It Fl T Ar ttl Set the IP Time To Live for multicasted packets. This flag only applies if the ping destination is a multicast address. +.It Fl t Ar timeout +Specify a timeout, in seconds, before ping exits regardless of how +many packets have been received. .It Fl v Verbose output. .Tn ICMP diff --git a/sbin/ping/ping.c b/sbin/ping/ping.c index a1f2450..593ab20 100644 --- a/sbin/ping/ping.c +++ b/sbin/ping/ping.c @@ -250,7 +250,7 @@ main(argc, argv) outpack = outpackhdr + sizeof(struct ip); while ((ch = getopt(argc, argv, - "ADI:LQRS:T:c:adfi:l:m:Mnop:qrs:t:vz:" + "Aac:DdfI:i:Ll:Mm:nop:QqRrS:s:T:t:vz:" #ifdef IPSEC #ifdef IPSEC_POLICY_IPSEC "P:" @@ -288,6 +288,13 @@ main(argc, argv) options |= F_FLOOD; setbuf(stdout, (char *)NULL); break; + case 'I': /* multicast interface */ + if (inet_aton(optarg, &ifaddr) == 0) + errx(EX_USAGE, + "invalid multicast interface: `%s'", + optarg); + options |= F_MIF; + break; case 'i': /* wait between sending packets */ t = strtod(optarg, &ep) * 1000.0; if (*ep || ep == optarg || t > (double)INT_MAX) @@ -300,12 +307,9 @@ main(argc, argv) err(EX_NOPERM, "-i interval too short"); } break; - case 'I': /* multicast interface */ - if (inet_aton(optarg, &ifaddr) == 0) - errx(EX_USAGE, - "invalid multicast interface: `%s'", - optarg); - options |= F_MIF; + case 'L': + options |= F_NOLOOP; + loop = 0; break; case 'l': ultmp = strtoul(optarg, &ep, 0); @@ -318,9 +322,8 @@ main(argc, argv) } preload = ultmp; break; - case 'L': - options |= F_NOLOOP; - loop = 0; + case 'M': + options |= F_MASK; break; case 'm': /* TTL */ ultmp = strtoul(optarg, &ep, 0); @@ -329,15 +332,25 @@ main(argc, argv) ttl = ultmp; options |= F_TTL; break; - case 'M': - options |= F_MASK; - break; case 'n': options |= F_NUMERIC; break; case 'o': options |= F_ONCE; break; +#ifdef IPSEC +#ifdef IPSEC_POLICY_IPSEC + case 'P': + options |= F_POLICY; + if (!strncmp("in", optarg, 2)) + policy_in = strdup(optarg); + else if (!strncmp("out", optarg, 3)) + policy_out = strdup(optarg); + else + errx(1, "invalid security policy"); + break; +#endif /*IPSEC_POLICY_IPSEC*/ +#endif /*IPSEC*/ case 'p': /* fill buffer with user pattern */ options |= F_PINGFILLED; payload = optarg; @@ -354,6 +367,9 @@ main(argc, argv) case 'r': options |= F_SO_DONTROUTE; break; + case 'S': + source = optarg; + break; case 's': /* size of packet to send */ ultmp = strtoul(optarg, &ep, 0); if (*ep || ep == optarg) @@ -367,8 +383,13 @@ main(argc, argv) } datalen = ultmp; break; - case 'S': - source = optarg; + case 'T': /* multicast TTL */ + ultmp = strtoul(optarg, &ep, 0); + if (*ep || ep == optarg || ultmp > MAXTTL) + errx(EX_USAGE, "invalid multicast TTL: `%s'", + optarg); + mttl = ultmp; + options |= F_MTTL; break; case 't': alarmtimeout = strtoul(optarg, &ep, 0); @@ -380,28 +401,9 @@ main(argc, argv) optarg, MAXALARM); alarm((int)alarmtimeout); break; - case 'T': /* multicast TTL */ - ultmp = strtoul(optarg, &ep, 0); - if (*ep || ep == optarg || ultmp > MAXTTL) - errx(EX_USAGE, "invalid multicast TTL: `%s'", - optarg); - mttl = ultmp; - options |= F_MTTL; - break; case 'v': options |= F_VERBOSE; break; -#ifdef IPSEC -#ifdef IPSEC_POLICY_IPSEC - case 'P': - options |= F_POLICY; - if (!strncmp("in", optarg, 2)) - policy_in = strdup(optarg); - else if (!strncmp("out", optarg, 3)) - policy_out = strdup(optarg); - else - errx(1, "invalid security policy"); - break; case 'z': options |= F_HDRINCL; ultmp = strtoul(optarg, &ep, 0); @@ -409,8 +411,6 @@ main(argc, argv) errx(EX_USAGE, "invalid TOS: `%s'", optarg); tos = ultmp; break; -#endif /*IPSEC_POLICY_IPSEC*/ -#endif /*IPSEC*/ default: usage(); } @@ -1515,14 +1515,14 @@ static void usage() { (void)fprintf(stderr, "%s\n%s\n%s\n", -"usage: ping [-ADQRadfnoqrv] [-c count] [-i wait] [-l preload] [-m ttl]", -" [-p pattern] " +"usage: ping [-AaDdfMnoQqRrv] [-c count] [-i wait] [-l preload] [-m ttl]", +" " #ifdef IPSEC #ifdef IPSEC_POLICY_IPSEC "[-P policy] " #endif #endif -"[-s packetsize] [-S src_addr] [-t timeout]", -" [-z tos ] [host | [-L] [-I iface] [-T ttl] mcast-group]"); +"[-p pattern] [-S src_addr] [-s packetsize] [-t timeout]", +" [-z tos ] host | [-L] [-I iface] [-T ttl] mcast-group"); exit(EX_USAGE); } diff --git a/sbin/tunefs/tunefs.8 b/sbin/tunefs/tunefs.8 index 1a4ab8c..d8a1207 100644 --- a/sbin/tunefs/tunefs.8 +++ b/sbin/tunefs/tunefs.8 @@ -41,10 +41,10 @@ .Sh SYNOPSIS .Nm .Op Fl A -.Op Fl L Ar volname .Op Fl a Cm enable | disable .Op Fl e Ar maxbpg .Op Fl f Ar avgfilesize +.Op Fl L Ar volname .Op Fl l Cm enable | disable .Op Fl m Ar minfree .Op Fl n Cm enable | disable @@ -72,8 +72,6 @@ Specifying this option will cause all backups to be modified as well as the primary super-block. This is potentially dangerous - use with caution. -.It Fl L Ar volname -Add/modify an optional file system volume label. .It Fl a Cm enable | disable Turn on/off the administrative ACL enable flag. .It Fl e Ar maxbpg @@ -93,6 +91,8 @@ For file systems with exclusively large files, this parameter should be set higher. .It Fl f Ar avgfilesize Specify the expected average file size. +.It Fl L Ar volname +Add/modify an optional file system volume label. .It Fl l Cm enable | disable Turn on/off MAC multilabel flag. .It Fl m Ar minfree diff --git a/sbin/tunefs/tunefs.c b/sbin/tunefs/tunefs.c index a861248..418fcae 100644 --- a/sbin/tunefs/tunefs.c +++ b/sbin/tunefs/tunefs.c @@ -96,28 +96,12 @@ main(int argc, char *argv[]) if (argc < 3) usage(); found_arg = 0; /* at least one arg is required */ - while ((ch = getopt(argc, argv, "AL:a:e:f:l:m:n:o:ps:")) != -1) + while ((ch = getopt(argc, argv, "Aa:e:f:L:l:m:n:o:ps:")) != -1) switch (ch) { case 'A': found_arg = 1; Aflag++; break; - case 'L': - found_arg = 1; - name = "volume label"; - Lvalue = optarg; - i = -1; - while (isalnum(Lvalue[++i])); - if (Lvalue[i] != '\0') { - errx(10, "bad %s. Valid characters are alphanumerics.", - name); - } - if (strlen(Lvalue) >= MAXVOLLEN) { - errx(10, "bad %s. Length is longer than %d.", - name, MAXVOLLEN - 1); - } - Lflag = 1; - break; case 'a': found_arg = 1; name = "ACLs"; @@ -144,6 +128,22 @@ main(int argc, char *argv[]) errx(10, "%s must be >= 1 (was %s)", name, optarg); fflag = 1; break; + case 'L': + found_arg = 1; + name = "volume label"; + Lvalue = optarg; + i = -1; + while (isalnum(Lvalue[++i])); + if (Lvalue[i] != '\0') { + errx(10, "bad %s. Valid characters are alphanumerics.", + name); + } + if (strlen(Lvalue) >= MAXVOLLEN) { + errx(10, "bad %s. Length is longer than %d.", + name, MAXVOLLEN - 1); + } + Lflag = 1; + break; case 'l': found_arg = 1; name = "multilabel MAC file system"; @@ -376,8 +376,8 @@ void usage(void) { fprintf(stderr, "%s\n%s\n%s\n%s\n", -"usage: tunefs [-A] [-L volname] [-a enable | disable] [-e maxbpg]", -" [-f avgfilesize] [-l enable | disable] [-m minfree]", +"usage: tunefs [-A] [-a enable | disable] [-e maxbpg] [-f avgfilesize]", +" [-L volname] [-l enable | disable] [-m minfree]", " [-n enable | disable] [-o space | time] [-p]", " [-s avgfpdir] special | filesystem"); exit(2); |