Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1810394
  • 博文数量: 496
  • 博客积分: 12043
  • 博客等级: 上将
  • 技术积分: 4778
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-27 14:26
文章分类

全部博文(496)

文章存档

2014年(8)

2013年(4)

2012年(181)

2011年(303)

2010年(3)

分类: LINUX

2012-04-17 16:27:12


功能说明:在远端的UUCP主机上执行指令。

语  法:uux [-bcCIjrvz][-a<地址>][-g<等级>][-s<文件>][-x<层级>][--help][指令]

补充说明:uux可在远端的UUCP主机上执行指令或是执行本机上的指令,但在执行时会使用远端电脑的文件。

参  数:
  -或-p或--stdin   直接从键盘读取要执行的指令。
  -a<地址>或--requestor<地址>   执行邮件地址,以便寄送状态信息。
  -b或--erturn-stdin   在屏幕上显示状态信息。
  -c或--nocopy   不用将文件复制到缓冲区。
  -C或--copy   将文件复制到缓冲区。
  -g<等级>或--grade<等级>   指定文件传送作业的优先顺序。
  -I或--config    指定uux配置文件。
  -j或--job   显示作业编号。
  -l或--link   将本机上的文件连接到缓冲区。
  -n或--notifiion=no   无论发生任何状态,都不寄邮件通知用户。
  -r或--no   不要立即启动uucico服务程序,仅将作业送到队列中,然后再执行。
  -s<文件>或--us<文件>   将完成状态保存为指定的文件。
  -v或--version   显示版本信息。
  -x<层级>或--debug<层级>   指定排错层级。
  -z或--notification=error   若发生错误,则以邮件来通知用户。
  --help   显示帮助。

描述

uux 命令是一种“基本联网实用程序”(BNU),在指定的基于 UNIX 的系统上运行指定的命令。同时不影响用户在本地系统上的工作。在运行指定命令之前,uux 命令从指定系统中收集所有必要的文件。用户可以将命令输出指向特定系统的特定文件。基于安全性的考虑,许多安装程序允许 uux 命令只运行 ail 命令。

其它系统上的 uux 命令创建在本地系统运行命令的执行文件(X.*)。另外,为了能传输到其它系统,本地系统上的 uux 命令创建了命令文件(C.*)和数据文件(D.*)。执行文件包含要在指定系统中执行的命令字符串。命令文件包含 uu 命令所创建的同样的信息。数据文件要么包含执行远程命令所需的数据,要么成为远程系统上的执行文件 X.* 以执行远程命令。

执行文件的完整路径名如下所示:

 /var/spool//System/X.SystemNxxxx
在 spooling 目录中创建好这些文件之后,uux 命令调用 uucico 守护进程将文件从本地系统的假脱机目录转移到指定的远程系统中。一旦文件被转移,该远程系统上的 uuxqt 守护进程执行指定系统上的 CommandSing,将该命令的输出放置到原始 uux 命令要求所指定的文件中。

CommandString 自变量由一个或多个自变量组成, 看上去就象操作系统的命令行,不同的是该 CommandString 自变量的前缀可能是远程系统的名称, 采用 System! 的形式。缺省的 System 是本地系统。除非用户在输入 uux 命令时加入了 -n 标志, 如果远程系统没有运行该命令,该命令就会通知该用户。远程系统将通过邮件的形式来响应。

源文件名和目的文件名

