仅在 shell 脚本中定义的时间内运行命令

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

我正在尝试捕获日志文件中的一些详细信息,并且希望仅在 23:00 到 01:00 之间捕获有关我的虚拟机的这些详细信息。我将在后台使用 nohup 来运行它,例如 - nohup script.sh & 并且该脚本应该只在 23:00 到 01:00 开始运行。我已经尝试过以下方法,但它似乎没有做我所例外的事情:-

#!/bin/bash     
prodStartTime="230000"
prodEndTime="010000"
logfile=/tmp/processrunning.txt
touch $logfile

while true
do
currentTime=`date +"%H%M%S"`
if [[ $currentTime -ge $prodStartTime && $currentTime -le $prodEndTime ]];
  then
  ps aux | sort -nrk 3,3 | head -n 5 > $logfile
else
  :
fi
sleep 30
done
bash shell
1个回答
0
投票
[[ $currentTime -ge $prodStartTime && $currentTime -le $prodEndTime ]];

是:

HHMMSS >= 230000 and HHMMSS <= 010000

一个数字如何同时大于 230000 和小于 10000

此外,以

0

 开头的数字是八进制数。 010000 等于 4096。

您想要

HHMMSS >= 230000 __or__ HHMMSS <= 10000

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