我正在尝试检查 Accumulo 表的扫描是否超时(以查看表是否已损坏)。
#!/bin/bash
timeout -s KILL 20s accumulo shell -zi myInstance -u root -p secret -e "scan -np -t myTable"
if [ $? -eq 0 ]; then
echo 'Scan successful'
else
echo 'Scan timed out'
fi
该脚本运行了整整 20 秒,但没有执行该accumulo shell
命令,并且还错误地返回 0 退出状态。
如果我在终端中运行上述超时命令,该命令将按预期运行。如果我timeout -s KILL 20s sleep 10
在脚本或终端中运行基本超时命令(例如),它也可以工作。因此,由于某种原因,bash 脚本中的超时和accumulo shell
命令的组合不起作用。
- Accumulo版本:1.6.0-cdh4.6.0
- 操作系统版本:CentOS 6.6
答案1
我发现问题源于在不同的 shell 中运行命令。如果我使用命令运行脚本source
,例如source myScript.sh
,脚本将按预期运行。
然而,我还没有能够追踪到为什么timeout
在不同的 shell 中运行和的组合accummulo shell
不起作用。