分类 技术 下的文章

很多人都对树莓派的硬件 hack 功能(译注:就是用户可以自己发挥想像力,把树莓派设计成自己想要的机器)感兴趣,而我看中的一点是树莓派的低耗电功能,我可以用它来代替现在在用的 Linux 服务器。在以前的文章中我已经介绍过如何用树莓派代替这些服务器来管理我的啤酒冰箱,以及我在澳大利亚托管的一台树莓派。托管树莓派之后,我开始思考我正在使用的服务器的单点故障问题,并且考虑着手解决它。当你看到文章标题里的“2 Pi R”,你也许会想到圆周长计算公式(C = 2PiR,Pi 为圆周率,R 为半径),但在本文中,“R”的意思是“冗余(redundancy)”。当然,一块树莓派并不能实现冗余,至少需要两块。下面我将介绍如何用两块树莓派实现冗余。

本文将建立一个底层框架,为俩树莓派实现冗余提供基础服务,首先我要用 GlusterFS 建立一个集群网络文件系统。在之后的文章中,我还会介绍如何利用共享存储来建立其他冗余服务。注意,虽然本文使用的是树莓派,但下面的配置操作同样适用于其他硬件。

配置俩树莓派

首先从树莓派官网下载最新的 Linux 发行版,并安装到两块 SD 卡中。将树莓派接到电视机上,然后按照文档提示选择内核镜像并启动系统,确认一下 SSH 服务有没有启动(默认情况下 SSH 应该是开机启动的)。你可以使用 raspi-config 命令来增加根分区空间,以便能充分利用 SD 卡的容量。确认系统正常工作、SSH 正常启动后,我可以过程访问它了。我将树莓派与电视机断开,并连到交换机上,重启系统,没有显示界面。

默认情况下,Raspbian 会通过 DHCP 获取自己的网络信息,但是在设置冗余服务时,我们希望树莓派每次开机都使用同一个 IP 地址。在我的环境中,我设置了我的 DHCP 服务器,它会在树莓派启动时为它们分配固定的 IP 地址。而你可以编辑 /etc/network/interfaces 文件:

iface eth0 inet dhcp

修改成:

auto eth0
iface eth0 inet static
  address 192.168.0.121
  netmask 255.255.255.0
  gateway 192.168.0.1

当然,要将上面的参数修改成你自己的参数,确保每个树莓派使用不同的 IP 地址。我把两个树莓派的主机名都改了,便于在(通过 SSH)登录的时候区分它们。怎么改主机名呢?以 root 权限编辑 /etc/hostname 文件。最后重启系统,确认树莓派使用了正确的网络配置和主机名。

配置 GlusterFS 服务器

GlusterFS 是一个用户态的集群文件系统,我选择它,是因为它配置共享网络文件系统很方便。首先选一个树莓派作为主设备(master)。在主设备上你需要做一些初始化操作,完成后,它们会自动执行故障转移。下面是我架设的环境:

Master hostname: pi1
Master IP: 192.168.0.121
Master brick path: /srv/gv0
Secondary hostname: pi2
Secondary IP: 192.168.0.122
Secondary brick path: /srv/gv0

在开始之前,登入这两个树莓派,然后安装 glusterfs-server 软件包:

$ sudo apt-get install glusterfs-server

GlusterFS 将数据保存在一些被称为“块”的设备中。一个“块”是一个系统路径,由你指定给 gluster 使用。GlusterFS 会将所有“块”组合成一个存储卷,给客户端使用。GlusterFS 会将文件的数据分割成多份,保存在不同的“块”中。所以虽然一个“块”看起来就是一个普通的路径,你最好不要在树莓派中直接操作它,而应该通过客户端访问 GlusterFS 服务,让 GlusterFS 操作。本文中我在两个树莓派中都新建一个 /srv/gv0 目录作为 GlusterFS 的“块”:

$ sudo mkdir /srv/gv0

在我的环境中,我将 SD 卡上的根文件系统共享出来,而你可能需要共享更大的存储空间。如果是这样的话,在两块树莓派上都接上 USB 硬盘,格式化后挂载到 /srv/gv0 上。编辑下 /etc/fstab 文件,确保系统每次启动时都会把你的 USB 硬盘挂载上去。两个树莓派上的“块”不一定需要有相同的名字或者相同的路径名称,但是把它们设置为相同的值也没什么坏处。

