如何在使用xargs时获取退出代码(并行) [英] how to get exit code when using xargs (parallel)

查看:0
本文介绍了如何在使用xargs时获取退出代码(并行)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我制作了一个启动并行rsync进程的脚本:

#! /bin/bash
LIST=$1
DEST_DIR=$2
RSYNC_OPTS=$3
#echo "rsyncing From=$SRC_DIR To=$DEST_DIR RSYNC_OPTS=$RSYNC_OPTS"
echo $LIST|xargs -n1 -d, echo|xargs -n1 -P 0 -I% rsync --rsync-path='sudo rsync' ${RSYNC_OPTS} % ${DEST_DIR}
然后,我在获取rsync进程的退出状态时遇到了问题。我知道获取一组pipestatus是可能的,但我需要捕获退出代码以了解rsync是否成功。

有人知道吗?

推荐答案

xargs的手册页显示了可能的退出状态值,但是它只能生成一个聚合的退出代码,而不是它运行的每个子进程的退出代码。您可以尝试以下选项之一:

  • 让xargs派生的进程打印其退出代码,并让父任务解析所有退出代码输出,以确定每个rsync的退出代码。
  • 将GNUparallel--joblog选项一起使用。这将创建一个文件,其中包含并行运行的所有命令及其退出代码和其他信息。然后可以在parallel退出后分析此文件,以确定哪些rsync命令失败及其各自的错误代码。

这篇关于如何在使用xargs时获取退出代码(并行)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