以下是一个用于计算机器空闲时间的脚本。该脚本应该以 1 分钟的时间间隔检查 xserver 空闲时间,并通过 cronjob 将结果记录到某个位置。但这并不像我预期的那样工作。即使机器空闲的时间超过指定的空闲时间限制,它也不会报告空闲时间。
例子中的时间限制是1分钟。这只是为问这个问题和检查而设置的虚拟时间,不会浪费时间。
有人可以帮忙吗?
#!/bin/bash
timeinmsec="$(xprintidle)"
timeinmin="$(($timeinmsec / 60000))"
if [[ "$timeinmin" -gt 1 ]]
then
echo "$timeinmin Minutes idle time reported" >> /home/user/log.txt;
echo $(date '+%X') >> /home/user/log.txt;
echo "$line" >> /home/user/log.txt;
else
echo "No idle time reported" >> /home/user/log.txt;
echo $(date '+%X') >> /home/user/log.txt;
echo "$line" >> /home/user/log.txt;
fi
我得到的输出
No idle time reported
05:24:01 PM
No idle time reported
05:25:01 PM
No idle time reported
05:26:01 PM
No idle time reported
05:27:01 PM
答案1
设法解决了该问题。我必须export DISPLAY=:0
在脚本顶部添加,因为此任务由 cronjob 运行并且调用 xserver。