安排通过crontab关闭显示器?

我想自动关闭特定时间段的显示器(例如在07:00到11:00之间)。 是否有任何命令要在crontab文件中设置? 有没有更好的方法?


综上所述:

在07:00自动关闭显示器。

自动开启11:00的显示器。

  • scren-saver&lock screen被禁用!

假设您正在使用Ubuntu的默认gnome-screensaver ,请打开终端并运行下一个命令,然后按说明操作:

  1. mkdir -p bin – 如果你还没有它,那么这个命令会在你的home文件夹中创建一个bin目录。
  2. gedit ~/bin/screen_on_or_off.sh – 这将在gedit中创建新文件screen_on_or_off.sh
  3. 复制并粘贴下一个脚本:

     #!/bin/bash export DISPLAY=:0 #very important if you want to be runned by a cron job current_hour=$(date +"%k") # Defining the disable_screensaver function function disable_screensaver { # Disabling sleep time # 0 value will never turn the screen off; you can change this value as you wish: # for example to turn the screen of after 10 min, use 600 gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac 0 gsettings set org.gnome.settings-daemon.plugins.power sleep-display-battery 0 gsettings set org.gnome.desktop.session idle-delay 0 } # Defining the enable_screensaver function function enable_screensaver { # Enabling sleep time to 1 second gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac 1 gsettings set org.gnome.settings-daemon.plugins.power sleep-display-battery 1 gsettings set org.gnome.desktop.session idle-delay 1 notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "Let's go to sleep now!" } if [ "$current_hour" -ge "7" ] && [ "$current_hour" -lt "11" ]; then enable_screensaver else disable_screensaver fi exit 0 
  4. 保存文件并关闭它。

  5. 返回终端并运行: chmod +x screen_on_or_off.sh – 授予脚本的执行访问权限。
  6. 只是为了测试,要运行新脚本,请输入终端~/bin/screen_on_or_off.sh
  7. 使用crontab -e命令编辑crontab条目(默认情况下,这将编辑当前登录用户crontab)并添加以下行:

     */1 * * * * /home/$USER/bin/screen_on_or_off.sh #change $USER with your username 

    我已经设置了每分钟的cron工作,但你可以随意改变或者你认为更好。 从这个意义上看http://en.wikipedia.org/wiki/Cron 。

  8. 保存文件并使用crontab -l检查新的crontab条目。

现在,您的屏幕将在7到11之间每天关闭。