I am LAZY bones? AN ancient AND boring SITE

分类: '经验技巧' 的归档

mutt配置

由于evolution超慢(还不知道什么原因),就打算用mutt收邮件,这样应该挺快了吧!

但是发现mutt的配置还真不简单,自己研究的话不知道要话多久,不过还好有前辈研究过了,就转一下:
http://s5unty.blog.openrays.org/blog-htm-do-showone-tid-221.html

基本上照做就没事了,但是如果你的邮件服务器和我的一样,不需要TLS/SSL验证的话,按他那样就收不到邮件了。解决方法是在.fetchmailrc的最后加上一个sslproto ssl23
如下:

代码:
poll pop.somewhere.com proto pop3 uidl username “username” password “password” keep sslproto ssl23

还有一点需要特别注意的是,建立了.fetchmailrc和.msmtprc文件以后,默认的权限是644,这样是不行的没,因为这两个文件里面含有明文的密码,需要特别的保护。做法就是手工把这个两个文件的权限调成610,如下:

代码:
chomd 610 .fetchmailrc
chomd 610 .msmtprc

还有记一下fetchmail的官方FAQ:http://fetchmail.berlios.de/fetchmail-FAQ.html

引用:
配置mutt没有想像中的简单,所以要作好不断经历失败打击的心理准备。对于想拥有一个能简单收发邮件的mutt的门外汉来说,至少得需要几个小时。基本配置步骤

1.
首先是安装必须的软件
sudo apt-get install mutt fetchmail procmail msmtp
装mutt 之后,在命令行输入mutt开启mutt界面,首先在界面的下方,提醒我们”$HOME/Mail不存在。制造吗?”,有些像我一样急性子的人会毫不犹豫的no。然后开始寻找让mutt使用其它位置的目录作为信箱的办法。但是我相信你将花费很多的精力浪费在错误的认识上。原因是对mutt的误解,我为此付出了2个小时的代价,要知道它不是传统意义上的邮件客户端。信箱目录应该由负责接收邮件的程序控制,例如fetchmail。mutt只负责管理邮件,而不是收发邮件。
2.
安装了邮件接收程序fetchmail和邮件分拣程序 procmail后,首先分别创建各自的配置文件$HOME/.fetchmailrc和$HOME/.procmailrc,这样为的是让我们能独立使用fetchmail和procmail这两个程序通过pop接收并分拣邮件。

# $HOME/.fetchmailrc
poll pop.somewhere.com \
proto pop3 \
uidl \
username zhangsan \
password password \
keep

# $HOME/.procmailrc
# 用户邮箱目录的位置
MAILDIR=”/sun/mails/”
# 分拣日志保存的位置
LOGFILE=”/var/log/procmail.log”
# 邮件转换程序
FORMAIL=/usr/bin/formail

# 暂时未作任何分拣

# 所有经过分拣后的邮件都存储在$MAILDIR/default信箱中
:0
* .*
default

这时我们使用fetchmail -akv -m “/usr/bin/procmail -d %T”命令就可以把zhangsan在somewhere.com上的邮件通过pop下载到本地信箱/sun/mails/default文件中。这里要说明的是fetchmail的-a参数,此参数用于下载全部信件,如果不加此参数,fetchmail只会下载最新的信件,而不会重复下载已下载过的信件。已下载的信件由$HOME/.fetchids文件标识。
3.
如果参考以上设置,你已经可以正常的收到邮件,那就可以继续下面的配置。否则请先解决遇到的问题。下面我们继续配置邮件发送程序msmtp,配置文件比较简单易懂,需要注意的是tls和auth这两行,为了满足SMTP服务器对邮件发送者必须通过SSL或TLS认证的要求,请确认配置文件中包含这些内容。但是如果你的SMTP服务器不需要认证,则去掉这两行。

# $HOME/.msmtprc
defaults
logfile /var/log/msmtp.log

account company
host smtp.somewhere.com
from zhangsan@somewhere.com
port 25
user zhangsan
password password
tls on
auth on

account default: company

4.
最后要配置的就是我们的主角mutt了,这里只是简要的配置,更复杂的配置留给读者自己。一旦完成了mutt的配置,我们希望能立刻尝试用mutt发送邮件,所以借着以下示例立即创建一个属于你自己的$HOME/.muttrc文件吧。

# 默认信箱目录
set folder=”/sun/mails/”
# 已读的信箱
set mbox=”+incoming”
# 进入mutt后默认使用的信箱,可以考虑和$HOME/.procmailrc设置的默认信箱相同
set spoolfile=”+default”
# 不清楚
#set postponed=”+postponed”
# 已发送的信箱
set record=”+outgoing”

# 终端的编码
set charset=”UTF-8″
# 外发邮件使用的编码
set send_charset=”UTF-8″
# 用中文格式显示日期
set locale=”zh_CN.UTF-8″
# 解决没有设置字符编码的信件显示为乱码的问题
charset-hook ^us-ascii$ GB18030
# 解决主题为utf-8的信件标题显示为乱码的问题
charset-hook !UTF-8 GB18030
# 解决未经过MIME编码的信件显示为乱码的问题
set strict_mime=no
set assumed_charset=”GB18030″
# 解决中文附件名为乱码的问题
set rfc2047_parameters=yes

