Linux通知脚本

时间:2014-10-12 19:03:53

标签: linux bash shell

我想在Linux上编写一个脚本,每当我登录系统时,它会每隔半小时通过一些警告信息通知我。如何在操作系统级别上执行类似的操作?它是cronjob和javascipt警报消息的混合体。我怎么能这样做?

5 个答案:

答案 0 :(得分:1)

我找到了一个解决方案: -

import sys
import pynotify

if __name__ == "__main__":
    if not pynotify.init("icon-summary-body"):
        sys.exit(1)
    n = pynotify.Notification("Heading","content","notification-message-im")
    n.show()

然后运行cronjob

答案 1 :(得分:0)

让一个脚本每半小时在shell上写一条消息的简单方法是在C:

 void main()
 {
   while (1) {
   sleep(1800);
   printf("My Message \n"); }
 }

使用gcc

进行编译
 gcc myfile -o my_script && chmod +x my_script

打开您的主终端&写:

./my_script &

你继续在你的外壳上工作,每隔半个小时,你的信息就会弹出;例如,你可以使用stringformats在printf中包含嘟嘟声,或者只是去做你想做的事。


编辑:要在系统中打印弹出窗口,您需要使用类似kdialog的工具,我将使用kdialog打印一个示例,因为这样可以在我的系统上运行,但事情是喜欢gtk-dialog-info或者也可以工作:

#!/bin/sh

while :
do
kdialog --msgbox "MyMessage";
sleep 1800;
done

在shell中做:

sh myscript.sh &

答案 2 :(得分:0)

您是否需要在窗口环境中通知或仅以某种方式通知?最简单的可能是使用cronjobs MAILTO标记来定义执行脚本输出的收件人。

像这样:

MAILTO=email@example.com
* * * * bash ~/test.sh

或者,您可以使用cron在不同时间使计算机以不同的模式发出蜂鸣声。至少在Ubuntu上,有一个叫做beep的实用工具应该可以让这很容易。

答案 3 :(得分:0)

我认为您正在寻找的是cron和write的混合物。请记住,尽管它确实允许您向终端发送消息,但接收消息可能会使全屏程序(例如vim或emacs)陷入混乱。

编辑:如果您想要弹出一个窗口,我建议xmessagezenity

来源:http://ubuntuforums.org/showthread.php?t=876618

答案 4 :(得分:0)

将以下内容放在用户级crontab中。您可以在终端中输入crontab -e来打开它。

30 * * * * DISPLAY=:0.0 notify-send "Red alert" "All personnel must evacuate"

notify-send将显示GUI通知。它需要将DISPLAY env变量正确设置为您登录的显示(最有可能:0.0)。 (对于某些GUI应用程序,您可能需要其他env变量,例如DBUS_SESSION_BUS_ADDRESS)。 出于测试目的,将30替换为*以每分钟获取该消息,而不是每30分钟。

更多信息: https://help.ubuntu.com/community/CronHowto