配置好“块”的路径,安装好 glusterfs-server 软件包,确认两个树莓派都正常工作,然后登入被你设为主设备的树莓派,输入“gluster peer probe”命令,将次设备加入到集群中。在我的环境中,我用 IP 地址表示第二个节点,如果你比较有个性,并且有设置过 DNS,你也可以用主机名表示这个节点。

pi@pi1 ~ $ sudo gluster peer probe 192.168.0.122
Probe successful

目前为止,我的 pi1 (192.168.0.121) 信任 pi2 (192.168.0.122),我可以建立一个存储卷,名字都想好了:gv0。在主设备端运行命令“gluster volume create”:

pi@pi1 ~ $ sudo gluster volume create gv0 replica 2 192.168.0.121:/srv/gv0 192.168.0.122:/srv/gv0
Creation of volume gv0 has been successful. Please start 
the volume to access data.

这里稍微解释一下命令的意思。“gluster volume create”就是新建一个卷;“gv0”是卷名,这个名称将会在客户端被用到;“replica 2”表示这个卷的数据会在两个“块”之间作冗余,而不是将数据分割成两份分别存于两个“块”。这个命令保证了卷内的数据会被复制成两份分别保存在两个“块”中。最后我定义两个独立的“块”,作为卷的存储空间:192.168.0.121 上的 /srv/gv0 和 192.168.0.122 上的 /srv/gv0。

现在,卷被成功创建,我只需启动它:

pi@pi1 ~ $ sudo gluster volume start gv0
Starting volume gv0 has been successful

然后我可以在任何一个树莓派上使用“volume info”命令来查看状态:

$ sudo gluster volume info

Volume Name: gv0
Type: Replicate
Status: Started
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: 192.168.0.121:/srv/gv0
Brick2: 192.168.0.122:/srv/gv0

配置 GlusterFS 客户端

卷已启动,现在我可以在一个支持 GlusterFS 的客户端上,将它作为一个 GlusterFS 类型的文件系统挂载起来。首先我想在这两个树莓派上挂载这个卷,于是我在两个树莓派上都创建了挂载点,并下面的命令把这个卷挂载上去:

$ sudo mkdir -p /mnt/gluster1
$ sudo mount -t glusterfs 192.168.0.121:/gv0 /mnt/gluster1
$ df
Filesystem         1K-blocks    Used Available Use% Mounted on
rootfs               1804128 1496464    216016  88% /
/dev/root            1804128 1496464    216016  88% /
devtmpfs               86184       0     86184   0% /dev
tmpfs                  18888     216     18672   2% /run
tmpfs                   5120       0      5120   0% /run/lock
tmpfs                  37760       0     37760   0% /run/shm
/dev/mmcblk0p1         57288   18960     38328  34% /boot
192.168.0.121:/gv0   1804032 1496448    215936  88% /mnt/gluster1

如果你是一个喜欢钻研的读者,你可能会问了:“如果我指定了一个 IP 地址,如果192.168.0.121当机了,怎么办?”。别担心,这个 IP 地址仅仅是为了指定使用哪个卷,当我们访问这个卷的时候,卷内的两个“块”都会被访问到。

当你挂载好这个文件系统后,试试在里面新建文件,然后查看一下“块”对应的路径:/srv/gv0。你应该可以看到你在 /mngt/gluster1 里创建的文件,在两个树莓派的 /srv/gv0 上都出现了(重申一遍,不要往 /srv/gv0 里写数据):

pi@pi1 ~ $ sudo touch /mnt/gluster1/test1
pi@pi1 ~ $ ls /mnt/gluster1/test1
/mnt/gluster1/test1
pi@pi1 ~ $ ls /srv/gv0
test1
pi@pi2 ~ $ ls /srv/gv0
test1

你可以在 /etc/fstab 上添加下面一段,就可以在系统启动的时候自动把 GlusterFS 的卷挂载上来:

192.168.0.121:/gv0  /mnt/gluster1  glusterfs  defaults,_netdev  0  0

注意:如果你想通过其他客户端访问到这个 GlusterFS 卷,只需要安装一个 GlusterFS 客户端(在基于 Debian 的发行版里,这个客户端叫 glusterfs-client),然后接我上面介绍的,创建挂载点,将卷挂载上去。

冗余测试

现在我们就来测试一下这个冗余文件系统。我们的目标是,当其中一个节点当掉,我们还能访问 GlusterFS 卷里面的文件。首先我配置一个独立的客户端用于挂载 GlusterFS 卷,然后新建一个简单的脚本文件放在卷中,文件名为“glustertest”:

