comando uux

Propósito

Executa um comando em outro sistema baseado em UNIX.

Sintaxe

uux [ -c | -C ] [ -n | -z ] [ - ] [ -aNome ] [ -b ] [ -gGrau ] [ -j ] [ -p ] [ -e ] [ -r ] [ -sArquivo ] [  -xNível de depuração ] CommandString

Descrição

O comando uux é um Basic Networking Utility (BNU) que executa um comando especificado em um sistema baseado em UNIX especificado enquanto habilita o usuário a continuar trabalhando no sistema local. Antes de executar o comando solicitado, o comando uux reúne quaisquer arquivos necessários a partir dos sistemas designados. O usuário pode direcionar a saída do comando para um arquivo específico em um sistema específico. Por razões de segurança, muitas instalações permitem que o comando uux execute apenas o comando rmail .

Os comandos uux em outros sistemas criam executar (X.*) arquivos que executem comandos no sistema local. Além disso, o comando uux no sistema local cria ambos o comando (C.*) arquivos e dados (D.*) arquivos para transferência para outros sistemas. Os arquivos de execução contêm a cadeia de comando a ser executada no sistema designado. Os arquivos de comandos contêm as mesmas informações que aqueles criados pelo comando uucp . Arquivos de dados contêm os dados para uma execução remota de comandos ou então tornar-se X.* arquivos em sistemas remotos para execuções de comandos remotos.

O nome completo do caminho de um arquivo de execução é uma forma do seguinte:

/var/spool/uucp/System/X.SystemNxxxx

Depois de criar os arquivos no diretório de spooling, o comando uux chama o daemon uucico para transferir os arquivos do diretório spooling no sistema local para o sistema remoto designado. Quando os arquivos são transferidos, o daemon uuxqt no sistema remoto executa o CommandString no sistema especificado, colocando qualquer saída do comando no arquivo designado pela solicitação do comando uux original.

O argumento CommandString é composto por um ou mais argumentos que parecem uma linha de comandos do sistema operacional, exceto que o argumento CommandString pode ser prefixado pelo nome do sistema remoto no formato System!. O Sistema padrão é o sistema local. A menos que o usuário que está entrando no comando uux inclua a sinalização -n , o comando notifica esse usuário se o sistema remoto não executar o comando. Essa resposta vem por correio do sistema remoto.

Nomes de Arquivos de Origem e Destino

  • Ao especificar o destino da saída de um comando, o comando uux pode ser inserido em um dos formatos a seguir:
    • uux[Options]"CommandString> Destination"
    • uux[Options] CommandString\ {Destination\}.
  • Os nomes de destino podem ser de cada um dos seguintes:
    • Um nome de caminho completo
    • Um nome de caminho completo precedido por ~Usuário, em que Usuário é um nome de login no sistema especificado. O comando uux substitui este nome de caminho com o diretório de login do usuário.
  • Os caracteres de correspondência de padrões de shell? (interrogação de interrogação), * (asterisco), e [...] (colchetes) podem ser usados no nome do caminho de um arquivo de origem (como arquivos comparados pelo comando diff ); o sistema apropriado expandi-los. No entanto, usar o caractere * pode ocasionalmente produzir resultados imprevisíveis ou não antecipados. Os caracteres de correspondência de padrões de shell não devem ser usados no nome do caminho de destino.
  • Coloque dois retroslashes (\... \) ou um par de aspas ("... ") em torno de padrões de correspondência de padrões em um nome de caminho para que o shell local não possa interpretá-los antes que o comando uux envie o comando para um sistema designado.
  • Se você estiver usando os caracteres especiais do shell> (maior que), < (menor que),; (semicolon) ou | (barra vertical) em um nome de caminho, coloque \... \ ou "..". em torno do caractere individual ou em torno de toda a cadeia de comandos.
  • Não use os caracteres de redirecionamento de shell < < ou>> em um nome de caminho.
  • O comando uux tenta mover todos os arquivos especificados na linha de comando para o sistema designado. Enfechar os nomes de todos os arquivos de saída entre parênteses para que o comando uux não tente transferi-los.
  • Ao especificar um Sistema, sempre coloque-o antes do argumento CommandString na entrada Os nomes do sistema podem conter apenas caracteres ASCII.
  • O! (ponto de exclamação) precedendo o nome do sistema local em um comando é opcional. Se você optar por incluir o! para executar um comando no sistema local usando arquivos de dois sistemas remotos diferentes, use! em vez de Sistema! para representar o sistema local, e adicionar Sistema! como a primeira entrada em qualquer nome de caminho nos sistemas remotos.
  • O ponto de exclamação representando um sistema em sintaxe BNU tem um significado diferente em shells C. Ao executar o comando uux em um shell C, coloque um \ (backslash) antes do ponto de exclamação em um nome do sistema.

    Nota: A notação ~ (tilde) é a forma abreviada de especificar o diretório de spooling público, /var/spool/uucppublic.

