我正在尝试在 perl 脚本中运行“lvs”来解析其输出。
my $output = `lvs --noheadings --separator : --units m --nosuffix 2>&1`;
my $result = $?;
if ($result != 0 || length($output) == 0) {
printf STDERR "Get list of LVs failed (exit result: %d): %s\n",
$result, $output;
exit(1);
}
printf "SUCCESS:\n%s\n", $output;
当我从终端窗口运行上述脚本时,它运行良好。如果我通过 cron 运行它会失败:
Get list of LVs failed (exit result: -1):
注意缺少任何输出(stdout + stderr)
如果我直接在 cron 中运行相同的“lvs --noheadings --separator : --units m --nosuffix”命令,它运行并输出就好了。
如果我修改 perl 脚本以使用 open3() 我也会得到同样的失败,没有输出。
如果我在 lvs 命令中添加“-d -d -d -d -d -v -v -v”以启用详细/调试输出,我会看到当我从终端运行 perl 脚本时,但运行时没有输出通过 cron/perl。
我正在使用 /usr/bin/perl (5.16.3) 在 RHEL 7.2 上运行它
有什么建议么???