Keywords: bash; Linux; Ubuntu; Nexus 7; Android; mutt; crobtab

背景:

我有一个 Nexus 7 平板,运行着 Ubuntu 13.04 系统。它需要一天24小时常开,因为有些特殊的任务需要它完成。但是,有时候会忘记充电而自己关系,从而带来不必要的小麻烦。

在这里我提供两个小的 bash 脚本,用来自动检测 Linux 平板的电量。如果检测到当前电量少于 8%, 则自动给我发送一份邮件,提醒我需要给平板充电了。

以下的内容中,我默认你也使用 Linux 系统,而且已经安装了 mutt (有兴趣的可以点链接), 并会使用 cron (有兴趣的可以点链接

内容:

这里总共包括了两个脚本,分别为 bat.sh 和 checkBat.sh。 bat.sh 用来输出一些关于电池的当前状态,比如,是否充电,剩余电量,电池充满容量等。 checkBat.sh 主要从 bat.sh 的输出信息中提取剩余电量(百分比)信息,如果发现很小则执行邮件发送命令。

  1. bat.sh

新建一个 bat.sh 的空文件

 touch bat.sh 

 

 sudo chmod u+x bat.sh 

 

 vim bat.sh 

然后在文件中输入一下内容, (为了方便,记得要有写 comment 的习惯)

 upower -i /org/freedesktop/UPower/devices/battery_battery | grep -E "state|time\ to\ empty|percentage|capacity" 

最后将 bat.sh 移动到 /usr/local/bin/ 下。

   2. checkBat.sh

新建一个 bat.sh 的空文件

 touch checkBat.sh 

 

 sudo chmod u+x checkBat.sh 

 

 vim checkBat.sh 

然后在文件中输入一下内容, (仍然要记得写 comment )

tt=$(bat.sh | grep percentage | sed -e 's/[^0-9.]//g')

if [ $tt -le "8" ]; then
    echo "Hi, your Nexus 7 need some alcohol" | mutt -s "Battery condition" example@email.com
fi

# bat.sh 是上面已经写好的可执行脚本,用来输出电池信息
# 变量 tt 
# grep 用来提出关于 百分比 的信息
# sed 用来获取百分比中的 digital number
# if loop, 如果电量少于 8%, 将 "Hi, your Nexus 7 needs some alcohol" 的文本发送到 example@email.com 邮箱上。

最后将 checkBat.sh 移动到 /usr/local/bin/ 下。

3. cron

最后一步需要完成的就是在 cron schedule 中添加一行,让电脑定时运行 checkBat.sh 脚本

比如, 在每天每时的整点和半点时运行,

 0,30  *  *  *  *  /usr/local/bin/checkBat.sh 

最后我想说,让脚本把我们的生活丰富起来吧

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