小编Man*_*o D的帖子

使用 nohup 和 rsync 的简单备份 bash 脚本

我有以下简单命令可以使用 nohup 在后台启动备份过程:

nohup rsync -a /src /target &
Run Code Online (Sandbox Code Playgroud)

我正在尝试找到正确的解决方案来捕获退出代码并将失败或成功消息发送到日志文件或邮件中。为了实现这一目标,我尝试了以下方法:

nohup rsync -a /src/ /target/ &
oldpid=$!
wait $oldpid

if [[ $? -eq 0 ]]
then
        echo "SUCCESS"
else
        echo "FAILED"
fi
Run Code Online (Sandbox Code Playgroud)

该代码似乎工作正常,但如果这是一种可靠的方法,我现在实际上不工作。我有两个担忧:

  • $?当中间执行另一个命令时,该变量是否会被覆盖?
  • 难道是wait $oldpidnohup的异步方式搞乱了?

或者也许这个逻辑只是愚蠢的并且有更好的方法?

command-line bash backup scripts rsync

5
推荐指数
1
解决办法
1640
查看次数

标签 统计

backup ×1

bash ×1

command-line ×1

rsync ×1

scripts ×1