Domanda

Sono in esecuzione di uno script in cui si effettua il login a un server poi esegue il comando "Passwd -n 0 -x 99999 -i -1 debug" per rimuovere invecchiamento dell'utente debug. Se l'utente di debug non è presente allora voglio creare il debug di utente, modificare la password, e poi eseguire il comando di cui sopra per l'invecchiamento.

Come posso fare?

Saluti, Vasistha

È stato utile?

Soluzione

Da 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).

Quindi:

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

Altri suggerimenti

fantoccio .

Se proprio insistete a farlo manualmente, utilizzare getent passwd debug per controllare se esiste l'utente:

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

Io suggerisco di usare qualcosa di simile a Aspettatevi . Gestisce l'interattività per voi. È possibile accedere al server, eseguire comandi, ispezionare l'uscita, inviare più input, e così via. Se stai facendo un sacco di amministrazione remota del server, è uno strumento molto utile sapere. C'è anche un articolo su di esso in La Rassegna Perl Edizione 4.2 (primavera 2008)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top