首页 > 解决方案 > 如何避免从另一个脚本调用相同的 bash 脚本多次运行?

问题描述

我有一个名为“upcall”的脚本,它调用了 4 个不同的脚本。在 upcall 中,我以方式秀的方式称呼他们。当我直接运行脚本(bash upload_cloud1)时,脚本的第一部分有效,但从下面的脚本调用时无效。我确定有办法解决这个问题,但只是不确定它是什么。我目前在 crontab 中设置为每 15 分钟运行一次以检查已用空间。

#!/bin/bash

if [[ "`pidof -x $(basename $0) -o %PPID`" ]]; then
    echo "This script is already running with PID `pidof -x $(basename $0) -o %PPID`"
    exit; fi

count=$(</opt/rclone/scripts/upcount)
size=$(df -k /dev/sda2 | tail -1 | awk '{print $3}')
if [ "$size" -gt "234003200" ]; then
bash /opt/rclone/scripts/upload_cloud${count}
else
echo "Not full yet"
fi

标签: bash

解决方案


推荐阅读