#!/bin/bash

while [ 1 ]
do
  date > /mnt/gluster1/test1
  cat /mnt/gluster1/test1
  sleep 1
done

这个脚本运行无限循环并每隔1秒打印出系统时间。当我运行这个脚本时,我可以看到下面的信息:

# chmod a+x /mnt/gluster1/glustertest
root@moses:~# /mnt/gluster1/glustertest
Sat Mar  9 13:19:02 PST 2013
Sat Mar  9 13:19:04 PST 2013
Sat Mar  9 13:19:05 PST 2013
Sat Mar  9 13:19:06 PST 2013
Sat Mar  9 13:19:07 PST 2013
Sat Mar  9 13:19:08 PST 2013

我发现这个脚本偶尔会跳过1秒,可能是 date 这个命令并不是很精确地每隔1秒钟打印一次,所以偶尔会出现输出时间不连惯的现象。

当我执行这个脚本后,我登入一个树莓派并输入“sudo reboot”重启这个设备。这个脚本一直在运行,如果出现输出时间不连惯现象,我不知道还是不是上面说的偶然现象。当第一个树莓派启动后,我重启第二个树莓派,确认下这个系统有一个节点丢失后,我的程序仍然能正常工作。这个冗余系统配置起来只需要几个命令,如果你需要一个冗余系统,这是个不错的选择。

现在你已经实现了 2 Pi R 组成的冗余文件系统,在我的下篇文章中,我将会加入新的冗余服务,将这个共享存储系统好好利用起来。


via: http://www.linuxjournal.com/content/two-pi-r

译者:bazz2 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

基于Linux的操作系统的优点是它们可以根据不同的需求定制。因此,在这里我们将为您呈现6款专为上网本设计不同于其它而又有趣的顶尖发行版。

评定一款上网本的OS是否良好,主要取决于它能否“物尽其用”。当在闲置模式下,内存使用应该降到最小限度,你需要一个很好的导航系统来避免屏幕的错乱。

对于一名 Linux 爱好者来说,拥有一款对本本优化过的操作系统,同时还是基于开源技术,这该有多好啊。

  1. AntiX - 利用了 iceWM 窗口管理器,能帮助维持初始内存的低占用。虽然它并不像 Ubuntu, Mint 和 Elementary 那样风靡,但是它功能齐全。在底部有一个导航任务栏,桌面上的标准跨操作系统图标已经存在数年之久。AntiX 带有一系列的应用程序,其中有少部分不太适合用于上网本。
  2. SparkyLinux - Razor-Qt 的外观和体验是非常传统的,底部有一个面板,菜单位于底部的左下角。SparkyLinux 带有一系列应用程序。开发者再次选择了 LibreOffice 套件,而不是更加轻量的 Abiword 和 Gnumeric 工具包。
  3. Lubuntu - LXDE 桌面非常的轻量,也近乎 Xubuntu 那么容易定制。这桌面在熟悉不过了,在底部有一个面板带有菜单和系统托盘图标。不过,你可以根据自己需要多面板自定义 Lubuntu 外观。Sylpheed 邮件客户端,火狐浏览器,以及 Abiword 和 Gnumeric ,这些应用程序对于上网本来说在合适不过了。
  4. OS4 - 基于 Xubuntu。使用了 XFCE 桌面,完美定制,你可以尝试任何一种方式来工作。XFCE 是一款轻量级的桌面环境,在上网本上运行极佳。然而,你需要安装额外的限制包来播放 Flash 视频和 MP3 , 但是OS4会让这些立马工作。同时安装有 Commodore Amiga 模拟器,你如果喜欢在你的上网本上尝试一款经典复古游戏,这是个再好不过的选项。
  5. Point Linux - 它使用了MATE桌面,使它变得更加独特。MATE 桌面最初源于 GNOME2 ,但是现在它已经凭借自身发展成一个真正优秀的桌面环境。Point Linux 外观看起来非常时尚。菜单看起来非常好,在上网本上的执行效率也很高。类似于 LXDE 和 XFCE 桌面,它也有很高的定制性。Point Linux 默认带有 4 个虚拟工作区,允许你最大限度的使用你的上网本,因此它受到内存和处理器处理显示问题的限制。
  6. Elementary OS - 如果你在寻找一些非常时尚的东西,那么这款绝对适合你。它没有安装 Office 套件,但是你可以挑选你想要的工具。对于网页浏览器你可以用 Midori,邮件客户端可以用 Geary。安装有用来观看视频的 Totem 以及一款名为 Noise的紧凑型音频应用程序。