Sinalizações

Item Descrição
- Torna a entrada padrão para o comando uux a entrada padrão para o argumento CommandString .
-aNome Substitui o ID do usuário da pessoa que emite o comando com o ID do usuário especificado com a variável Name .
-b Retorna entrada padrão para o comando se o status de saída não for zero.
-C Transfere os arquivos de origem para o destino no sistema especificado. Os arquivos de origem são copiados no diretório spooling, e o daemon uucico é invocado imediatamente. Essa sinalização é o padrão.
-C Transfere os arquivos de origem para o diretório spool. Após um período de set de tempo (especificado no programa uusched ), o daemon uucico tenta transferir os arquivos para o destino no computador especificado.

Ocasionalmente, há problemas na transferência de um arquivo de origem; por exemplo, o computador remoto pode não estar funcionando ou a tentativa de login pode falhar. Nesses casos, o arquivo permanece no diretório spool até que ele seja transferido com sucesso ou removido pelo comando uucleanup .

Item Descrição
-e Ativa expansão de arquivo.
-gGrau Especifica quando os arquivos devem ser transmitidos durante uma conexão particular. A variável Grade especifica um número único (0 9) ou letra (A através de Z, a através de z); caracteres de sequência de ASCII inferior fazem com que os arquivos sejam transmitidos anteriormente do que caracteres de sequência mais altos. O número 0 é o mais alto (primeiro) grau; z é o mais baixo (mais recente). O padrão é N.
-j Exibe o número de identificação do cargo do processo que está executando o comando no sistema especificado. Use esse ID de trabalho com o comando uustat do BNU para verificar o status do comando ou com o sinalizador uustat -k para encerrar o processo.
-n Evita a notificação do usuário pelo comando mail do sucesso ou falha de um comando. O padrão é notificar o usuário se o comando falhar.
-P Usa a entrada padrão para o comando uux como a entrada padrão para o argumento CommandString Um - (menos) tem o mesmo efeito.
-r Evita o início do programa de spooling que transfere arquivos entre sistemas. O padrão é iniciar o programa de spooling.
-sArquivo Relata o status da transferência em um arquivo especificado pela variável Arquivo no sistema designado. Os nomes de arquivos podem conter apenas caracteres ASCII.
-xNível de depuração Exibe informações de depuração na tela do sistema local. A variável DebugLevel deve ser um número de 0 a 9.. Um número superior dá um relatório mais detalhado.
-z Notifica o usuário se o comando for concluído com sucesso. Esta sinalização é o oposto do padrão do sistema, que é notificar o usuário apenas em caso de falha.

