文档首页 > > 最佳实践> 通过自定义脚本实现其它Linux应用的一致性备份> 开发冻结脚本

开发冻结脚本

分享
更新时间: 2019/07/11 GMT+08:00

appexample_freeze.sh示例如下:

#!/bin/sh
AGENT_ROOT_PATH=$1  #Agent程序调用脚本时,传入的的根目录,日志函数等会使用此变量,请不要改名
PID=$2 #Agent程序调用脚本时,传入的PID数字,用于结果的输出,请不要改名
. "${AGENT_ROOT_PATH}/bin/agent_func.sh"#引用脚本框架,提供了日志,加解密等功能
#结果处理函数,用于将结果写入到文件中,供脚本调用者获取返回值。
#入参 $1: 0表示成功,1表示失败
#无返回值
#RESULT_FILE在agent_func.sh中进行了定义
function ExitWithResult()
{
    Log "[INFO]:Freeze result is $1."
    echo $1 > ${RESULT_FILE}
    chmod 666 ${RESULT_FILE}
    exit $1
}
function Main()
{
    Log "*********************************************************************"
    Log "[INFO]:Begin to freeze appexample."
    #查找appexample是否存在,如果appexample不存在,则返回0,退出
    #在冻结IO步骤中,Agent程序会依次调用每个冻结脚本,如果一个失败,总体就会失败。所以为了防止干扰其他程序的冻结过程,找不到appexample时,应返回0
    which appexample
    if [ $? -ne 0 ]
    then
            Log "[INFO]:appexample is not installed."
            ExitWithResult 0
    fi
    #调用实际的冻结命令
    appexample -freeze
    if [ $? -ne 0 ]
    then
            Log "[INFO]:appexample freeze failed."
            #冻结失败,记录结果并退出
            ExitWithResult 1
    fi
    Log "[INFO]:Freeze appexample success."
    #冻结成功,记录结果并退出
    ExitWithResult 0
}
Main
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区