我正在运行一个脚本,它登录到服务器然后执行命令“passwd -n 0 -x 99999 -i -1 debug”以消除调试用户的老化。如果用户调试不存在,那么我想创建用户调试,更改密码,然后执行上述命令进行老化。
我能怎么做?
问候,瓦西斯塔
我正在运行一个脚本,它登录到服务器然后执行命令“passwd -n 0 -x 99999 -i -1 debug”以消除调试用户的老化。如果用户调试不存在,那么我想创建用户调试,更改密码,然后执行上述命令进行老化。
我能怎么做?
问候,瓦西斯塔
来自perlfunc(1)
:
系统列表 [...] 返回值是返回的程序的退出状态 通过“等待”电话。要获得实际的退出值,请右移 八点(见下文)。
所以:
my $ret = system(qw/passwd -n 0 -x 99999 -i -1 debug/);
if ($ret != 0) {
# failure handling code here
}
使用傀儡。
如果你真的坚持要手动做,使用getent passwd debug
来检查用户是否存在:
if [ $(getent passwd debug | wc -l ) = 0 ]; then
adduser debug
fi
我建议使用Expect 之类的东西。它为您处理交互性。您可以登录服务器、执行命令、检查输出、发送更多输入等等。如果您正在进行大量远程服务器管理,那么它是一个非常方便的工具。Perl Review第 4.2 期(2008 年春季)中甚至有一篇关于它的文章