# 采用msmtp发送邮件
set sendmail=”/usr/bin/msmtp”
# 让mutt可以更好的阅读html邮件
auto_view text/html

配置好后,立刻启动mutt,按m,输入对方的邮件地址后回车,输入主题后回车,这时mutt会调用默认的编辑器vim,然后输入信件正文后保存退出,最后浏览并确认待发送邮件无误,按y即可完成发送。愿意的话在y之前可以按a添加附件。

遭遇问题(略)

终于搞定eclipse

在新的公司里,打算用eclipse来编C的程序,于是装了jre6和jdk6,再装了源里的eclipse,然后在eclipse里面装CDT和中文包,倒是一切顺利,但是建了个C的项目,问题马上就来了,原来人家的程序不是utf8编码的,在eclipse里面打开全是乱码了,后来看到这个帖子,解决了部分问题,显示正常了,但是编辑了一下保存的时候,死活不让保存,提示“未能完成保存 此平台不支持字符编码GBK”,后来上irc里面问了,才解决的,方法如下:

sudo gedit /etc/eclipse/java_home

在所有内容前加上一句:/usr/lib/jvm/java-6-sun-1.6.0.00
这样eclipse就会调用新的jdk了,而不是原来那个1.4.2版本的。

重启eclipse,万事ok。在此谢谢augus的帮助。

tor安装实记

官方网站:http://tor.eff.org

Tor 是一个工具集,帮助各类组织和个人增强互联网上活动的安全。 Tor 能够匿名 Web 浏览与发布、即时通讯、IRC、SSH 和其他基于 TCP 协议的应用。 Tor 同时提供了一个平台,软件开发人员能够在上面构建具有内建匿名性、安全性与隐私保护特性的新的应用程序。

Tor 的目标是抵御流量分析,流量分析是一种对网络的监视行为,这种行为会威胁个人的匿名与隐私,商业活动与业务关系的保密和国家的安全。通信在一个由叫做“洋葱路由器”的服务器所构建的分布式网络上传输,保护你以免网站构建你的兴趣简档,本地的、甚至是洋葱路由器上的窃听者阅读你的数据、了解你所访问的站点。

下面是我在ubuntu+firefox下的安装过程:

代码:
sudo apt-get install tor privoxy

装完以后,需要修改prioxy的配置文件:

代码:
sudo gedit /etc/privoxy/config

在最前面加上一行:

引用:
forward-socks4a / 127.0.0.1:9050 .
代码:
sudo /etc/init.d/privoxy restart

重启privoxy服务后就好了。
接下来要做的是在firefox里面启用tor,方法很见到,安装:torButton插件,并启用,ok了。
看看效果吧。

如果要在其他应用程序里面使用tor,方法见:http://tor.eff.org/docs/tor-doc-web.html
挂个图:


ubuntu安装鼠标主题

sudo apt-get install gcursor

系统->首选项->Cursor Selection

给个水滴主题的下载地址:http://forum.ubuntu.org.cn/download.php?id=6259
http://forum.ubuntu.org.cn/download/file.php?id=24244

festival 英文朗读软件

festival – a text-to-speech system.

可以朗读英文。支持输入文本文件。
安装: sudo apt-get install festival

echo ‘hello’ | festival –tts

用了beryl后mplayer不能全屏的解决办法

自从用了beryl,mplayer就一直不太正常,试了几个vo选项都有这样那样的问题,正常一点的要算x11了,只不过,全屏播放的适合边上都是黑的,画面并没有放大,以下是解决办法:

代码:
gedit ~/.mplayer/config

输入(或修改):

引用:
# Enable software scaling (powerful CPU needed).
# Some video output drivers (svga, x11, vesa) do not support hardware scaling.
zoom=yes

再打开一切正常了。

{原创}架设个人电台软件种种。。。

写在前面:本文只是简单地比较了一下windows下建立个人电台的几种方法,各个软件的详细介绍和配置方法,可以参考这里,或者自己google一下。

