任务计划程序的不同行为(手动与计划执行)

问题描述 投票:0回答:1

我正在尝试使用 speedtest-cli 定期测量我的互联网连接

  • speedtest-cli 安装在我的 NAS 上(DSM 6.2.4-25556 Update 7 DS413j)
  • 我写了下面的bash脚本
  • 我使用以下命令在任务计划程序(针对用户 root)中创建了一个任务:bash /volume1/Andy/_bandbreitenmessung/speedtest.sh

脚本:

#!/bin/bash
printf -v date '%(%Y-%m-%d %H:%M:%S)T\n' -1 
WD=$(/bin/dirname $0)
echo "${date}" >> $WD/log.txt
DataFile=$WD/data.csv
if [ ! -f $DataFile ]then
          echo "    DataFile (csv-header):  ${DataFile}" >> $WD/log.txt
          $WD/speedtest-cli/speedtest-cli --csv-header > $DataFile
          echo "   - Header geschrieben" >> $WD/log.txt
fi
echo "    DataFile (csv):  ${DataFile}" >> $WD/log.txt
$WD/speedtest-cli/speedtest-cli --csv >> $DataFile
echo "   - Daten geschrieben" >> $WD/log.txt

我遇到以下行为:

  1. 每当我通过任务调度程序手动执行任务时,它就像一个魅力:
    • 如果数据文件不存在,则执行 speedtest-cli --csv-header,创建带有标题行的数据文件,并且还执行 speedtest-cli --csv,将第一个数据行添加到数据文件中
    • 每次连续手动执行都会忽略 if 语句(因为数据文件已经存在),因此仅执行 speedtest-cli --csv 并将另一个数据行添加到数据文件中
    • log.txt 按预期写入
  2. 计划执行完成后,行为几乎相同,只是我没有将数据行放入数据文件中,因此命令 speedtest-cli --csv 无法按预期工作。

您知道为什么手动执行与计划执行会导致不同的行为吗?

shell scheduled-tasks synology
1个回答
0
投票

事实证明,speednet-cli --csv 似乎在整点 (x:00) 和 x:30 时失败,并显示“错误:无法连接到服务器来测试延迟。”。 我认为这是由于当时太多用户以预定方式运行 speedtest-cli 造成的。 我将配置计划任务以在这些时间之外执行脚本。

© www.soinside.com 2019 - 2024. All rights reserved.