来源: eyerydaylinuxuser.com


via: http://www.efytimes.com/e1/fullnews.asp?edid=126643

译者:Luoxcat 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Ubuntu 是一个功能强大的现代化操作系统,支持你进行多种任务。从使用 Libreoffice 创建和编辑文档到使用 GIMP 处理图片,Ubuntu 都是最佳选择。

如果你需要一个功能强大的操作系统来完成工作,那么你一定会考虑选择 Ubuntu。

你可以用 Ubuntu 来完成的另一件事情是为你的桌面截屏或者激活应用程序的窗口。你可以安装很多第三方工具来完成这些事情,但是实际没有必要,因为 Ubuntu 安装时已自带这些功能。

如果你想向别人展示如何在Ubuntu上面做一些事情,那么这个应用程序就非常有用。截屏得到的图片文件可以保存,也可以通过email发送给其他人。

使用截屏程序,需要进入到面板界面或者直接按下键盘上面的 Windows 键进入面板,Windows 键指的是键盘空格键的左边有 Windows 图标的键。

当面板打开后,找到“截屏”,然后打开这个程序(译者注:需要在已安装程序中查找或者直接在搜索框中输入“截图”)。

以下是你能够通过这个截屏程序做的操作:

  • 截取整个屏幕
  • 截取当前程序窗口
  • 截取特定区域

如果你想在截图时将鼠标箭头一起截取,可以将在下方图片 Effects 选项中的"Include pointer"选项选中即可。

当你选择好你的截屏方式后,点击图片中的‘截图’按钮,然后程序就会退出并且自动保存图片。

如果你想截取特定区域,需要选择该方式,当你点击‘截图’按钮时,鼠标会变成十字形状。此刻,你可以拖拽这个十字形状的鼠标,来得到任意你想截取的区域。在你停止拖拽鼠标后,图片会自动截取。

以上就是你在使用 Ubuntu 时,如何完成一个截图的操作。

希望能够帮助到你,欢迎再来。

享受截屏的欢乐!


via: http://www.liberiangeek.net/2013/12/daily-ubuntu-tips-take-screenshots-of-your-desktop/

译者:liuaiping 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

俗话说得好,‘力量越大,责任越大’ - 至少在Conky这个Linux的多功能的系统监视工具上面是完全正确的。

一方面它特性强大,灵活性强,另一方面它的设置比较麻烦。

Several themes and modes are included

Conky Harmattan,一个来源于deviantArt用户Zagortenay333的新的主题收集器,同样也不例外。虽然屏幕截图显示的是一个能打动大多数人的时尚桌面小工具,但看到了解到它的复杂配置后估计会吓跑许多人了。

为了帮助使用者,它的作者提供了一步一步的安装指导,如果安装过程未按正常状况进行,它也提供了一个有用的“故障排除” 手册告诉你如何修复一些最常见的问题。

Harmatten包括:

  • 12个主题,包括Ubuntu Touch,Numix和Elementary designs
  • 4种显示模式,包括‘mini’和‘compact‘
  • 2种天气模式
  • 天气单位转换

不像大多数Conky主题,Harmattan不会将别人屏幕的样子复制到你的屏幕上。

默认情况下Harmattan是“固定”;你需要按下ALT键并用鼠标点击和移动它。或者你也可以在设置中调整conky-config中的'x'和'y'值 - 这会浪费不少时间。此外,也别忘记修改Yahoo!天气预报小部件的地区代码,它在.conkyrc里面。

获取Harmattan Conky

要使用这个主题,你需要先从Ubuntu软件中心安装conky-all和curl。如果没有这些某些功能可能无法正常工作。

下一步,从作者deviantArt的页面上下载主题。

之后提取Harmattan文件,按Ctrl + H在Nautilus文件浏览器查看“隐藏”的文件。

最后,根据‘Installation’指导进行。


via: http://www.omgubuntu.co.uk/2014/01/conky-harmattan-for-linux

译者:乌龙茶 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

当你使用 WEP,WPA 或 WPA2-PSK 连接到无线网络时,选择“自动连接”后密码将保存在Linux Mint(或任何其他的操作系统)中。试想一个情况,例如你需要提供密码给来访者,这时你需要知道WiFi密码,然而你有没有把它记下来。你可以轻松地找到之前连接的WiFi密码。