自从写了个只动下载baidu新歌top100都shell脚本后,就渐渐地喜欢上了听歌。在家里听,在公司里上班写程序时也喜欢边听着歌。但是,独乐乐不如众乐乐(这也是所谓的Ubuntu精神嘛!呵呵!),听多了,就越来越想和同事一起听了,于是就找了个架设个人网上电台的软件,由于是在公司干的,所以以下软件都是指windows下的软件,嘿嘿。
首先进入我视野的就是COWON公司的软件JetAudio,JetAudio本身是一款播放器,但里面集成了JetCast,是用于架设网络电台的。可能是由于本身就是做播放器出生的,所以这个软件都特点就是使用超级简单,架个电台就像用播放器放歌一样简单。而且功能也相当强大,支持话筒和mp3文件的混音,支持mp3、Ogg、WMA等格式的输出流,可以调节输出流的比特率,也支持淡入淡出等高级功能,还可以用浏览器访问http://yourIP:yourPort,页面显示服务器状态、当前在线人数、当前播放歌曲名等,这个网页对电台的宣传很有用。另外JetCast还有一个好处就是在安装目录下面有个content子目录,里面默认有个index.html文件,嘿嘿,也许你已经想到了,这个就是刚才说的那个网页的源代码,稍微熟悉点HTML的朋友就可以通过修改这个文件来建立一个自己电台的主页了,哈哈。
原本以为用了JetCast就可以高枕无忧了,但是好景不长,某天突然发现同事们都无法连上来了,打开http://yourIP:yourPort,没有出现熟悉的页面,却是一句“Service is currently down”的错误提示。于是重启服务器,发现还是一样的错误,一急,把JetCast卸了重装,发现确实好了,但是过了一会儿就发现又坏了!真是气死我了,把我好不容易拉来的听众都吓跑了!也曾去官方网站寻求原因,后来才知道,这个软件已经停止开发很久了,里面很多bug都没有来得及修改,所以使用中指不定会发生什么,不推荐新手以外的人士使用,呵呵。
于是无奈地开始找其他软件代替之,也试了很多的软件,比如一个什么微软的解码器,发现只能输出wma的流,而且很占服务器资源(毕竟的公司的电脑还是要用来工作的,总不能只开着个电台服务吧,嘿嘿),于是马上放弃;还有试了Real公司的Helix,发现似乎确实很专业(好像正版的不少钱哦!),但配置起来也是相当的“专业”,不研究个十天半个月好真难搞定(好像夸张了点,哈哈),而且资源占用也比较大,于是再次放弃。
后来发现了NULLSoft公司的SHOUTcast,这是个电台的服务端,起一个数据转换、转发的作用,需要从其他软件或者声卡获得声音输入才能工作。这个服务端软件占用的系统资源相当的小,软件本身的ReadME文件里的说明是说只需要90MHZ的CPU就可以运行,哈哈。
但是只有SHOUTcast是远远不够的,它还需要一个播放器来输出音频数据才行,第一个想到的当然是同出于一家的Winamp,这也是官方网站推荐的,另外还需要装一个winamp的插件(SHOUTcast DSP)来把winamp的数据发送给SHOUTcast服务器。于是下了winamp2.9.1,虽然winamp有很多新版本的,但新版本的资源占用较大,而且这个版本比较稳定,最重要的是SHOUTcast DSP不支持winamp3.X以上版本。再下载了前面说的SHOUTcast DSP。安装时注意SHOUTcast DSP要和winamp装在相同目录下,因为是插件嘛!
依次装上后,先按需要修改SHOUTcast安装目录下的ini配置文件,一般只需要修改最大听众数、端口、密码和管理员密码等几项就可以了。注意了,这里的Password=后面的这个密码是连接源的密码也就是后面winamp插件用的密码,而AdminPassword=后面的这个密码是管理员密码。修改完毕后就可以双击图标运行SHOUTcast服务器了。
SHOUTcast服务器运行起来后下面就是打开winamp,在选项-DSP插件里面启用SHOUTcast DSP,这样就会出来一个SHOUTcast DSP的设置窗口了,在里面输入SHOUTcast服务器的密码后,就可以连接上了,到这里电台也算架设完毕了。
用户可以和JetCast时一样的方法收听你的音乐,也可以访问你的网站,不过在访问你网站的时候就会发现,里面根本就没有中文,哈哈,这就是这个组合的不好之处啦。到现在我们也有必要推出下一个软件组合了,那就是SHOUTcast+foobar+oddcast plugin for foobar。有必要说明一下,oddcast有for foobar的插件也有for winamp的插件,还有stand alone的。
装好foobar以后,将oddcast plugin也装到foobar的安装目录里面,启动foobar,再在设置里面启用oddcast这个插件,然后配置一下源密码等信息,测试一下,发现其他问题应该都没有了,只是访问http://yourIP:yourPort的时候,看到的中文依然是乱码。但其时此时只要在浏览器里面将编码设置成gb2312,就已经不会乱码了。当然再刷新一下或者访问其他链接的时候还是一样乱码。而造成乱码的原因其时也很简单,那就是页面的源代码里面指定了文字编码为windows-1252了,唉,谁让这软件是老外写的呢?没有考虑到中文问题也不能怪人家阿。但是事情总会有解决的办法的,用ultraedit打开可执行文件一看,哈哈,windows-1252就在第250行呢(注意,ultraedit打开exe文件后,默认是16进制模式的,要先调成文本模式才可以搜索和编辑),赶快将它改成gb2312,这里要小心了,字符串“windows-1252”比“gb2312”长几个字节,千万不能把这几个字节给删了,不然可能会有不可预知的严重后果,最好的办法就是用空格填充,注意不能多一个空格也不少一个空格,如图。


保存后,再启动SHOUTcast,发现乱码问题也已经得到解决了。

总结:
JetCast简单易用,功能较强,但是bug较多不稳定。
SHOUTcast+winamp+SHOUTcast plugin 不支持中文标签。
SHOUTcast+foobar+oddcast plugin for foobar 目前看来最实用的方法了,稍加改造可以解决中文标签问题,当然比起JetCast来,还少了个定制网页的功能,谁有更好的解决办法的话,记得告诉我哦。

另外介绍一个必看的网站,http://www.geocities.com/peercast_listener/index.htm,里面有各种电台软件的详细介绍,本文只是简介,如有不清楚的地方相信一定可以在这里找到答案。

conky的配置

