在 shell 中捕获来自 sqoop 导入的结果代码
Catch result code from sqoop import in shell
如何在 shell 中捕获 sqoop 导入的成功执行?
我想像这样执行后续导入:
result=$(sqoop import ...)
if [ $result > 0 ] ; then
sqoop import ...
else
exit 1
fi
(我知道这可以用 oozie 来完成,但是,出于各种原因我需要通过 shell 来完成)
您可以在 shell 脚本中尝试这种模式(例如 run_sqoop.sh
)。
#!/bin/bash
sqoop import <rest-of-command-parameters>
result=$?
echo $result
if [ "$result" -eq 0 ] ; then
echo "OK"
else
echo "Fail"
echo "Fixing and running again"
sqoop import <updated-rest-of-command-parameters>
fi
使文件成为可执行文件
$ chmod 755 run_sqoop.sh
如果第一次导入成功,输出将是:
output-logs-from-sqoop-command-execution
:
0
OK
如果第一次导入失败,输出将是:
output-logs-from-first-sqoop-command-execution
:
1
Fail
Fixing and running again
output-logs-from-second-sqoop-command-execution
:
如何在 shell 中捕获 sqoop 导入的成功执行? 我想像这样执行后续导入:
result=$(sqoop import ...)
if [ $result > 0 ] ; then
sqoop import ...
else
exit 1
fi
(我知道这可以用 oozie 来完成,但是,出于各种原因我需要通过 shell 来完成)
您可以在 shell 脚本中尝试这种模式(例如 run_sqoop.sh
)。
#!/bin/bash
sqoop import <rest-of-command-parameters>
result=$?
echo $result
if [ "$result" -eq 0 ] ; then
echo "OK"
else
echo "Fail"
echo "Fixing and running again"
sqoop import <updated-rest-of-command-parameters>
fi
使文件成为可执行文件
$ chmod 755 run_sqoop.sh
如果第一次导入成功,输出将是:
output-logs-from-sqoop-command-execution
:
0
OK
如果第一次导入失败,输出将是:
output-logs-from-first-sqoop-command-execution
:
1
Fail
Fixing and running again
output-logs-from-second-sqoop-command-execution
: