Linux上的远程log监控
名字太大,其实只是遇到了一个问题,想远程实时看一个log文件的变化。开始是这么做的。
vim 里面 :e scp://xxx@xxx//filePath
:e! 来刷新
太low了。直接用ssh:
ssh xx@xxx “less filePath”
发现less直接就退出了。 换成:
ssh -t xx@xxx “less filePath”
也不能实时刷新。测试less 本地一个文件同时写入,发现less没有实时刷新的功能。看来是在ob的时候deploy给我的错觉啊。
换tail:
ssh -t xx@xxx "tail filePath"
还是直接执行完毕退出。查tail有没有自动刷新的模式,有一个follow:
ssh xx@x...
git中删除已经缓存的文件
经常遇到一种情况,开始项目的时候没加.gitignore文件,提交之后发现有大量的pyc文件残留,这样两地共同修改的时候pyc文件会造成大量的冲突。针对这种情况,可以如下解决:
建立.gitignore文件并写入:
.pyc
.swp
删除所有缓存中的数据:
find . -name ‘.pyc’ -o -name ‘.swp’ > /tmp/files
while read line; do
git rm –cached $line
done < /tmp/files
在冲突的一端回滚所有pyc冲突:
find . -name ‘.pyc’ -o -name ‘.swp’...
Thrift依赖和Slf4j
用Thrift做一个分布式系统的RPC,发现跑起来的时候总提示Failed to load class org.slf4j.impl.StaticLoggerBinder,看了看maven依赖感觉没啥问题啊,slf4j-api-xx.jar好好的在呢。分析了maven的依赖,eclipse的问题,最后发现都没问题啊。最后发现还是不了解slf4j,以为跟log4j一样的,其实作为一个proxy,slf4j-api只是一套接口,实现的依赖没有添加进来。
Thrift的依赖加进来的时候(如下),Dependency Hierachy解析会添加相关的包,但是只添加了slf4j-api,动态编译也不会出错,毕竟接口都有了,但是运行时从classpath找不到对应的包。
<depen...
关于Maven回滚了eclipse中项目的JRE版本
发现在命令行对一个项目执行mvn install的时候,回eclipse看就会有些错误,原因如这里所说,JRE版本和compliance level被回滚到1.5了。查看配置发现,eclipse导入配置并没有设置这里。如下:
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>realtime_ua</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name...
Flash Cookie的跨域读取
关于Flash Cookie相关的问题见参考文献1。这里主要说如何实现跨域的Flash Cookie读取。
首先,我们要实现Js调用Flash插件。比较简单的实现是用swfobject。简单的示例代码如下:
<object id="myCom" name="myCom" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="0" height="0">
<param name="movie" value="http://xxx/xxx.swf" />
<param name="allowScriptAccess" value="always" />
<...
kafka Consumer API几个问题
一直不理解这里的topicCountMap是什么意思。kafka的High Level Consumer API设计实在是比较费解。源码又比较费解。
Map<String, Integer> topicCountMap = new HashMap<String, Integer>();
topicCountMap.put(topic, new Integer(1));
Map<String, List<KafkaStream<byte[], byte[]>>> consumerMap = consumer.createMessageStreams(topicCountMap);
List<KafkaStream<...
关于eclipse里面override上的warning
写一个Thrift的调用。生成的Thrift代码在eclipse里面打开就报错。如下:
看AsyncMethodCallback的代码,没有任何问题啊:
后来发现当前项目JRE的版本是1.5,~~貌似1.5的JRE有个bug~。切到1.6以上版本就可以了。原因如下:
Eclipse is defaulting to Java 1.5 and you have classes implementing interface methods (which in Java 1.6 can be annotated with @Override, but in Java 1.5 can only be applied to methods overriding a supercla...
redis-copy的使用
有时候我们需要迁移redis的数据,从本质上看,这基本上是个rehash的过程。我们这里使用redis-copy实现。
简单写一下步骤。首先得有ruby环境,然后直接安装:
gem install redis-copy
可能会遇到几个包缺失的问题,如果有报错,安装如下几个包:
gem install redis
gem install hiredis
gem install recommendify
简单测试一下redis-copy
首先建立source和dest redis server:
redis-server redis.src.conf //6379 port
redis-server redis.dst.conf //638...
495 post articles, 62 pages.