私はデバッグユーザのエージングを削除するために、サーバにログインしてから "passwd -n 0 -x 99999 -i -1 debug"というコマンドを実行するスクリプトを実行しています。 ユーザーのデバッグが存在しない場合は、ユーザーのデバッグを作成し、パスワードを変更して、上記のコマンドをエージングに実行します。リモートコマンドの出力をキャプチャして、さらにリモートコマンドを発行するにはどうしたらいいですか?
どうすればいいですか?
よろしく、 vasistha
私はデバッグユーザのエージングを削除するために、サーバにログインしてから "passwd -n 0 -x 99999 -i -1 debug"というコマンドを実行するスクリプトを実行しています。 ユーザーのデバッグが存在しない場合は、ユーザーのデバッグを作成し、パスワードを変更して、上記のコマンドをエージングに実行します。リモートコマンドの出力をキャプチャして、さらにリモートコマンドを発行するにはどうしたらいいですか?
どうすればいいですか?
よろしく、 vasistha
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).
:
my $ret = system(qw/passwd -n 0 -x 99999 -i -1 debug/);
if ($ret != 0) {
# failure handling code here
}
使用puppet。
あなたが本当にユーザーが存在するかどうかを確認するためにgetent passwd debug
を使用して、手動でそれを行う上で主張する場合:
if [ $(getent passwd debug | wc -l) = 0 ]; then
adduser debug
fi
私がお勧めExpectのようなものを使用します。あなたのインタラクティビティを処理します。サーバーにログインしたり、コマンドを実行したり、出力を検査したり、入力を増やしたりすることができます。たくさんのリモートサーバー管理を行っているなら、それは非常に便利なツールです。それについての記事もありますThe Perl Review号4.2(2008年春)
これはどのように質問に答えますか? system()は同じマシン上で何かを実行します。リモートサーバー上では何も実行されません。 –
ええ、私は質問を再読したので、分かりません。私は遠隔地に気付かなかった。 perlスクリプトがサーバーにアップロードされていると思うのは一生懸命ですか? – hhaamu