conky这东西不错,但是以前好像是叫torsmo的,不知道什么时候改名了!呵呵。在网上找了一下它的配置,发现这篇文章还不错,E文的原文在: http://conky.sourceforge.net/gnome.html

转一下:

引用:
Conky and Gnome
How to configure gnome and conky to work together.1) Overview
1)概述The purpose of this document is to give a basic understanding of how to use Conky with the Gnome Window Manager. Gnome uses, by default, a file manager called nautilus, which also manages the icons on the desktop. For some reason, the way nautilus draws the icons to the desktop, conflicts with conky drawing to the desktop, usually causing the icons to disappear, or causing conky to show, then quickly disappear until it’s next update. Here, I will present a few ways to get around this.
这篇文档的目的是给一些关于如何在Gnome管理器中使用Conky的基本理解。Gnome下默认的文件管理器叫nautilus,它同样也用来管理图标和桌面。通常由于某些原因,nautilus在桌面上描绘图标与conky冲突,通常会造成桌面上图标消失不见,或者是conky消失,然后在更新时又迅速出现。这儿,我将要介绍一些关于这个的方法。

2) First Solution – Conky and devilspie
2)第一种解决方法 – Conky和devilspie

By default, conky will draw to the “root” window (your desktop). This is what causes the conflict with nautilus. That being said, conky can operate fairly well with just it’s -o (own window) option.
conky默认会描绘“根”窗口(你的桌面)。这就是与nautilus冲突的原因。也就是说conky加上-o(own window)参数将能够很好的清楚的运行。

NOTE: In order to get conky to draw it’s own window, you must either run conky as `conky -o` or set “own_window yes” in your .conkyrc
注解:为了让conky描绘自己的窗口(own window),你必须使用‘conky -o’运行conky或者在~/.conkyrc中设置成“own_window yes”

The only problem with telling conky to draw it’s own window in gnome, is that it will appear on only a single virtual desktop, and it will show on the pager and takbar. In order to fix this, you must use a Window Management program (some examples include wmctrl and devilspie). For this example, I will show you how to configure devilspie (versions <=0.12 and >=0.13) to spread conky across all desktops and hide it from the pager and taskbar. First, Install devilspie. (This may vary by distribution)
告诉conky在gnome中描绘自己的own window的唯一问题是它只能显示在单一的虚拟桌面上,并且它将显示在页面调度程序和任务栏里。为了修复这些,你必须使用窗口管理程序(例如 wmctrl和devilspie)。在这个例子里,我会向你展示如何配置devilspie(版本<=0.12 和 >=0.13)让conky穿越所有桌面并且在页面调度程序和任务栏里隐藏。首先,安装devilspie。(不同发行版本的安装方法是多样化的)

Homepage: http://www.burtonini.com/blog/computers/devilspie
主页:http://www.burtonini.com/blog/computers/devilspie
Gentoo Install: emerge -av devilspie
Gentoo安装:emerge -av devilspie
Debian Install: apt-get install devilspie
Debian安装:apt-get install devilspie
All others: Find a binary package for your distribuiton or build from source, that is beyond the scope of this document.
其它:找到你所使用发行版本的二进制包或者从源码编译,这些超出了本文的范围。

Next, you will have to configure devilspie. Please make sure you configure it for the CORRECT VERSION. The configuration CHANGED as of devilspie version 0.13, and it is NOT compatible with previous configurations.
接着,你需要配置devilspie。请确定你所配置的是正确版本。0.13的版本配置有所改变,它将不在兼容与以前的配置文件。

Version 0.12 and below:
版本0.12和以下:

Create a file called .devilspie.xml in your user’s home (~) directory. A basic configuration of devilspie is as follows:
在你的家目录下创建一个名为.devilspie.xml的文件。基本的配置如下:

Code: <?xml version=”1.0″?>
<!DOCTYPE devilspie SYSTEM “devilspie.dtd”>
<devilspie>
<!– This flurb configures devilspie to watch for a window called “conky” –>
<flurb name=”conky”>
<matchers>
<matcher name=”DevilsPieMatcherWindowName”>
<property name=”application_name” value=”conky”/>
</matcher>
</matchers>
<!– The following controls what actions are preformed –>
<actions>
<!– Hide conky from the taskbar and the pager –>
<action name=”DevilsPieActionHide”>
<property name=”skip-tasklist” value=”TRUE”/>
<property name=”skip-pager” value=”TRUE”/>
</action>
<!– Show conky on all workspaces –>
<action name=”DevilsPieActionSetWorkspace”>
<property name=”pinned” value=”TRUE”/>
</action>
</actions>
</flurb>
</devilspie>

Version 0.13 and later:
版本0.13和以后:

Create a file called conky.ds in a directory called .devilspie your user’s home (~) directory (to create the directory, use `mkdir .devilspie` and to create the file, `touch .devilspie/conky.ds`). A basic configuration of devilspie is as follows:
在你的家目录下创建一个名为.devilspie的目录,并在其下创建conky.ds的配置文件(使用‘mkdir .devilspie’创建目录,使用‘touch .devilspie/conky.ds’创建文件)。基本的devilspie配置如下:

Code:

(if (matches (window_name) “.*conky”) (begin pin (skip_pager) (skip_tasklist)))

