如何检查rsync是否对bash进行了任何更改?

詹姆斯·怀特

我有一个脚本,该脚本使用rsync在远程->本地方案中同步数据。运行rsync命令后,立即检查错误代码是否等于零。如果其为零,则执行其他命令。但是,这没有考虑到rsync可能已经成功运行但实际上并未进行任何更改的事实。因此,无论如何都将等于零条件运行,这有点多余。

rsync -aEivm --delete /path/to/remote/ /path/to/local/

if [ $? -eq 0 ]; then
    # Success do some more work!
else
    # Something went wrong!
    exit 1;
fi

将其扩展为检查是否确实存在基于运行的rsync命令所做的任何更改的最佳方法是什么。我已经读过-i标志可以向stdout提供输出,但是如何将其放在条件块中呢?

詹姆斯·怀特

根据对我的原始问题的评论,使用-i标志将rsync输出输出到stdout,并使用非字符串检查条件来查看错误代码检查中是否有任何实际更改。将rsync命令包装在变量中可以完成检查。

RSYNC_COMMAND=$(rsync -aEim --delete /path/to/remote/ /path/to/local/)

    if [ $? -eq 0 ]; then
        # Success do some more work!

        if [ -n "${RSYNC_COMMAND}" ]; then
            # Stuff to run, because rsync has changes
        else
            # No changes were made by rsync
        fi
    else
        # Something went wrong!
        exit 1
    fi

潜在的缺点是,您必须丢失详细的输出,但始终可以将其记录到文件中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何知道jtextarea中是否进行了任何更改?

检查ConcurrentHashMap的computeIfAbsent是否进行了更改

检查Git是否以编程方式进行了更改

依赖顺序是否在应用程序中进行了任何更改?

我怎么知道,UITextField和UITextView中是否进行了任何更改/修改?

检查用户登录的页面是否在Angular 2中进行了更改

检查onbeforeunload中的ace编辑器以查看是否进行了更改

如何检查我的应用程序是否已针对Android进行了电池优化配置?

如何修改并检查是否在Java 8中进行了修改?

如何检查用户是否在24小时滑轨之前进行了投票4

如何检查电子邮件是否已在Firebase中使用参数进行了验证?

如何使用JavaScript检查是否对服务器进行了调用

Google Play应用内审核API。如何检查用户是否对该应用进行了评分?

如何检查在 TLS/SSL 握手期间是否进行了主机名验证?

检查是否对numpy数组进行了排序

检查用户是否对某项投票进行了投票

检查用户是否对范围进行了投票

检查客户是否对Woocommerce中的产品进行了评论

开玩笑-如何测试函数是否对参数进行了更改

Bash评估在版本4.4中进行了更改?

Vulkan-HPP开发人员是否在vk :: DebugUtilsMessengerEXT创建中进行了任何更改?

在关闭Angular材质对话框之前,检查用户是否对Reactive表单进行了更改

如何确定Swift是否使用优化进行了编译

如何确定卫星是否进行了机动?

如何知道 Hsqldb "MERGE INTO" 是否进行了插入或更新

如果进行了任何更改,如何在离开Angular 4页面时提示用户?

尽管进行了边界检查,但ArgumentOutOfRangeException

仅保存如果进行了更改

内核是否进行了碎片整理