Pergunta

Estou executando um script em que ele faz login em um servidor executa o comando "passwd -n 0 -x 99999 -i -1 depuração" para remover o envelhecimento do usuário de depuração. Se a depuração do usuário não estiver presente, eu quero criar a depuração do usuário, alterar a senha e executar o comando acima para o envelhecimento.

Como eu posso fazer?

Atenciosamente, Vasistha

Foi útil?

Solução

A partir de perlfunc(1):

          system LIST
               [...]
               The return value is the exit status of the program as returned
               by the "wait" call.  To get the actual exit value, shift right
               by eight (see below).

Portanto:

my $ret = system(qw/passwd -n 0 -x 99999 -i -1 debug/);
if ($ret != 0) {
  # failure handling code here
}

Outras dicas

Usar fantoche.

Se você realmente insiste em fazê -lo manualmente, use getent passwd debug Para verificar se o usuário existe:

if [ $(getent passwd debug | wc -l ) = 0 ]; then
    adduser debug
fi

Eu sugiro usar algo como Espero. Ele lida com a interatividade para você. Você pode fazer login no servidor, executar comandos, inspecionar a saída, enviar mais entrada e assim por diante. Se você estiver fazendo muita administração de servidor remoto, é uma ferramenta muito útil para saber. Existe até um artigo sobre isso em A revisão Perl Edição 4.2 (primavera de 2008)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top