|
|
1.1 ! root 1: .TH DSH 1X "10 November 1982" ! 2: .UC 4 ! 3: .SH NAME ! 4: dsh \- distributed shell ! 5: .SH SYNOPSIS ! 6: .B dsh ! 7: [ ! 8: .B \-a ! 9: ] [ ! 10: .B \-v ! 11: ] [ ! 12: .B \-h ! 13: host ! 14: ] [ ! 15: .B \-n ! 16: ] [ ! 17: .B \-i ! 18: copyto ! 19: ] [ ! 20: .B \-o ! 21: copyback ! 22: ] command ! 23: .SH DESCRIPTION ! 24: .I Dsh ! 25: selects a host and executes the specified \fIcommand\fR on it. ! 26: If the command specifies a host using the ! 27: .B \-h ! 28: option, that host is used. ! 29: Otherwise the selection algorithm attempts to select the ! 30: least loaded of the hosts. At the moment "least loaded" corresponds ! 31: to the lowest load average. ! 32: .I Dsh ! 33: copies its standard input to the remote command, the standard ! 34: output of the remote command to its standard output, and the ! 35: standard error of the remote command to its standard error. ! 36: Interrupt is propogated to the remote system. ! 37: \fIDsh\fP normally terminates when the remote command does. ! 38: .PP ! 39: The host is selected from a list of hosts. A default for this list ! 40: exists on each system in a file called ! 41: .I /usr/lib/dshrc. ! 42: This list can be overridden by an entry in a ! 43: .I .dshrc ! 44: file in the user's home directory. The format of the entry is: ! 45: .PP ! 46: \ \ \ hosts = [<weight>]<host>, ... , [<weight>]<host> ! 47: .PP ! 48: where <host> can be simply a host name or a binary tuple of the form: ! 49: .PP ! 50: \ \ \ (<host name>, <account name>) ! 51: .PP ! 52: where <weight> is a multiplier of the form: ! 53: .PP ! 54: \ \ \ <decimal number>* ! 55: .PP ! 56: The account used to run the command is by default the account of ! 57: the user executing the dsh. This can be overridden using the second ! 58: form of the host specification shown above. For example a user "mini" ! 59: that wanted to execute commands on HOST1 as herself and on HOST2 as ! 60: "mickey" would have a ! 61: .I .dshrc ! 62: file with the entry: ! 63: .PP ! 64: \ \ \ hosts = HOST1, (HOST2, mickey) ! 65: .PP ! 66: Of course "mickey" must have an entry in his .rhosts file to allow "mini" ! 67: to use his account. ! 68: .PP ! 69: If "mini" wanted to wieght HOST1 so that it ! 70: would be used even when its load average was twice that of HOST2 ! 71: she would use: ! 72: .PP ! 73: \ \ \ hosts = 2.1*HOST1, (HOST2, mickey) ! 74: .PP ! 75: The directory created to run the command in on the remote machine is ! 76: normally in ! 77: the account's login directory. This can be overridden by another entry ! 78: in the ! 79: .I .dshrc ! 80: file of the format: ! 81: .PP ! 82: \ \ \ dir = <directory name> ! 83: .PP ! 84: If the ! 85: .I \-v ! 86: option is specified ! 87: .I dsh ! 88: reports the name of the machine the command is executed on. ! 89: .PP ! 90: Shell metacharacters which are not quoted are interpreted ! 91: on local machine, while quoted metacharacters are interpreted on ! 92: the remote machine. ! 93: Thus the command ! 94: .PP ! 95: \ \ \ dsh cat remotefile >> localfile ! 96: .PP ! 97: appends the remote file ! 98: .I remotefile ! 99: to the localfile ! 100: .I localfile, ! 101: while ! 102: .PP ! 103: \ \ \ dsh cat remotefile ">>" otherremotefile ! 104: .PP ! 105: appends ! 106: .I remotefile ! 107: to ! 108: .I otherremotefile. ! 109: .PP ! 110: The ! 111: .I \-i ! 112: option is used to transfer the ! 113: .I copyto ! 114: file to the remote host before the command is executed. More ! 115: than one ! 116: .I \-i ! 117: option may be specified. ! 118: .PP ! 119: The ! 120: .I \-o ! 121: option is used to transfer the ! 122: .I copyback ! 123: file back from the remote host after the command is executed. More ! 124: than one ! 125: .I \-o ! 126: option may be specified. ! 127: .PP ! 128: The ! 129: .I \-a ! 130: option causes ! 131: .I dsh ! 132: to try to execute the command on as many hosts as it can. ! 133: .PP ! 134: Host names are given in the file ! 135: .I /usr/lib/hosts. ! 136: Each host ! 137: has one standard name (the first name given in the file), which ! 138: is rather long and unambiguous, and optionally one or more nicknames. ! 139: .SH FILES ! 140: .ta 2i ! 141: ~/.dshrc the user's initialization file ! 142: .br ! 143: /usr/lib/dshrc the system defaults ! 144: .br ! 145: /usr/ucb/dbid the bidder (must exist on each machine) ! 146: .DT ! 147: .SH SEE ALSO ! 148: rlogin(1x), rpasswd(1x), rsh(1x) ! 149: .SH BUGS ! 150: If you are using ! 151: .IR csh (1) ! 152: and put a ! 153: .IR dsh (1x) ! 154: in the background without redirecting its input ! 155: away from the terminal, it will block even if no reads ! 156: are posted by the remote command. If no input is desired ! 157: you should redirect the input of ! 158: .I dsh ! 159: to /dev/null using the ! 160: .B \-n ! 161: option. ! 162: .PP ! 163: You cannot run an interactive command ! 164: (like ! 165: .IR rogue (6) ! 166: or ! 167: .I vi (6)); ! 168: use ! 169: .IR rlogin (1x). ! 170: .PP ! 171: Stop signals stop the local \fIdsh\fP process only; this is arguably ! 172: wrong, but currently hard to fix for reasons too complicated to ! 173: explain here.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.