2009年4月29日
|EasyScripts|用GMail从控制台发送邮件的脚本
有时候需要备份些东西到邮箱,能够让脚本定时自动运行当然是最好!
抽时间用python写了这么个脚本,使用python-libgmail库 ( sudo apt-get install python-libgmail )
发送邮件的代码都是现成的调用,主要是在易用性上做了些优化:
1、发送一句话,不需要正文,比如给邮件列表发个“求助。。。。。(如题)”之类的:
msend -t list@domain.com -s "求助,图形界面进不了,哈哈”
2、发个文件到自已的邮箱,一般用 -f "file1;file2;file3;dir2;dir3" ,发懒的时候不写 -f 也能用
msend -t my@gmail.com -f readme.txt
msend -t my@gmail.com *.txt
3、发个文件或目录到某个邮箱,需要ZIP一下,(当然2和3可以混用)
msend -t friend@domain.com -z ./pics/
基本上:
1、目标邮箱和主题必须写上;
2、如果有文件附件,可以不指定主题,脚本会把文件数当主题名(gmail的title里会显示正文的)
3、程序会自动判断文件和目录,如果是目录就会遍历
4、不管是文件还是目录,如果前缀指定了-z,就压缩后发送
5、没有前缀的参数一律当文件名
如果有需要,可以下载玩玩,运行msend不带参数就有用法,应该很明白了。
(还有什么稀奇古怪的想法?欢迎提出来!)
Usage:
msend -t user@domain.com -s title
msend -t user@domain.com {-s title | -f file | -z file}
Full command:
msend --to=user@domain.com --subject=title [--msg=body] [--files="file1;dir2"] [--zip="file1;dir2"]
Example: ( edit ~/.msend for default sender account )
msend -t user@domain.com -s "just a test"
msend -t user@domain.com -s "send all pic" -f ./mypics/
msend -t user@domain.com -s "send files as zip" -z ./mytext/
msend -t user@domain.com -s "send both" -f mytext -z mytext
附件下载和更新在: https://groups.google.com/group/binsos/browse_thread/thread/1362719b1a34cd9b
2009年4月9日
Linux下有线和无线网络共存时优先使用无线网
用Linux下的NetworkManager 0.70(网络管理器小程序)遇到个问题:无线网络和有线网络同时启用时,系统默认优先使用有线网络--即默认路由使用的是有线网络的。
写了一个脚本解决这个问题,无线网卡和有线网卡同时启用时,优先使用无线路由器的网关。
代码如下:
------------------------------------
#!/bin/bash
# /etc/dhcp3/dhclient-exit-hooks.d/wireless-gw
# /etc/network/if-up.d/wireless-gw
WIRELESS=`iwconfig 2>/dev/null| awk 'NR==1 {print $1}'`
[ -z "$WIRELESS" ] && exit 0
gw=`ip addr show dev $WIRELESS | grep "inet " | awk 'NR==1 {print $2}'`
[ `echo $gw | awk -F. '{print NF}'` -ne 4 ] && exit 0
gw=`echo $gw | awk -F. '{printf("%s.%s.%s.1",$1,$2,$3)}'`
while [ `ip route | grep ^default | wc -l` -gt 0 ]
do
ip route delete default
done
ip route add default via $gw
#echo nameserver $gw > /etc/resolv.conf
echo nameserver 8.8.8.8 > /etc/resolv.conf
echo nameserver 208.67.222.222 >> /etc/resolv.conf
------------------------------------
脚本先取到无线网络设备名,依照设备名取到IP地址,然后假设无线路由地址是该IP段的第一个IP号,即xxx.xxx.xxx.1(通常无线AP都这样用的,暂时没有其它更好的办法),最后删除错误的默认路由,将无线网络的网关当作默认路由。
最后一句是修正DNS,如果DNS工作正常,可以去掉。
写好后放到/etc/network/if-up.d/ 和 /etc/dhcp3/dhclient-exit-hooks.d/下,命名为wireless-gw,赋执行权限。
(Ubuntu8.10下使用正常,其它发行版安放目录可能会有差异)
难道ubuntu里面就没有考虑这个问题?很奇怪!
写了一个脚本解决这个问题,无线网卡和有线网卡同时启用时,优先使用无线路由器的网关。
代码如下:
------------------------------------
#!/bin/bash
# /etc/dhcp3/dhclient-exit-hooks.d/wireless-gw
# /etc/network/if-up.d/wireless-gw
WIRELESS=`iwconfig 2>/dev/null| awk 'NR==1 {print $1}'`
[ -z "$WIRELESS" ] && exit 0
gw=`ip addr show dev $WIRELESS | grep "inet " | awk 'NR==1 {print $2}'`
[ `echo $gw | awk -F. '{print NF}'` -ne 4 ] && exit 0
gw=`echo $gw | awk -F. '{printf("%s.%s.%s.1",$1,$2,$3)}'`
while [ `ip route | grep ^default | wc -l` -gt 0 ]
do
ip route delete default
done
ip route add default via $gw
#echo nameserver $gw > /etc/resolv.conf
echo nameserver 8.8.8.8 > /etc/resolv.conf
echo nameserver 208.67.222.222 >> /etc/resolv.conf
------------------------------------
脚本先取到无线网络设备名,依照设备名取到IP地址,然后假设无线路由地址是该IP段的第一个IP号,即xxx.xxx.xxx.1(通常无线AP都这样用的,暂时没有其它更好的办法),最后删除错误的默认路由,将无线网络的网关当作默认路由。
最后一句是修正DNS,如果DNS工作正常,可以去掉。
写好后放到/etc/network/if-up.d/ 和 /etc/dhcp3/dhclient-exit-hooks.d/下,命名为wireless-gw,赋执行权限。
(Ubuntu8.10下使用正常,其它发行版安放目录可能会有差异)
难道ubuntu里面就没有考虑这个问题?很奇怪!
2009年1月14日
用python修改gnome网络代理
在家里用无线网络,不需要设置代理;在公司用局域网,需要指定代理才能上网。每次在两个地方换来换去都要手工切换代理。本来就是非常机械化的动作,干嘛不用程序自动解决呢?
今天试了一下写一个python的程序去修改代理设置,但是发现一个奇怪的问题:
用 gnome-network-preferences 修改代理地址和代理端口后 gconf-editor 中可以看到 /system/http_proxy/ 里面的值会发生变化,包括 host,port,use_http_proxy。修改以后 GNOME 全局的代理配置都会发生变化。
但是,用 gconf-editor 修改这些值以后,gnome-network-preferences 的配置项不会变化,GNOME 全局的代理配置也没有变化,修改不生效。
很奇怪啊。。。。。
上网查了一下,有人将这一情况作为BUG提交了。需要修改的地方是 /system/proxy/mode 。
https://bugs.launchpad.net/ubuntu/+source/gconf/+bug/290995
https://bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/271108
在 gnome-network-preferences 里面启用和禁用代理服务器后,/system/http_proxy/use_http_proxy 和 /system/proxy/mode 两个地方都被修改。可能其中一个值是历史遗留的吧。
今天试了一下写一个python的程序去修改代理设置,但是发现一个奇怪的问题:
用 gnome-network-preferences 修改代理地址和代理端口后 gconf-editor 中可以看到 /system/http_proxy/ 里面的值会发生变化,包括 host,port,use_http_proxy。修改以后 GNOME 全局的代理配置都会发生变化。
但是,用 gconf-editor 修改这些值以后,gnome-network-preferences 的配置项不会变化,GNOME 全局的代理配置也没有变化,修改不生效。
很奇怪啊。。。。。
上网查了一下,有人将这一情况作为BUG提交了。需要修改的地方是 /system/proxy/mode 。
https://bugs.launchpad.net/ubuntu/+source/gconf/+bug/290995
https://bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/271108
在 gnome-network-preferences 里面启用和禁用代理服务器后,/system/http_proxy/use_http_proxy 和 /system/proxy/mode 两个地方都被修改。可能其中一个值是历史遗留的吧。
2008年12月25日
rhythmbox 歌词滚动的插件
一直找不到rhythmbox的歌词显示插件,抽空整了一个
基于网上原有的 ttplyrics 0.4 版本,参考 python-osd 和 musicapplet 的代码,凑出来的
我对python不熟,有需要的将就着用吧,期待python熟手进行优化
文件解包到 $HOME/.gnome2/rhythmbox/plugins/ttplyrics
biff@lenovo:~/.gnome2/rhythmbox/plugins/ttplyrics$ ls -l
总用量 36
-rw-r--r-- 1 biff biff 8370 2008-12-24 20:05 dbus_pyosd.py
-rw-r--r-- 1 biff biff 3473 2007-08-20 23:23 ttpClient.py
-rw-r--r-- 1 biff biff 14509 2008-12-24 20:16 ttplyrics.py
-rw-r--r-- 1 biff biff 333 2007-08-20 23:23 ttplyrics.rb-plugin
启动rhythmbox后,ttplyrics会取到歌词,歌词在 $HOME/.lyrics目录下,dbus_pyosd.py 会将歌词显到屏幕上。
可以单独运行 dbus_pyosd.py ,运行后 rhythmbox被自动启动,控制台有调试信息
附件和问题解决在这里下载
https://groups.google.com/group/binsos
--
---------------------------------
google talk
shaozx@gmail.com
---------------------------------
基于网上原有的 ttplyrics 0.4 版本,参考 python-osd 和 musicapplet 的代码,凑出来的
我对python不熟,有需要的将就着用吧,期待python熟手进行优化
文件解包到 $HOME/.gnome2/rhythmbox/plugins/ttplyrics
biff@lenovo:~/.gnome2/rhythmbox/plugins/ttplyrics$ ls -l
总用量 36
-rw-r--r-- 1 biff biff 8370 2008-12-24 20:05 dbus_pyosd.py
-rw-r--r-- 1 biff biff 3473 2007-08-20 23:23 ttpClient.py
-rw-r--r-- 1 biff biff 14509 2008-12-24 20:16 ttplyrics.py
-rw-r--r-- 1 biff biff 333 2007-08-20 23:23 ttplyrics.rb-plugin
启动rhythmbox后,ttplyrics会取到歌词,歌词在 $HOME/.lyrics目录下,dbus_pyosd.py 会将歌词显到屏幕上。
可以单独运行 dbus_pyosd.py ,运行后 rhythmbox被自动启动,控制台有调试信息
附件和问题解决在这里下载
https://groups.google.com/group/binsos
--
---------------------------------
google talk
shaozx@gmail.com
---------------------------------
Linux下远程登录的脚本
Linux下面没有象NetTerm或SecureCRT之类好用的登录管理工具,管理一大堆服务器地址和记住这些口令是件令人头痛的事情。
这是我自已用的一个自动登录脚本,支持SSH和TELNET。
分两个文件,to和to.hosts。
to 的用法是 to 跟主机名,如 to myserver,然后脚本就会自动在to.hosts文件里面找有没有定义这个主机,如果有,就取出主机地址、用户名、密码进行登录。
to.hosts文件可以定义多个主机,定义格式如下:
[demo1]
host=192.168.235.1
name=john
pass=john123
type=telnet
code=gb2312
[demo2]
host=192.168.1.77
name=hap
pass=hap
type=ssh
demo1/demo2是代号,如 to demo1 就会自动用telnet登录192.168.235.1主机。
host/name/pass是主机地址、登录用户名、口令
type可以是ssh或telnet,指定登录类型
code用来指定远端编码,如果你本地是终端用的UTF8,而远端是GB码,登过去后就会显示乱码,这时候可以指定自动进行编码转换
需要安装 python-pexpect 支持。
sudo apt-get install python-pexpect
将to文件放到PATH路径去,配置一个主机
biff@lenovo:~/bin$ to dxpt
dxpt@158.222.2.11's password:
短信平台11:/home/dxpt>
##################################################
# auto login success, have a lot of fun ... #
##################################################
ssh://dxpt@158.222.2.11
短信平台11:/home/dxpt>
---------------------------------------------
附件在这里下载
https://groups.google.com/group/binsos/browse_thread/thread/29fcf78c5c3236ee
如果你用上了,或有什么问题,请邮件联系我!
--
---------------------------------
google talk
shaozx@gmail.com
---------------------------------
这是我自已用的一个自动登录脚本,支持SSH和TELNET。
分两个文件,to和to.hosts。
to 的用法是 to 跟主机名,如 to myserver,然后脚本就会自动在to.hosts文件里面找有没有定义这个主机,如果有,就取出主机地址、用户名、密码进行登录。
to.hosts文件可以定义多个主机,定义格式如下:
[demo1]
host=192.168.235.1
name=john
pass=john123
type=telnet
code=gb2312
[demo2]
host=192.168.1.77
name=hap
pass=hap
type=ssh
demo1/demo2是代号,如 to demo1 就会自动用telnet登录192.168.235.1主机。
host/name/pass是主机地址、登录用户名、口令
type可以是ssh或telnet,指定登录类型
code用来指定远端编码,如果你本地是终端用的UTF8,而远端是GB码,登过去后就会显示乱码,这时候可以指定自动进行编码转换
需要安装 python-pexpect 支持。
sudo apt-get install python-pexpect
将to文件放到PATH路径去,配置一个主机
biff@lenovo:~/bin$ to dxpt
dxpt@158.222.2.11's password:
短信平台11:/home/dxpt>
##################################################
# auto login success, have a lot of fun ... #
##################################################
ssh://dxpt@158.222.2.11
短信平台11:/home/dxpt>
---------------------------------------------
附件在这里下载
https://groups.google.com/group/binsos/browse_thread/thread/29fcf78c5c3236ee
如果你用上了,或有什么问题,请邮件联系我!
--
---------------------------------
google talk
shaozx@gmail.com
---------------------------------
订阅:
博文 (Atom)