Exemplos

  1. Para executar o comando qprt em um sistema remoto, digite:
    uux merlin!qprt /reports/memos/lance
    Neste exemplo, o arquivo remoto /reports/memos/lanceé impresso em sistema remotomerlin. Uma vez que nem a sinalização -n nem -z é especificada, o comando uux notifica o usuário apenas se o sistema remoto falhar ao executar o comando. A resposta vem pelo comando mail a partir do sistema remoto.
  2. Para executar comandos em dois sistemas remotos, insira as informações em linhas de comando separadas:
    uux merlin!qprt /reports/memos/lance
    uux zeus!qprt /test/examples/examp1
    Neste exemplo, o remoto/reports/memos/lancearquivo é impresso em sistema remotomerlin, e o remoto/test/examples/examp1arquivo é impresso em sistema remotozeus. Uma vez que nem a sinalização -n nem -z é especificada, o comando uux notifica o usuário apenas se o sistema remoto falhar ao executar o comando. A resposta vem pelo comando mail a partir do sistema remoto.
  3. Para fazer fila de um job que compara um arquivo no sistema local com um arquivo em um sistema remoto, usando o comando diff no sistema local, e obter o ID do job do job, digite:
    uux  -j "/usr/bin/diff /usr/amy/f1 hera!/home/amy/f2 > ~/f1.diff"
    Neste exemplo, o/usr/amy/f1arquivo sobre o sistema local é comparado com o/home/amy/f2arquivo no sistema remotoherae a saída é colocada nof1.diffarquivo no diretório público local (o nome completo do caminho deste arquivo é/var/spool/uucppublic/f1.diff). O nome de destino deve ser digitado antecedido por um> com toda a cadeia de comando encerrada em "" (aspas) ou inseridas entre chaves e barras inveros/backslashes, como \ { DestinationName \}. A sinalização -j faz com que o comando uux retorne o ID de emprego BNU do job.
  4. Para usar o comando diff no sistema local para comparar arquivos que estão localizados em dois sistemas remotos diferentes, digite:
    uux "!/usr/bin/diff hera!/usr/amy/f1 venus!/home/amy/f2 > \ !f1.diff"
    Neste exemplo, o/usr/amy/f1arquivo do sistema remotoheraé comparado com o/home/amy/f2arquivo do sistema remotovenuse a saída é colocada no arquivof1.diff, localizado no diretório de trabalho atual no sistema local.

    O arquivo de saída deve ser ativado por gravação. Se você estiver incerto sobre o status de permissão de um arquivo de saída de destino específico, direcionar os resultados para o diretório público. Os pontos de exclamação que representam o sistema local são opcionais. O nome de destino deve ser digitado antecedido por um> com toda a cadeia de comando encerrada em "" (aspas) ou inseridas entre chaves e barras inveros/backslashes, como \ { DestinationName \}.

  5. Para executar o comando diff em dois arquivos separados de diferentes sistemas, digite:
    uux "hera!/usr/bin/diff /tmp/out1 zeus/tmp/out2 > ~/DF"
    Neste exemplo, odiffarquivo está no sistema remotohera. O primeiro arquivo de origem está no sistema remotohera, e o arquivo de segunda está no sistemazeus. (zeuspode ser o sistema local ou outro sistema remoto.) A saída é direcionada para o arquivo DF no diretório público no sistema local.
  6. Para especificar um arquivo de saída em um sistema remoto diferente, digite:
    uux hera!uucp venus!/home/amy/f1 \{merlin!/home/geo/test\}
    Neste exemplo, o comando uucpuucp Command é executado no sistema remotohera, e o/home/amy/f1arquivo, armazenado em sistemavenus, é enviado para o usuáriogeoem sistemamerlincomotest. O nome de destino é inserido entre colares e barras invernos.
  7. Para obter campos selecionados a partir de um arquivo em um sistema remoto e colocá-los em um arquivo no sistema local, digite:
    uux "cut -f1 -d: hera\!/etc/passwd > ~/passw.cut"
    O comando cut é executado no sistema local. O primeiro campo a partir de cada linha do arquivo de senha no sistemaheraé colocado nopassw.cutarquivo no diretório público no sistema local. O comando uux está rodando em uma shell C, portanto a\(backslash) deve preceder o ponto de exclamação em nome do sistema remoto.
  8. Para usar a opção de piping uux para especificar uma cópia remota do/tmp/examplearquivo para/tmp/examplecopyem sistemamercuryutilizar a seguinte sintaxe:
    uux -p mercury!
    cp /tmp/example /tmp/examplecopy
      
    O usuário deve entrar em um Ctrl-D a fim de finalizar a entrada de comando. Após o Ctrl-D ser pressionado, o comando será spooled para execução remota no sistema mercury.

Arquivos

Item Descrição
/usr/bin/uux Contém o comando uux .
/var/spool/uucp É o diretório de spooling.
/var/spool/uucppublic É o diretório público.