在这篇新手教程中,我们将会指导你如何在 Linux Mint 16 中找到保存的 WiFi 密码

在 Linux Mint 中找到保存的 WiFi 密码:

找到保存的 WiFi 密码,其实过程非常简单。点击 Menu 输入network。在其中选择Network Connections

在 Network Connections 中,你可以看到所有你最近链接过的 WiFi 网络。选择你想要知道密码的一个,点击Edit

Wi-Fi Security 选项卡下,选中 Show password 来显示密码。

通过以上步骤,你就可以得到保存的 WiFi 密码。你也可以通过类似的步骤在 Ubuntu 中获取保存的 WiFi 密码。希望这篇文章能够帮到你。


via: http://itsfoss.com/find-wifi-password-linux-mint-16/

译者:乌龙茶 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Google Calendar 是时下最流行的网页应用程序之一。用户可以通过网络接口或者本地的应用程序跨设备访问或同步 Google Calendar。在 Linux 上,有很多方法可以本地访问 Google Calendar,比如用电子邮件客户端插件(如 Evolution 或 Thunderbird )或者用日历应用程序(如 Sunbird 或 Rainklendar)。这些方法通常都需要安装不必要的大型软件,这些软件你很可能根本不需要。

如果你只是想在本地的 Linux 上翻翻 Google Calendar 或者用它设置提醒,那么你可以考虑使用Google Calendar 命令行接口(或者 gcalcli),这是一种更轻型化的方法。对于 Linux 桌面操作系统用户来说,好处不止这些,如果将 gcalcli 与Conky搭配使用你就可以把 Google Calendar 透明地融入桌面主题。

在这个教程中,我会展示如何利用 gcalcli 和 Conky 将 Google Calendar 融入 Linux 桌面

在 Linux 安装 gcalcli

在安装 gcalcli 之前,要确保你正在用的是 Python 2 而不是 Python 3 ,因为 Python 3 与 gcalcli 不兼容。

如果是在 Debian、Ubuntu 或 Linux Mint 上可以用下面的命令安装 gcalcli

$ sudo apt-get install git python-pip python-gdata python-dateutil python-gflags python-vobject python-parsedatetime
$ sudo pip install google-api-python-client
$ sudo pip install apiclient urllib3
$ git clone https://github.com/insanum/gcalcli.git
$ cd gcalcli
$ sudo python setup.py install 

温馨提醒:Ubuntu 或 Linux Mint 的软件库中虽然有 gcalcli,但是这些版本并不包含其最新的特性和针对 bug 的修复。所以这里推荐按以上所述的方法由源文件构建 gcalcli。

对于Fedora 、CentOS 或 RHEL,可按如下方法安装。

$ sudo yum install git python-pip python-gdata python-dateutil python-gflags python-vobject
$ sudo pip install google-api-python-client
$ sudo pip install apiclient urllib3
$ git clone https://github.com/insanum/gcalcli.git
$ cd gcalcli
$ sudo python setup.py install 

gcalcli 的 Google 认证

为了能让 gcalcli 访问 Google Calendar ,你需要用你的 Google 帐号通过 OAuth2 认证,以使 gcalcli 获得许可来访问你的 Google Calendar。

第一次运行 gcalcli 的时候,OAuth2 认证会自动进行初始化。因此运行下面的命令开始

$ gcalcli agenda

该命令会输出如下的一个 URL 。

同时这个命令也会弹出一个指向该 URL 的浏览器窗口。如果因为一些原因,你的浏览器没有反应,你可以手动复制粘贴这个 URL 到你的浏览器中。

如果你还没有登录你的 Google 帐号,你得先登录。然后你会看到下面要求你许可 gcalcli 管理 Google Calendar 的信息。点击“Accept”即可。

支持 Google Calendar API

认证后,下一步就是支持 Google Calendar 的 API 访问。gcalcli 通过 Google Calendar API 访问Google Calendar 。但是,如果要使用 Google API 就必须明确设置你的 Google 帐号支持 Google API。

首先到:https://cloud.google.com/console。点击项目列表下的“API Project ”

转到“APIs & auth ”下面的“APIs”你会看见一个 Google APIs 列表。点击“Calendar API”的开关按钮使其能支持 API。

现在转到“APIs & auth”下的“Registered apps”那里,去注册 gcalcli app。点击最顶端的“Registered app”按钮。

