今天在修车厂看到了一辆被撞的三厢奇瑞A3。后备箱已经被撞扁了,扁的猛一看上去像个两厢的,但是从后座位置向前并没有变形。看来A3的整车质量还是不错。
Monthly Archives: 三月 2012
python中通过 pexpect 使用 rsync
之前写了脚本,死循环调用inotifywait监控文件夹,如果文件有变动,则启动rsync进行同步。但是当前需求有点变化,文件要按照日期建文件夹进行存储,且文件变化很快,如果直接监控最顶级目录系统资源将消耗很大,所以考虑还是自写一下好,如果系统资源量变化大,且不用时时同步时可以根据文件变动对变动对文件进行记录,可以按照优先规则进行同步。
官方网站 : http://trac.dbzteam.org/pyinotify
系统要求:Linux kernel with inotify ≥ 2.6.13
Python ≥ 2.4
直接使用easy_install安装非常简单
# sudo easy_install pyinotify
如果不能联网,则需要直接下载压缩包,进行编译安装。
首先测试下是否可用:
使用以下命令监控/tmp文件夹,
# python -m pyinotify /tmp
在/tmp文件夹下新建1.txt,并随后进行删除。看到显示的记录如下:
效果不错,继续向下进行。只要有创建、删除和关闭写就打印出变化的文件或目录,代码如下:
import re import pyinotify wm = pyinotify.WatchManager() mask = pyinotify.IN_DELETE | pyinotify.IN_CREATE | pyinotify.IN_CLOSE_WRITE class EventHandler(pyinotify.ProcessEvent): def process_IN_CREATE(self, event): self.rebuild(event) def process_IN_DELETE(self, event): self.rebuild(event) def process_IN_CLOSE_WRITE(self, event): self.rebuild(event) def rebuild(self, event): chang_name=re.compile(".+\.swp$|.+\.swx$|.+\.swpx$") if not chang_name.match(event.pathname): print event.pathname handler = EventHandler() notifier = pyinotify.Notifier(wm, handler) wdd = wm.add_watch('/tmp', mask, rec=True,auto_add=True notifier.loop()
代码里使用正则表达式过滤因为使用vim打开文件产生的缓存文件。也可以用exclude_filter方法在官方文档中例子如下,但是我测试多次没有成功,所以直接用正则过滤。
# Exclude patterns from list excl_lst = ['^/etc/apache[2]?/', '^/etc/rc.*', '^/etc/hostname', '^/etc/hosts', '^/etc/(fs|m)tab', '^/etc/cron\..*'] excl = pyinotify.ExcludeFilter(excl_lst) # Add watches res = wm.add_watch(['/etc/hostname', '/etc/cups', '/etc/rc0.d'], pyinotify.ALL_EVENTS, rec=True, exclude_filter=excl)
如果监控文件太多,需要对系统做一下修改sysctl -n -w fs.inotify.max_user_watches=16384。
python 在 crontab 中的调用
python 在 crontab 中的调用
使用python写了一个脚本,手动执行没有问题。需要自动运行,所以要配置到crontab中。举例脚本位置“/Data/script/test.py” ,其中包含读取操作系统、读取配置文件、写日志操作,使用root用户每5分钟执行一次。最初配置为:
*/5 * * * * /usr/local/bin/python /Data/script/test.py >/dev/null
需要注意的是“*/5 * * * *”中间要用空格分隔。“/usr/local/bin/python”要根据使用的python脚本安装位置填写,通过观察定时任务失败。
分析原因,crontab运行时的环境变量与ssh登录的环境变量不同,导致读取配置目录和文件失败。解决方法,写一个shell调用脚本,将脚本放在crontab中。脚本有一个参数“start”。
shell脚本为test.sh:
#! /bin/bash # # crontab shell python # # www.simonzhang.net # email:simon-zzm@163.com # ### END INIT INFO . /etc/profile cd /Data/script/ case "$1" in start) /usr/local/bin/python /Data/script/test.py start & ;; test) /usr/local/bin/python /Data/script/test.py test & ;; *) echo $"Usage: $0 {start|test}" exit 1 esac exit 1
将脚本配置到crontab中运行成功,配置为:
*/5 * * * * /bin/sh /Data/script/test.sh start >/dev/null
自问自答空想乔布斯
a)乔布斯在苹果中期为什么会离开苹果?
人际关系一定是没有搞好。
b)乔布斯一定是天才,否则后来苹果不会把他请回来。
必然会有自己独到之处,并与苹果保持着很好的联系。
c)为什么在离开苹果后创建的公司并不内有成为世界级企业?
个人能力再强也需要整个团队的支持。后期团队可能不太给力。
d)回到苹果,是否对苹果团队全面换血?
应该没有,如果有此能力,当初应该不会离开苹果。
e)乔布斯对产品要求精益求精。苹果的团队是否对产品要求也是精益求精。
有能力第一,但还要有协调能力。有协调能力还要有固执的性格,将自己
的判断彻底的执行。
f)为人固执是好是坏?
有利有弊,如果对则天天向上,如果有偏差则越差越大。
反思我应该怎么做?
和朋友和睦相处,与新朋旧友保持联系。认真思考,永不放弃。
读《白雪乌鸦》
描写了一场鼠疫的横行,一派凄凉的景象。作者对具体的人物刻画的也很生动,但是人物之间的关系并不是很紧密,对于人与人之间对此次灾难的描述还差一点。作者的文字描述还是很精彩。值得一看。