我想在Linux上编写一个脚本,每当我登录系统时,它会每隔半小时通过一些警告信息通知我。如何在操作系统级别上执行类似的操作?它是cronjob和javascipt警报消息的混合体。我怎么能这样做?
答案 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)陷入混乱。
答案 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分钟。