Cron 作业 — 如果计算机不活动 x 分钟,则关闭 wifi

Cron 作业 — 如果计算机不活动 x 分钟,则关闭 wifi

我希望有一个.bashrc可以在启动时运行的别名命令。其中规定:如果计算机处于非活动状态 X 分钟,则关闭 wifi。我该怎么做呢?

我目前使用 netctl 作为我的网络管理器。我已经有一个用于关闭 wifi 的别名:alias woff='sudo netctl stop network'

但我不确定如何在 bashrc 中执行 if-then 语句。

答案1

这完全取决于你如何定义闲置的。如果您认为空闲是没有用户输入,那么您可以编写一个脚本来监视以下输出:

xscreensaver-command -watch

根据其手册页,其中:

-watch 每次屏幕保护程序更改状态时打印一行:当屏幕空白、锁定、取消空白或更改正在运行的 hack 时。这个选项永远不会返回;它旨在供希望以某种方式对屏幕保护程序做出反应的 shell 脚本使用。其输出的一个示例是:

BLANK Fri Nov  5 01:57:22 1999
RUN 34
RUN 79
RUN 16
LOCK Fri Nov  5 01:57:22 1999
RUN 76
RUN 12
UNBLANK Fri Nov  5 02:05:59 1999

手册页有一个编写的示例脚本perl可以帮助您入门。


您还可以查看该batch命令,它是套件的一部分atd

从它的手册页:

batch   executes commands when system  load  levels  permit;  in     other
       words,  when  the  load  average  drops below 0.8, or the value
       specified in the invocation of atrun.

相关内容