Keywords: notify-send; cron; crontab; Linux; Ubuntu; bash

假如:

  1. 你常用 cron 让电脑定时运行一些脚本,然后将运行结果 echo 到某个文本中
  2. 你想要在你工作的头昏脑胀的时候,让 fortune 给你的 notification 推送个不好笑的笑话
  3. 你也一工作就忘记喝水上厕所,想要 notification 有规律的提醒你喝水上厕所
  4. 你想在后台运行程序结束的时候,提醒你一声, 比如下载完成了
  5.  等等

你可以使用 Linux 中的 notify-send 功能。温馨提示,一下内容假定你已经很熟悉 cron 功能

实现:

其实很简单,拿例子说事

Case study one

  0  9-17  *  *  *  export DISPLAY=:0 && /usr/bin/notify-send -i /path/to/coffee.jpg 'Hello' 'Water time' 

通过上面的 crobtab 条目,我可以实现在上班时间(8-17点)中的每个整点显示 notification, 并配上一张自己选择的图片来提醒自己。其中 ‘Hello’ 是标题, ‘Water time’ 是详细内容。

Case study two

 0  12  *  *  *  /usr/local/bin/periodic.sh && export DISPLAY=:0 && /usr/bin/notify-send 'Script' 'The maintenance mission has done' 

上面的 crobtab 可以实现在每天中午12(就是你去吃中饭的时候)点,电脑自己执行维护脚本,如果执行完成,会以通知 notification 的形式告诉你,任务执行完毕。

Case study three

 0  13  1  4,8,12  *  sudo purge-old-kernels --keep 3 && export DISPLAY=:0 && /usr/bin/notify-send 'Script' 'The old kernels have been deleted' 

上面的 crobtab 可以实现每季度的1号13点,电脑自己执行删除旧内核的任务(–keep 表示保留最近的几个)。如果执行完成,会以通知 notification 的形式告诉你,任务执行完毕。

Case study four

 0  10  *  *  *  export DISPLAY=:0 && /usr/bin/notify-send 'Script' '$(HaveFun)' 

上面的 crobtab 可以实现每天早上10点,电脑自己执行你自己写的脚本 (HaveFun), 并将运行结果以通知 notification 的形式显示。

其他:

我其实在 Mac OS 上也实验过,它有自己的替代品,比如 display notification。 但是感觉都太麻烦,没有 notify-send 这么干净利落。

HaveFun 是一个很简单的 C 语言程序,因为是自己最开始学变成语言 Fortran 时写的,所以就留着做个纪念。它根据每个人的生日来推算你今天的各项指标,比如智力啊,心情啊,生理啊,并且预测下一个峰值是什么时间。最近又给它套了一个简单到不能再简单的 GUI。如果你也有兴趣,可以从链接处的 GitHub 下载并且编译。

 

 

 

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s