0 19-21 * * * bash /tmp/speed_download.sh 60 > /dev/null 2>&1 怎么设置自动终止
时间: 2024-09-26 09:09:44 浏览: 39
这个Linux crontab定时任务表达式`0 19-21 * * * bash /tmp/speed_download.sh 60 > /dev/null 2>&1`代表每天的19点到21点,每分钟执行一次`/tmp/speed_download.sh`脚本,并将输出重定向到/dev/null以隐藏日志,错误信息同样会被重定向。
如果你想设置自动终止,通常你需要在shell脚本`speed_download.sh`中添加相应的退出条件或超时处理。例如,如果你希望如果下载超过60秒还未完成就停止,可以在脚本中增加检查运行时间并按需中断的部分,比如:
```bash
#!/bin/bash
DOWNLOAD_TIMEOUT=60
START_TIME=$(date +%s)
while [ $(date +%s) -lt $((START_TIME + DOWNLOAD_TIMEOUT)) ]; do
# 这里是你实际的下载命令
download_command
if [[ $? -eq 0 ]]; then
break # 如果下载成功,跳出循环
fi
# 检查是否达到最大允许时间
if [[ $(date +%s) -ge $((START_TIME + DOWNLOAD_TIMEOUT)) ]]; then
echo "Download timed out after $DOWNLOAD_TIMEOUT seconds."
break # 超时则终止下载
fi
sleep 1 # 等待1秒再尝试
done
```
在这个例子中,我们设置了下载的最大允许时间为60秒,如果下载未完成且超过了这个时间,脚本会打印一条消息并停止。
阅读全文