当指定某个命令输出的目的地时, uux 命令的输入格式如下所示:
uux [Options] "CommandString> Destination"
uux [Options] CommandString {Destination}.
目的地名称可以是以下任意一种:
完整路径名
前面带有 ~User 的完整路径名,其中 User 是指定系统上的登录名。uux 命令用用户登录的目录替换了该路径名称。
shell 模式匹配字符 ?(问号)、*(星号)和 [ ... ](括号)可以在源文件(比如由 命令比较的文件)的路径名中使用;相应的系统将扩展这些符号。然而,使用 * 字符可能会偶尔产生不可预料的结果。shell 模式匹配字符不应在目标路径名中使用。
用两个反斜杠 ( . . . ) 或一对引号(" . . . ")将路径名中的模式匹配字符围起来,这样在 uux 命令将该命令发送到指定系统之前本地 shell 不会对它们加以解释。
如果你在路径名中使用了特殊的 shell 字符“>”(大于符号)、“ <”(小于符号)、“;”(分号)或“|”(竖线),请将该单个字符或整个命令字符串用符号 . . . 或符号 " . . . " 围起来。
不要在路径名中使用 shell 重定向字符 << 或 >>。
uux 命令试图将命令行指定的所有文件移动到指定的系统中。将所有输出文件的名称围在圆括号中,这样 uux 命令就不会试图去转移它们。
当指定一个 System 时,总是将它放在条目中的 CommandString 参数前。系统名只能包含 ASCII 码字符。
命令中本地系统名前的“!”(感叹号)是可选的。如果使用两个不同的远程系统中文件在本地系统运行命令时选择加入“!”,则用“!”替换System!来代表本地系统,并且将 System! 作为到远程系统的路径名的第一项。
感叹号在 BUN 语法中代表一个系统,这与在 C shell 中的含义不同。在 C shell 中运行 uux 命令时,请将一个 (反斜杠) 放在系统名的感叹号前。
注:符号 ~ (波浪号) 是指定公共假脱机目录 /var/spool/uucppublic 的简略方式。
标志

-  将 uux 的标准输入作为 CommandString 变量的标准输入。
-aName  用 Name 变量中指定的用户标识替换发出该命令的用户标识。
-b  如果退出状态不为零,将标准输入返回给该命令。
-c  将源文件转移到指定系统的目的地址。源文件被复制到假脱机目录,uucico 守护进程被立即调用。这个标志是缺省值。
-C  将源文件转移到假脱机目录中。在设定的一段时间(在 uusched 程序中指定)之后,uucico 守护进程试图将文件转移到指定计算机的目的地址里。
在传输源文件时经常会遇到问题;例如,远程计算机可能没有正常工作或者可能出现登录失败的情况。在那种情况下,文件仍然留在假脱机目录里,直到它被成功传输出去或被 uucleanup 命令删除。

-e  启用文件扩展。
-gGrade  指定文件在一个特定的连接期间何时被传输。Grade 变量指定一个整数(从 0 到 9)或字母(从 A 到 Z,a 到 z); 在 ASCII 码序列中,低序列的字符比高序列的字符使文件传输更优先。数字 0 处于最高(最优先)级别,z 处于最低(最迟)级别。缺省值为 N。
-j  显示在指定系统里运行命令的进程的作业标识数。用 BNU 命令和该作业标识来检查该命令的状态或用 uustat -k 标志来终止该进程。
-n  防止用 mail 命令通知用户某个命令的执行是成功还是失败。缺省情况是在命令执行失败时通知用户。
-p  将 uux 命令的标准输入用作 CommandString 参数的标准输入。-(减号)产生同样的效果。
-r  防止启动假脱机程序在系统间传输文件。缺省设置是启动假脱机程序。
-sFile  报告指定系统上 File 变量所指定的文件的传输状态。文件名只能包含 ASCII 码字符。
-xDebugLevel  在本地系统的屏幕上显示调试信息。DebugLevel 变量的值必须是一个从 0 到 9 的整数。数字越大,则给出的报告越详细。
-z  通知用户命令的执行是否成功。此标志与系统缺省值相反,缺省情况是只在失败的时候通知用户。
示例

要在远程系统上运行 qprt 命令,输入:
 uux merlin!qprt /reports/memos/lae
在本例中,远程文件  /reports/memos/lance 在远程系统 merlin 上被打印。由于既没有指定 -n 标志,也没有指定 -z 标志,uux命令只有在远程系统运行命令失败时才通知用户。远程系统通过 mail 命令来发布该通知。

要在两个远程系统上运行命令,在各个命令行上分别输入信息:
 uux merlin!qprt /reports/memos/lance
uux zeus!qprt /test/amples/examp1

