Linux bash脚本陷入睡眠状态

时间:2016-11-21 20:16:16

标签: linux bash

我使用SpiderOak客户端将我的NAS服务器数据备份到云端。几个月来,这一直运作良好。然而,今天,在运行了一段时间后,cronjob进程陷入了睡眠状态。我需要帮助搞清楚为什么以及如何解决

我最近丢失了一直运行良好的cronjob脚本,所以我不得不写一个新的bash脚本。也许我犯了一个错误。这是:

#!/bin/sh
WORKING_FILE=/volume1/Volume_1/spideroak.lock
RESULT_FILE=/volume1/Volume_1/spideroak.log

# Cancel if there is an ongoing backup
if [ -f "$WORKING_FILE" ]
  then
    echo "Error: $WORKING_FILE already exists; backup is already running."
   exit 1;
  fi

# Run backup and save results to file with the name that gets checked above
/opt/SpiderOakONE/usr/bin/SpiderOakONE --batchmode --verbose --redirect="$WORKING_FILE"

# Rename log once backup is complete
mv "$WORKING_FILE" "$RESULT_FILE"

# Set log file permissions and exit
chmod 644 "$RESULT_FILE"
echo "Backup complete. Result saved to $RESULT_FILE"

我最近也更新了NAS的固件,但不知道是否可以通过将长时间的进程置于睡眠状态来发挥作用。如果我用只需几秒钟的时间来替换备份命令,一切正常。例如:如果我将--batchmode --verbose替换为--selection并将其他所有内容保留原样。

NAS是Synology DS-216 +运行DSM 6.0.2-8451 Update 4固件

1 个答案:

答案 0 :(得分:0)

不一定是答案(尽管它可能是答案的可能性很小),我建议你将“WORKING_FILE”的位置更改为/ tmp - 每次启动都会清除此文件夹(检查一下) Linux发行版确保这是您的默认设置),即使您的脚本以某种方式无法执行此操作,它也会删除控制文件。