0

サーバーにログインし、コマンド「passwd -n 0 -x 99999 -i -1 debug」を実行して、デバッグ ユーザーのエージングを削除するスクリプトを実行しています。ユーザーデバッグが存在しない場合は、ユーザーデバッグを作成し、パスワードを変更してから、エージングのために上記のコマンドを実行します。

どのようにできるのか?

よろしく、ヴァシスタ

4

3 に答える 3

1

からperlfunc(1):

          システムリスト
               [...]
               戻り値は、返されたプログラムの終了ステータスです
               「待機」コールによって。実際の終了値を取得するには、右にシフトします
               8倍(下記参照)。

したがって:

my $ret = system(qw/passwd -n 0 -x 99999 -i -1 debug/);
if ($ret != 0) {
  # failure handling code here
}
于 2009-07-29T06:50:44.533 に答える
0

Expectのようなものを使用することをお勧めします。それはあなたのために双方向性を処理します。サーバーへのログイン、コマンドの実行、出力の検査、追加の入力の送信などを行うことができます。多くのリモートサーバー管理を行っている場合、これは非常に便利なツールです。Perl Review Issue 4.2(Spring 2008)にもそれに関する記事があります

于 2009-07-29T18:15:14.720 に答える
0

パペットを使用します。

本当に手動で行う必要がある場合getent passwd debugは、ユーザーが存在するかどうかを確認するために使用します。

if [ $(getent passwd debug | wc -l ) = 0 ]; then
    adduser debug
fi
于 2009-07-29T06:48:14.770 に答える