在本例中,远程文件/reports/memos/lance 在远程系统 merlin 中被打印,远程文件/test/examples/examp1 在远程系统 zeus 中被打印。由于既没有指定 -n 标志,也没有指定 -z 标志,uux 命令只在远程系统运行命令失败时才通知用户。远程系统通过 mail 命令来响应。

要排队一个将本地系统文件和远程系统文件进行比较的作业,使用本地系统上的 diff 命令,获取该作业的作业标识号,输入:
uux  -j "/usr/bin/diff /usr/amy/f1 hera!/home/amy/f2 > ~/f1.diff"
在本例中,本地系统上的文件 /usr/amy/f1 同远程系统 hera 上的文件 /home/amy/f2 进行了比较,输出信息放置在本地公共目录中的 f1.diff 文件里(完整路径名为 /var/spool/uucppublic/f1.diff)。输入目的地名称时,前面必须有“>”符号,并且整个命令字符串用 " "(引号)围起来;或者整个目的地名称用括号和反斜杠围起,如 { DestinationName } 的形式。-j 标志导致 uux 命令返回该作业的 BNU 作业标识号。
要使用本地系统中的diff 命令比较两个不同的远程系统上的文件,输入:
 uux "!/usr/bin/diff hera!/usr/amy/f1 venus!/home/amy/f2 > !f1.diff"
在本例中,远程系统 hera 中的文件 /usr/amy/f1 与远程系统 venus 中的文件 /home/amy/f2 进行了比较,输出信息将放置在本地系统的当前工作目录里的文件 f1.diff 中。

输出文件的状态必须是可写的。如果您对特定目标输出文件的权限状态不是很清楚,将该结果指向公共目录。代表本地系统的感叹号是可以可选的。输入目的地名 时,前面必须有“>”,整个命令字符串必须用 " "(引号)围起来;或者整个目的地名称用括号和反斜杠围起,如 { DestinationName } 的形式。

要对来自不同系统的两个文件执行 diff 命令,输入:
 uux "hera!/usr/bin/diff /tmp/out1 zeus/tmp/out2 > ~/DF"
在本例中,diff 文件在远程系统 hera 上。第一个源文件在远程系统 hera 上,第二个文件在系统 zeus 上。(zeus 可能是本地系统或另外一个远程系统。)输出被指向到本地系统公共目录下的 DF 文件中。

要在一个不同的远程系统中指定一个输出文件,输入:
 uux hera!uucp venus!/home/amy/f1 {merlin!/home/geo/test}
在本示例中,uucp 命令在远程系统 hera 上运行,作为 test,存储在系统 venus 上的文件 /home/amy/f1 发送给系统 merlin 上的用户 geo。输入的目的地名要用括号和反斜杠围起。

要从远程系统上的文件获取所选择的字段,并将它们放到本地系统中的文件,输入:
 uux "cut -f1 -d: hera!/etc/ > ~/passw.cut"
在本例中,cut 命令在本地系统中运行。系统 hera 中的密码文件中每一行的第一个字段放置在本地系统公共目录下的 passw.cut 文件中。uux 命令在 C shell 中运行,所以 (反斜杠) 必须放在远程系统名称中的感叹号前。

要使用 uux 管道选项来指定文件 /tmp/example 在系统 mercury 上的远程副本 /tmp/examplecopy,请使用以下语法:
 uux -p mercury!
cp /tmp/example /tmp/examplecopy
 
用户必须键入 Ctrl-D 以便终止命令输入。按下 Ctrl-D 键后,该命令将进行假脱机以在系统 mercury 上远程执行。

文件

/usr/bin/uux  包含 uux 命令。
/var/spool/uucp  是假脱机目录。
/var/spool/uucppublic  是公共目录。
相关信息

ct 命令、cu 命令、mail 命令、rmail 命令、uucleanup 命令、uucp 命令、u 命令、 命令、uustat 命令、 命令和qprt 命令。

sendmail 守护进程、uucico 守护进程和uuxqt 守护进程。

阅读(875) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~