Configuring Gnome
配置Gnome

Once conky and devilspie are properly configured, you can make them both automatically start when Gnome starts.
一旦conky和evilspie配置好了,你就能让它们在Gnome启动的时候同时自动运行。
Click Desktop -> Preferences -> Sessions, select the “Startup Programs” tab, then click the “Add” button – use “devilspie” for the startup command, then click “Ok”. Click the “Add” button again, and use “conky” for the startup command (or use “conky -o” if you didn’t set “own_window yes” in .conkyrc) click close, and the next time you login, devilspie and conky will automatically start and work right!
点击 桌面 ->首选项 ->会话,选择”启动程序“栏,点击”添加“按钮 – 在启动命令中输入”devilspie“,然后点击确定。再以同样的方式添加”conky“(如果在.conkyrc中没有设置”own_window yes“,输入”conky -o“)点击关闭,这样当你下次登陆时,devilspie和conky将会自动启动并正确工作!

3) Second Solution – Disabling Nautilus
3) 第二种解决方法 – 禁用Nautilus

Rather than installing devilspie (or another window management application), some users may find it helpful to instead keep nautilus from drawing to the root window. To do this, run gconf-editor and uncheck show_desktop in Apps/Nautilus/Preferences/.
与其安装devilspie(或者其它窗口管理程序),一些使用者发现不如禁止nautilus绘制根窗口来得有用。为了做到这些,运行配置编辑器(gconf-editor),在App/Nautilus/Perferences里的show_desktop里设置。

The downside of disabling nautilus from drawing to the root window is that you will no longer have icons on the desktop, or be able to right-click on the desktop.
禁止nautilus绘制根窗口的结果,你将不在拥有桌面上的图标或者是右键点击。

This project is also generously hosted by sourceforge. SourceForge.net Logo

Valid XHTML 1.0 Strict Valid CSS!

下面是我的配置文件:

# Conky sample configuration
#
# the list of variables has been removed from this file in favour
# of keeping the documentation more maintainable.
# Check http://conky.sf.net for an up-to-date-list.# set to yes if you want Conky to be forked in the background
background no# X font when Xft is disabled, you can pick one with program xfontsel
#font 5×7
font 6×10
#font 7×13
#font 8×13
#font 9×15
#font *mintsmild.se*
#font -*-*-*-*-*-*-34-*-*-*-*-*-*-*

# Use Xft?
use_xft no

# Set conky on the bottom of all other applications
on_bottom yes

# Xft font when Xft is enabled
xftfont Bitstream Vera Sans Mono:size=8

# Text alpha when using Xft
xftalpha 0.8

# Print everything to stdout?
# out_to_console no

# MPD host/port
# mpd_host localhost
# mpd_port 6600
# mpd_password tinker_bell

# Print everything to console?
# out_to_console no

# mail spool
# mail_spool $MAIL

# Update interval in seconds
update_interval 0.5

# This is the number of times Conky will update before quitting.
# Set to zero to run forever.
total_run_times 0

# Create own window instead of using desktop (required in nautilus)
own_window yes

# If own_window is yes, you may use type normal, desktop or override
own_window_type override

# Use pseudo transparency with own_window?
own_window_transparent yes

# If own_window_transparent is set to no, you can set the background colour here
own_window_colour hotpink

# If own_window is yes, these window manager hints may be used
#own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes

# Minimum size of text area
minimum_size 280 5

# Draw shades?
draw_shades yes

# Draw outlines?
draw_outline no

# Draw borders around text
draw_borders no

# Draw borders around graphs
draw_graph_borders yes

# Stippled borders?
stippled_borders 8

# border margins
border_margin 4

# border width
border_width 1

# Default colors and also border colors
default_color yellow1
default_shade_color black
default_outline_color black

# Text alignment, other possible values are commented
#alignment top_left
alignment top_right
#alignment bottom_left
#alignment bottom_right
#alignment none

# Gap between borders of screen and text
# same thing as passing -x at command line
gap_x 12
gap_y 12

# Subtract file system buffers from used memory?
no_buffers yes

# set to yes if you want all text to be in uppercase
uppercase no

# number of cpu samples to average
# set to 1 to disable averaging
cpu_avg_samples 2

# number of net samples to average
# set to 1 to disable averaging
net_avg_samples 2

# Force UTF8? note that UTF8 support required XFT
override_utf8_locale yes

# Add spaces to keep things from moving about? This only affects certain objects.
use_spacer no

# mldonkey_hostname Hostname for mldonkey stuff, defaults to localhost
# mldonkey_port Mldonkey port, 4001 default
# mldonkey_login Mldonkey login, default none
# mldonkey_password Mldonkey password, default none

# boinc (seti) dir
# seti_dir /opt/seti

# Allow for the creation of at least this number of port monitors (if 0 or not set, default is 16)
#min_port_monitors 16

# Allow each port monitor to track at least this many connections (if 0 or not set, default is 256)
#min_port_monitor_connections 256

# none, xmms, bmp, audacious, infopipe (default is none)
#xmms_player none

# variable is given either in format $variable or in ${variable}. Latter
# allows characters right after the variable and must be used in network
# stuff because of an argument

# stuff after ‘TEXT’ will be formatted on screen

TEXT