填写 app 的名字(如,“My Gcalcli”),然后选择“ Native ”作为平台。点击“Registered”按钮。

这一步会生成并显示 OAuth 用户的 ID 和密码。另外关于上面提示的“You have not set up your product name(您没有设置您的产品名称)”,你可以忽略掉。

OAuth的认证结果将会保存在 ~/.gcalcli\_oauth 文本文件中。

用 gcalcli 在命令行中访问 Google Calendar

你现在马上就可以用 gcalcli 访问Google Calendar 了。

在你的家目录创建一个如下的 gcalcli 配置文件。将你先前获得的 OAuth 用户 ID 和 密码按下面格式输入进去。

$ vi ~/.gcalclirc

--clientid='XXXXXXXXXX.apps.googleusercontent.com' --clientsecret='YYYYYYYYYYYYYYYY'

到了这一步,你应该可以在命令行运行 gcalcli 了。

试试下面的命令,这两个命令会分别打印出一个你的 Google Calendar 的列表和今后 5 天的日程安排。

$ gcalcli list
$ gcalcli agenda

将 gcalcli 与 Conky 结合

最后一步就是将 gcalcli 的输出导入你的桌面主题中。为了做到这一点,你需要 Conky 这个非常强大的工具,它可以把许多信息直接显示在你的桌面主题中。

首先在你的 Linux 系统上 安装 Conky

然后,在你的家目录下的某个地方( 例如 ~/bin )创建如下的脚本程序。

$ vi ~/bin/gcal.sh

#!/bin/sh

gcalcli --conky calw 2 |
  sed -e 's/^[(0\x71^[(B/?/g' \
      -e 's/^[(0\x78^[(B/?/g' \
      -e 's/^[(0\x6A^[(B/?/g' \
      -e 's/^[(0\x6B^[(B/?/g' \
      -e 's/^[(0\x6C^[(B/?/g' \
      -e 's/^[(0\x6D^[(B/?/g' \
      -e 's/^[(0\x6E^[(B/?/g' \
      -e 's/^[(0\x74^[(B/?/g' \
      -e 's/^[(0\x75^[(B/?/g' \
      -e 's/^[(0\x76^[(B/?/g' \
      -e 's/^[(0\x77^[(B/?/g'

$ chmod +x ~/bin/gcal.sh 

重要提醒:上面脚本中的 ‘ [’ 必须是真正的 ESCAPE 键( 也就是说在 vi 中按 Ctrl-V 然后按 Esc )。

这个脚本程序将 VT100 转义序列转成Unicode组件图字符。这是必须的一步,因为 Conky 不支持 gcalcli 使用的 ANSI 字符画。

最后,在你的家目录中创建下面的 Conky 配置文件。

$ vi ~/.conkyrc

alignment top_right
maximum_width 630
minimum_size 330 10
gap_x 25
gap_y 50

own_window yes
own_window_type conky
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_transparent yes
own_window_argb_visual yes
own_window_argb_value 0

update_interval 300
background no

border_width 1
default_color cornflowerblue
default_outline_color white
default_shade_color white
double_buffer no
draw_borders no
draw_graph_borders no
draw_outline no
draw_shades no
max_port_monitor_connections 64
max_specials 512
max_user_text 16384
text_buffer_size 8096
no_buffers yes
out_to_console no
uppercase no
use_xft yes
xftfont Bitstream Vera Sans Mono:size=10

TEXT
*** Google Calendar Agenda ***
${execpi 300 gcalcli --conky agenda}
${execpi 300 ~/bin/gcal.sh}

这个 Conky 配置文件会直接在你的桌面主题上显示你的 Google Calendar 的一个日程表和一个两个星期的时间表。

现在,你可以运行下面的命令激活 Conky。

$ conky

你应该可以在 Linux 桌面的右边看到 Google Calendar,如题图。

确认 Google Calendar 可以正常运行后,你可以将 Conky 设为在每次登录时自动启动。

设置 Google Calendar 提醒

gcalcli 也可以为 Google Calendar 中即将到来的事件发送一个提醒。它使用 notify-send 命令。对于 Google Calendar 提醒,你可以像下面一样设置一个工作进程。

$ crontab -l

*/10 * * * * /usr/local/bin/gcalcli remind

via: http://xmodulo.com/2013/12/integrate-google-calendar-linux-desktop.html

译者:Linchenguang 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出