サーバーにログインし、コマンド「passwd -n 0 -x 99999 -i -1 debug」を実行して、デバッグ ユーザーのエージングを削除するスクリプトを実行しています。ユーザーデバッグが存在しない場合は、ユーザーデバッグを作成し、パスワードを変更してから、エージングのために上記のコマンドを実行します。
どのようにできるのか?
よろしく、ヴァシスタ
サーバーにログインし、コマンド「passwd -n 0 -x 99999 -i -1 debug」を実行して、デバッグ ユーザーのエージングを削除するスクリプトを実行しています。ユーザーデバッグが存在しない場合は、ユーザーデバッグを作成し、パスワードを変更してから、エージングのために上記のコマンドを実行します。
どのようにできるのか?
よろしく、ヴァシスタ
からperlfunc(1):
システムリスト
[...]
戻り値は、返されたプログラムの終了ステータスです
「待機」コールによって。実際の終了値を取得するには、右にシフトします
8倍(下記参照)。
したがって:
my $ret = system(qw/passwd -n 0 -x 99999 -i -1 debug/);
if ($ret != 0) {
# failure handling code here
}
Expectのようなものを使用することをお勧めします。それはあなたのために双方向性を処理します。サーバーへのログイン、コマンドの実行、出力の検査、追加の入力の送信などを行うことができます。多くのリモートサーバー管理を行っている場合、これは非常に便利なツールです。Perl Review Issue 4.2(Spring 2008)にもそれに関する記事があります
パペットを使用します。
本当に手動で行う必要がある場合getent passwd debugは、ユーザーが存在するかどうかを確認するために使用します。
if [ $(getent passwd debug | wc -l ) = 0 ]; then
adduser debug
fi