${color DeepPink1}$nodename – $sysname $kernel on $machine
${color green}$stippled_hr
${color lightgrey}CPU Freq:$color $freq_dyn_g GHz
${color green}$stippled_hr
${color lightgrey}Uptime:$color $uptime ${color lightgrey}- Load:$color $loadavg
${color lightgrey}CPU Usage:${color #cc2222} $cpu% ${cpubar}
${color red}${cpugraph 0000ff 00ff00}
${color lightgrey}RAM Usage:$color $mem/$memmax – $memperc% ${membar}
${color lightgrey}Swap Usage:$color $swap/$swapmax – $swapperc% ${swapbar}
${color lightgrey}Processes:$color $processes ${color grey}Running:$color $running_processes
${color green}$stippled_hr
${color lightgrey}Networking:
Down:${color #8844ee} ${downspeed eth0} k/s${color lightgrey} ${offset 80}Up:${color #22ccff} ${upspeed eth0} k/s
${color #0000ff}${downspeedgraph eth0 32,150 ff0000 0000ff} ${color #22ccff}${upspeedgraph eth0 32,150 0000ff ff0000}
${color green}$stippled_hr
${color lightgrey}File systems:
/ $color${fs_used /}/${fs_size /} ${fs_bar /}
/home $color${fs_used /home}/${fs_size /home} ${fs_bar /home}
/ubuntu $color${fs_used /ubuntu}/${fs_size /ubuntu} ${fs_bar /ubuntu}
${color green}$stippled_hr
${color #88aadd}${alignc}$mpd_status
${color}Name PID CPU% MEM%
${color #ddaa00} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}
${color lightgrey} ${top name 5} ${top pid 5} ${top cpu 5} ${top mem 5}
${color green}$stippled_hr
${color #ddaa00}Port(s)${alignr}#Connections
$color ALL: ${alignr}$color ${tcp_portmon 1 65535 count}
$color mpd: ${alignr}$color ${tcp_portmon 6600 6600 count}
$color sshd: ${alignr}$color ${tcp_portmon 22 22 count}
$color torrent: ${alignr}$color ${tcp_portmon 6881 6999 count}
${color #ddaa00}Remote Address ${alignr} Local Service/Port$color
${tcp_portmon 1 65535 rhost 0} ${alignr} ${tcp_portmon 1 65535 lservice 0}
${tcp_portmon 1 65535 rhost 1} ${alignr} ${tcp_portmon 1 65535 lservice 1}
${tcp_portmon 1 65535 rhost 2} ${alignr} ${tcp_portmon 1 65535 lservice 2}
${tcp_portmon 1 65535 rhost 3} ${alignr} ${tcp_portmon 1 65535 lservice 3}
${tcp_portmon 1 65535 rhost 4} ${alignr} ${tcp_portmon 1 65535 lservice 4}
${tcp_portmon 1 65535 rhost 5} ${alignr} ${tcp_portmon 1 65535 lservice 5}
${tcp_portmon 1 65535 rhost 6} ${alignr} ${tcp_portmon 1 65535 lservice 6}
${tcp_portmon 1 65535 rhost 7} ${alignr} ${tcp_portmon 1 65535 lservice 7}
${tcp_portmon 1 65535 rhost 8} ${alignr} ${tcp_portmon 1 65535 lservice 8}
${tcp_portmon 1 65535 rhost 9} ${alignr} ${tcp_portmon 1 65535 lservice 9}
${tcp_portmon 1 65535 rhost 10} ${alignr} ${tcp_portmon 1 65535 lservice 10}
${tcp_portmon 1 65535 rhost 11} ${alignr} ${tcp_portmon 1 65535 lservice 11}
${tcp_portmon 1 65535 rhost 12} ${alignr} ${tcp_portmon 1 65535 lservice 12}
${tcp_portmon 1 65535 rhost 13} ${alignr} ${tcp_portmon 1 65535 lservice 13}
${tcp_portmon 1 65535 rhost 14} ${alignr} ${tcp_portmon 1 65535 lservice 14}

附效果图:

终于把mid3v2命令加到下载百度歌曲的脚本里面了

如下,程序会自动判断有没有安装mid3v2,如果装了就会把下载的歌曲原来的id3信息删掉,再设置歌曲名和歌手名,再也不怕歌曲里有乱七八糟的广告信息了。

代码:
#!/bin/bash
#Copyright (c) 2005 ubuntu.org.cn
#License: GPLv2
#强烈建议安装axel(多线程下载工具)和mid3v2(包含在python-mutagen里,用于修改歌曲的id3信息)#mp3的地址
SOURCE=”http://list.mp3.baidu.com/list/newhits.html”

#保存mp3的目录
SAVE=”${HOME}/baidump3″

#下载重试次数
TRYCOUNT=2

#临时目录
TMP=”/tmp/${USER}”

#创建下载目录
if [ ! -d “${SAVE}” ];then
mkdir -p “${SAVE}”
fi

#创建临时下载目录
if [ -d “${TMP}” ];then
rm -rf “${TMP}”
fi
mkdir -p “${TMP}”

echo “开始下载百度最新100首歌曲列表”
wget -O ${TMP}/mp3.html ${SOURCE}
echo “下载百度最新100首歌曲列表完成。”

#转换网页编码
iconv -f gbk -t utf8 ${TMP}/mp3.html |\

grep ” href=\”http://mp3.baidu.com/m” |\

#将mp3list.txt所有开头的空格去掉
sed -e ‘s/ *//’ |\

#将mp3list.txt所有开头的tab去掉
sed -e ‘s/\t*//’ |\

#将mp3list.txt所有全角空格去掉
sed -e ‘s/ //g’ |\

#将所有的回车符去掉
sed ‘:a;N;$!ba;s/\n/,/g’ |\

#在td>,后面加上回车符,一行表示一个mp3文件。
sed -e ‘s/,<td/\n<td/g’ |\
sed -e ‘s/td>,/td>\n/g’ |\

#删除<td width=”30%”> <td> </td> <td…FFFFFF”> <p> </p>
sed -e ‘s/<td width=”30%”>//g’ |\
sed -e ‘s/<td>//g’ |\
sed -e ‘s/<\/td>//g’ |\
sed -e ‘s/<p>//g’ |\
sed -e ‘s/<\/p>//g’ |\
sed -e ‘s/<td.*”border”>//g’ |\

#删除</a>…”_blank”>
sed -e ‘s/<\/A>\/<A.*_blank>/、/g’ |\
sed -e ‘s/<\/A>/<\/a>/g’ |\
sed -e ‘s/<\/a>.*_blank>/-/g’ |\
#sed -e ‘s/<\/a>.*_blank”>/-/g’ |\
#删除)
sed -e ‘s/<\/a>)/<\/a>/g’ |\

#删除&
sed -e ‘s/\&\;/\//g’ >${TMP}/mp3list.txt

#得到:<a href=”http://mp3.baidu.com/m?tn=baidump3&ct=134217728&lm=-1&li=2&word=Baby%20Baby%20tell%20me%20%CD%F5%D0%C4%C1%E8″ target=”_blank”>Baby ,Baby tell me-王心凌</a>

#取得行号,循环
line=$(awk ‘END{print NR}’ ${TMP}/mp3list.txt)
i=1;
while((i<=line));do
downed=0;
mpline=`awk ‘NR=='”$i”” ${TMP}/mp3list.txt`
url=`echo $mpline | sed -e ‘s/<a href=”//g’ | sed ‘s/\ target.*//g’ | sed ‘s/”//g’ | cat`
name=`echo $mpline | sed -e ‘s/.*_blank”>//g’ | sed -e ‘s/.*_blank>//g’ |\
sed -e ‘s/<\/a>//g’ | sed -e ‘s/\//-/g’ | sed -e ‘s/:/-/g’ | sed -e ‘s/”/’\”/g’ | cat`

#检查是否已经下载过这首歌,如果下载过,放弃
if [ -e “${SAVE}/${name}.mp3” ] || [ -e “${SAVE}/${name}.wma” ]; then
echo -e “\e[1;6m\e[1;31m发现 ${name} 下载过,忽略,继续下一首。\e[1;6m\e[00m”
((i++))
continue;
fi

echo “开始通过 $url 下载 $name”;
wget -O ${TMP}/down.html $url
echo “获取 $name 下载列表完成。”;

#down.txt为有效的下载地址
iconv -f gbk -t utf8 -c ${TMP}/down.html | grep “onclick=\”return ow(this)\”” |\
sed -e ‘s/.*<a href=”//g’ | sed -e ‘s/” target=”_blank”.*//g’ > ${TMP}/down.txt

#size.txt为有效的下载文件大小
iconv -f gbk -t utf8 -c ${TMP}/down.html | grep “M<\/td>” |\
sed -e ‘s/<td>//g’ | sed -e ‘s/ M<\/td>//g’ > ${TMP}/size.txt

#down.txt与size.txt合并而在的down_size.txt文件中字段之间以”`”作为分隔符
paste -d ‘`’ ${TMP}/size.txt ${TMP}/down.txt > ${TMP}/down_size.txt

#排序
sort -n -r ${TMP}/down_size.txt > ${TMP}/down_size_sort.txt

#去掉后面的尺寸
sed ‘s/.*`//’ ${TMP}/down_size_sort.txt > ${TMP}/temp.txt

##### 析取出mp3 的下载地址或 wma的下载地址 ##############
grep -i “word=mp3” ${TMP}/temp.txt > ${TMP}/down_mp3.txt
grep -i “word=wma” ${TMP}/temp.txt > ${TMP}/down_wma.txt

downline_mp3=$(awk ‘END{print NR}’ ${TMP}/down_mp3.txt);
downline_wma=$(awk ‘END{print NR}’ ${TMP}/down_wma.txt);
echo -e “\e[1;6m\e[1;31m发现 ${downline_mp3} 个名为 ${name}.mp3 下载地址。\e[1;6m\e[00m”
echo -e “\e[1;6m\e[1;31m发现 ${downline_wma} 个名为 ${name}.wma 下载地址。\e[1;6m\e[00m”
# 初始化计数器
j=1;
# 优先下载mp3格式的歌曲
while((j<=downline_mp3)); do
mp3=`awk ‘NR=='”$j”” ${TMP}/down_mp3.txt | sed -e ‘s/ /\\ /g’`
echo -e “\e[1;6m\e[1;31m正在下载${name}.mp3\e[1;6m\e[00m”
#echo -e “\e[1;6m\e[1;31m中转页面地址为${mp3}\e[1;6m\e[00m”
wget -O “${TMP}/transit.html” “$mp3”
realURL=`iconv -f gbk -t utf8 -c ${TMP}/transit.html | grep “<li class=\”li\” style=\”margin-right:10px;\”>” | sed ‘s/.*href=”//’ | sed ‘s/” target=”_blank”>.*//’`
#echo -e “\e[1;6m\e[1;31m真实下载地址为${realURL}\e[1;6m\e[00m”
if [ x`which axel` != x”” ];then
axel -n 7 -a -o “${TMP}/${name}.mp3” “${realURL}”
else
#wget太慢了。但是如果没有安装axel,可以把上面一行注释掉,用下面一行代替
wget -c –tries=$TRYCOUNT $realURL -O “${TMP}/${name}.mp3”
fi
if [ “$?” = 0 ]; then
if [ `file -ib “${TMP}/${name}.mp3” | sed -e ‘s/\/.*//g’` = “audio” ]; then
if [ x`which mid3v2` != x”” ];then
title=`echo $name | sed -e ‘s/-.*//g’`
artist=`echo $name | sed -e ‘s/.*-//g’ | sed -e ‘s/.mp3//g’ | sed -e ‘s/.wma//g’`
mid3v2 -D “${TMP}/${name}.mp3”
mid3v2 -t “${title}” -a “${artist}” “${TMP}/${name}.mp3”
fi
mv “${TMP}/${name}.mp3” “${SAVE}/${name}.mp3”
downed=1;
break;
else
echo -e “\e[1;6m\e[1;31m下载 ${name}.mp3 文件无效,正在删除重新下载\e[1;6m\e[00m”
rm “${TMP}/${name}.mp3”;
((j++))
fi
else
echo -e “\e[1;6m\e[1;31m下载 ${name}.mp3 文件无效,正在删除重新下载\e[1;6m\e[00m”
rm “${TMP}/${name}.mp3”;
((j++))
fi
done

#如果下载成功继续下其余的歌
#continue用于跳过循环体中的后续命令
if [ “$downed” = 1 ] ; then
((i++))
echo -e “\e[1;7m\e[1;41m下载 $name 成功\e[1;7m\e[00m”
continue;
fi

# 如果没有mp3格式的则下载wma格式的歌
j=1;
while((j<=downline_wma)); do
wma=`awk ‘NR=='”$j”” ${TMP}/down_wma.txt`
echo -e “\e[1;6m\e[1;31m正在下载${name}.wma\e[1;6m\e[00m”

#echo -e “\e[1;6m\e[1;31m中转页面地址为${mp3}\e[1;6m\e[00m”
wget -O “${TMP}/transit.html” “$wma”
realURL=`iconv -f gbk -t utf8 -c ${TMP}/transit.html | grep “<li class=\”li\” style=\”margin-right:10px;\”>” | sed ‘s/.*href=”//’ | sed ‘s/” target=”_blank”>.*//’`
#echo -e “\e[1;6m\e[1;31m真实下载地址为${realURL}\e[1;6m\e[00m”
if [ x`which axel` != x”” ];then
axel -n 7 -a -o “${TMP}/${name}.wma” “${realURL}”
else
#wget太慢了。但是如果没有安装axel,可以把上面一行注释掉,用下面一行代替
wget -c –tries=$TRYCOUNT $realURL -O “${TMP}/${name}.wma”
fi
if [ “$?” = 0 ]; then
if [ `file -ib “${TMP}/${name}.wma” | sed -e ‘s/\/.*//g’` = “application” ]; then
#title=`echo $name | sed -e ‘s/-.*//g’`
#artist=`echo $name | sed -e ‘s/.*-//g’ | sed -e ‘s/.mp3//g’ | sed -e ‘s/.wma//g’`
#mid3v2 -D “${TMP}/${name}.wma”
#mid3v2 -t “${title}” -a “${artist}” “${TMP}/${name}.wma”
mv “${TMP}/${name}.wma” “${SAVE}/${name}.wma”
downed=1;
break;
else
echo -e “\e[1;6m\e[1;31m下载 ${name}.wma 文件无效,正在删除重新下载\e[1;6m\e[00m”
rm “${TMP}/${name}.wma”;
((j++))
fi
else
echo -e “\e[1;6m\e[1;31m下载 ${name}.wma 文件无效,正在删除重新下载\e[1;6m\e[00m”
rm “${TMP}/${name}.wma”;
((j++))
fi
done

((i++))
if [ “$downed” = 1 ] ; then
echo -e “\e[1;7m\e[1;41m下载 $name 成功\e[1;7m\e[00m”
else
echo -e “\e[1;7m\e[1;41m下载 $name 失败\e[1;7m\e[00m”
fi
done
rm -fr ${TMP}
exit 0

firefox的一个天气预报的插件真不错!

[ Happy 心情: Happy ]
发现一个不错的firefox的一个天气预报的插件,叫Forecastfox,装好后可以直接选择中国的城市(我是杭州),中文支持得也很好!以下两个截图是我稍加配置以后的结果: