linux
largetalk
技术宅,享受coding, python粉丝,热爱c, linux,想找个人一起去旅行
展开
-
Thrift Java Servers Compared
Thrift Java Servers ComparedThrift 是一个跨语言的序列化/rpc框架,它有三个主要组成:协议protocol,传输transport和服务server。协议定义消息如何被序列化的。传输定义消息如何在client与server之间传送。server从transport收到序列化后的消息,按照协议反序列化消息然后调用用户定义的消息处理函数,然后反序列化hander来的response再写回transport。Thrift的模块化架构使得它能有多样的servers可选。翻译 2014-01-19 21:52:03 · 3805 阅读 · 0 评论 -
git merge和rebase的区别
git merge 会生成一个新得合并节点,而rebase不会比如: D---E test /A---B---C---F master使用merge合并: D--------E / \A---B---C---F----G test, master而使用rebase则:A---B---D--原创 2012-04-03 09:36:21 · 15225 阅读 · 3 评论 -
ubuntu rebuild nginx to add stub_status module
在Q群里看到人说给nginx的配置文件加上如下行: location /NginxStatus { stub_status on; }可以看到一些nginx运行的信息,可是我加上后重新reload却出现了错误$ sudo /etc/init.d/nginx reloadReloading nginx configurat原创 2013-04-16 11:07:27 · 4940 阅读 · 0 评论 -
fork与信号
1,fork后子进程会继承父进程的信号屏蔽字,再继续exec后仍会继承这个信号屏蔽字。同样地,直接调用system后子进程也会继承父进程的信号屏蔽字。2,fork后子进程会继承父进程的信号处理设置,再继续exec后就不会继承这个信号处理设置了。3,fork后子进程会继承父进程的控制终端,且子进程在父进程的进程组和会话组中;再继续exec后仍会继承这个控制终端,仍在父进程的进程组和会转载 2013-04-07 11:27:49 · 3066 阅读 · 0 评论 -
Zookeeper集群安装
Zookeeper集群安装前提:准备3台机器,ip分别是172.16.97.11172.16.97.12172.16.120.4下载zookeeper, http://zookeeper.apache.org/releases.html , 我下载的最新的3.4.5版下面操作在3台机器上都要做:sudo tar xvf zoo原创 2013-04-02 11:01:14 · 1488 阅读 · 0 评论 -
git 更改远程仓库
basic from: http://blog.csdn.net/zbunix/article/details/86136481). 从原地址克隆一份裸版本库git clone --bare git://github.com/username/test.git2). 然后到新的 Git 服务器上创建一个新项目如果是自己服务器,使用git init --bare转载 2013-04-03 10:55:02 · 1307 阅读 · 0 评论 -
deploy django with url prefix in nginx
我以前一般部署网站都是部署在根目录下, 比如www.example.com 直接转发到 后端服务器监听的端口,这种很简单,只要这样即可: location / { proxy_pass http://127.0.0.1:8888 ; }但如果我们想将网站部署在某个子目录下, 比如www.example.com/admin/ , 则不是那么简单的事原创 2013-03-28 21:53:20 · 1983 阅读 · 0 评论 -
Linux内核中的红黑树
from: http://www.kerneltravel.net/jiaoliu/kern-rbtree.htmlLinux内核中的红黑树作者:西邮 王聪红黑树是平衡二叉树的一种,它有很好的性质,树中的结点都是有序的,而且因为它本身就是平衡的,所以查找也不会出现非常恶劣的情况,基于二叉树的操作的时间复杂度是O(log转载 2013-01-13 12:20:14 · 909 阅读 · 0 评论 -
use pep8 check code by pre-commit git hooks
一点小玩意$ cat pre-commit#!/bin/bashecho '############################'echo 'pep8 check before git commit'git status | grep -E 'modified:|new file:|renamed:' | grep '.py$' | awk '{print $NF}' | xa原创 2012-12-15 01:15:39 · 1047 阅读 · 0 评论 -
chroot, busybox和搭建沙盒
有时为了安全,我们需要将用户程序的执行环境和外部隔离开来, 在linux下 chroot可完成如此工作。chroot,即 change root directory (更改 root 目录)。在 linux 系统中,系统默认的目录结构都是以 `/`,即是以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为 `/` 位置。 ----- from:http:原创 2013-06-11 13:00:40 · 7030 阅读 · 0 评论 -
网络安全与OpenSSL
网络安全与OpenSSL这两天看了个介绍网络安全的视频,有点豁然开朗的感觉,结合前段时间看OpenSSL的各种不懂,就有了这篇笔记类似的文章1. 名词解释加密,解密,明文,密文:不解释对称加密:加密解密密码一样,DES, AES, Rijndael, 3DES, blowfish等加密算法非对称加密:加密解密密码不一样,又称公开密钥加密,RSA,原创 2013-06-07 14:07:31 · 2924 阅读 · 2 评论 -
Zero-sized Array
Zero-sized Array在memcached源码中看到的:/** * Structure for storing items within memcached. */typedef struct _stritem { ...... /* this odd type prevents type-punning issues when we do原创 2013-06-18 23:29:36 · 3126 阅读 · 0 评论 -
常用vim插件
http://blog.csdn.net/tge7618291/article/details/4216977http://www.aitilife.com/2011/04/10/vim%E5%B8%B8%E7%94%A8%E6%8F%92%E4%BB%B6%E5%A4%A7%E5%85%A8/vim 插件管理利器: vimpyresudo apt-get inst转载 2011-11-16 13:48:35 · 1513 阅读 · 0 评论 -
Linux服务器调优
Linux服务器调优安装一台新的Linux服务器之后都要做些配置调整工作,优化一下系统,以前零零碎碎记录过一些,这里集中整理一下。Linux内核参数http://space.itpub.net/17283404/viewspace-694350net.ipv4.tcp_syncookies = 1表示开启SYN Cookies。当出现SYN等待队列原创 2013-11-21 17:00:00 · 22701 阅读 · 1 评论 -
Puppet
PuppetPuppet 是一个为实现数据中心自动化管理而设计的配置管理软件。安装在puppet client机器上:sudo apt-get install puppet在puppet master机器上:sudo apt-get install puppetmaster #ubuntuemerge -av app-admin/puppet原创 2013-10-30 14:26:34 · 2184 阅读 · 0 评论 -
nagios安装使用
nagiosnagios自身在ubuntu上的安装可参照http://nagios.sourceforge.net/docs/3_0/quickstart-ubuntu.htmlNRPE安装参照http://blog.c1gstudio.com/archives/559 , 另在此之前安装libssl-devpercona monitoring plugin 可参见http原创 2013-10-16 17:07:42 · 3771 阅读 · 0 评论 -
MongoDB 杂事
MongoDB 杂事¶昨天线上mongo发生一次故障,出现客户端连不上,查询巨慢等现象,排除一整天也无法复原问题出现,不过这个过程中对mongo和pymongo有更进一步了解,特此笔记。819连接数查看日志看到大量如下日志:Getting connection refused because too many open connections: 819使用d原创 2013-09-13 17:51:06 · 5888 阅读 · 0 评论 -
mysql HA方案: MHA
mysql-master-hamysql 做热备和高可用的方法有很多种, 比如:mmm: http://mysql-mmm.org/mha: https://code.google.com/p/mysql-master-ha/heartbeat+brdb: http://lin128.blog.51cto.com/407924/279411 http://www.c原创 2013-08-16 17:32:23 · 18327 阅读 · 1 评论 -
在Ubuntu上使用SystemTap
http://www.ningoo.net/html/2010/use_systemtap_on_ubuntu.html虽然很早以前听说过,但基本没用过,最近褚霸同学的介绍,勾起了我对这个东西的兴趣。最近在工作笔记本上装了个Ubuntu10.10做为主操作系统,因此正好在上面也实验学习下SystemTap。安装systemtapsudo apt-get instal转载 2013-08-23 11:08:58 · 3009 阅读 · 0 评论 -
新年快乐
又是一年春来到,在蛇年里,pythoner一定要崛起,我新的一年打算是尝试,尝试各种新鲜玩意,尝试以前不会,没时间玩的东西,在不同领域都进行尝试,这不在边看春节晚会的时候边尝试把gentoo安装成功了,一直想玩玩gentoo的,但原来觉得很难,安装完之后发现其实也很简单。安装过程无须多说,主要看这篇文章即可:http://www.ha97.com/2333.html转载 2013-02-10 10:43:49 · 726 阅读 · 0 评论 -
pypy的速度
无聊作PE http://projecteuler.net/problem=10 , 求2百万以下数的所有数的总和python 随便写了一个big = 2000000import timeplst = [2, 3, 5, 7, 11, 13]t1 = time.time()for i in xrange(17, big, 2): for p in plst:原创 2012-12-07 11:01:05 · 2956 阅读 · 0 评论 -
linux shell 和 vim快捷键
from: http://blog.sina.com.cn/s/blog_7556be720100ryp2.htmlCtrl+p重复上一次命令Ctrl+a跳到第一个字符前Ctrl+x同上但再按一次会从新回到原位置Ctrl+b前移一个字符不删除字符情况下Ctrl+h删除前一个字符Ctrl+u删除提示符前的所有字符Ctrl+w同上Ctrl+d删除提示符后一个字符或exit或log转载 2012-12-05 14:28:31 · 3796 阅读 · 0 评论 -
不同linux系统添加开机启动程序的命令
see http://phpcj.org/blog/%E4%B8%8D%E5%90%8Clinux%E7%B3%BB%E7%BB%9F%E6%B7%BB%E5%8A%A0%E5%BC%80%E6%9C%BA%E5%90%AF%E5%8A%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E5%91%BD%E4%BB%A4/不同linux系统添加开机启动程序的命令作者: 清风转载 2011-12-28 16:38:47 · 1765 阅读 · 0 评论 -
archlinux gedit乱码解决
在ubuntu中gedit乱码解决是打开gconf-editor, 在/apps/gedit-2/preferences/encodings中给auto-detected键添加一个‘GB18030’,并将其排到列表顶部在archlinux中得gconf-editor /apps下没有gedit,但dconf-editor有, 如果没有dconf-editor,就安装一个, 打开dc原创 2011-12-29 02:23:54 · 1471 阅读 · 0 评论 -
mysql 各种索引
索引先要分聚集索引和非聚集索引聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。 简单来说 聚集索引就是物理上的索引, 比如顺序存储26个字母, 那c肯定在b的后面,查询c的话直接查询就可以了非聚集索引指索引和物理存储分开, 该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同。此外索引又可原创 2011-12-16 11:06:41 · 808 阅读 · 0 评论 -
bash和python中得颜色
在bash中想使输出得字符串有颜色,或者高亮某些字符,这就需要在输出得字符中插入一些转义字符,如echo -e "\e[1;31mabc\e[0m"就会高亮输出abcbash中\e[x;ym是设置某些属性, \e[0m关闭所有属性,\e也可以用\033来代替上面例子中x是1表示高亮,x是0表示不高亮, y是31表示前景红色,41表示背景红, 其实,十位3和4表示前后背景,个位0-7原创 2011-11-15 21:08:15 · 2577 阅读 · 0 评论 -
linux select 学习
#include #include #include #include #include #include #include intmain(void){ fd_set rfds; struct timeval tv; int re原创 2011-08-23 17:47:50 · 768 阅读 · 0 评论 -
用sed翻转文本
今天学到一个命令,用sed将文件中内容按行翻转一下。比如:123翻转之后变成321命令是sed '1!G;h;$!d' filename如果想将改变直接保存到文本,那命令是sed -i '1!G;h;$!d' filename原创 2011-09-14 18:43:52 · 985 阅读 · 0 评论 -
文件双向同步的一点想法
研究了两天也没找到个很好的办法, 这里记录一下研究过的办法以及提出一个设想 1, inotify-tools + rsync 使用inotify-watch监视文件夹, 有改动即执行rsync 安装使用简单, 满足实时的需要, 但不能双向,性能也是瓶颈 2, sersync inotify + rsync, c++ 编写, 配置较多,能原创 2011-06-30 16:20:00 · 6453 阅读 · 0 评论 -
grep 找回 删除文件
这里给大家介绍一个小技巧用来恢复一些被rm了的文件中的数据。我们知道,rm命令其实并不是真正的从物理上删除文件内容,只过不把文件的inode回收了,其实文件内容还在硬盘上。所以,如果你不小删除了什么比较重要的程序配置文件的时候,我们完全可以用grep命令在恢复,下面是一个恢复示例:查看源代码打印帮助1grep-a -B 50 -A 60 'some string in the file'/dev/sda1 > results.txt说明:关于grep的-a意为–binary-files=text,也原创 2010-09-03 10:19:00 · 914 阅读 · 0 评论 -
mysql load data infile file not found
解决方法:gelmjw@voyager:~$ sudo aa-complain /usr/sbin/mysqld[sudo] password for gelmjw:Setting /usr/sbin/mysqld to complain mode.gelmjw@voyager:~$ sudo /etc/init.d/apparmor reloadReloading AppAr原创 2010-12-13 13:39:00 · 3456 阅读 · 0 评论 -
ubuntu配置ntp服务器
一个多台机器构成系统,有时候会有时间同步的需求,比如应用服务器和数据库服务器,如果两则不一致的话,有时就会产生问题,所以需要一个时间同步的机制来保证每台机器的时间一致。Network Time Protocol(NTP,网络时间协议)用于同步它所有客户端时钟的服务。NTP服务器将本地系统的时钟与一个公共的NTP服务器同步然后作为时间主机提供服务,使本地网络的所有客户端能同步时钟。在ubun原创 2012-01-30 21:55:36 · 14236 阅读 · 0 评论 -
tcpdump一些参数意义
-w file: save dump log to file-r file: read saved data from file, not capture from network interface-c count: 如果没有这个参数就一直抓包直到被kill或中断,如有则抓取count个包后停止-A : 包内容以ascii输出-B buff_size: 设置抓包得buf原创 2012-01-03 23:44:42 · 3554 阅读 · 0 评论 -
tcp通信:多进程共享listen socket方式
看tornado源码多进程(process.py)那段,发现他的多进程模型和一般常见的模型有点不一样,多见的是主进程bind-> listen -> accept, 将accept返回的socket用子进程处理,而tornado是在bind -> listen -> fork, 在listen之后fork,多个子进程共享listen socket, 每个子进程都accept。 以前没见过这种模型,原创 2012-09-03 17:59:20 · 8671 阅读 · 3 评论 -
gdb和coredump等一些调试技巧
查看一个可执行文件需要加载的库, ldd filename, 如:$ ldd str_hash linux-gate.so.1 => (0x00de1000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0x008ed000) /lib/ld-linux.so.2 (0x003f0000)如果想看一个运行中程序的动态加载库,可以先p原创 2012-09-03 14:53:00 · 1695 阅读 · 0 评论 -
convert sqlite to mysql
尼玛,开始数据库不选好后面改太操蛋了,关键运行中得数据还不能丢,让人崩溃阿1. schema先sqlite3 xxxx.db>.output schema.sql>.schemamysql和sqlite差距老大了,写一个sed脚本改schema,sql,一边写一边测,不具有可复制性#!/bin/sed -f #filename : schema.sed#author原创 2012-07-24 23:07:49 · 2719 阅读 · 0 评论 -
我常用的shell命令
我常用的shell命令tar:tar jxvf filename.tar.bz2tar xvf filename.tartar cvf filename.tar filetar cjvf filename.tar.bz2 filefind . -type f #只找出文件 f:文件, d:目录,l: linkwc:ls -l | wc -l原创 2011-09-15 17:09:10 · 546 阅读 · 0 评论 -
postgres初级介绍,与mysql的一些比较
apt-get 安装好postgres之后会生成一个postgres系统用户,虽然pg中的role和系统用户没有关系,但开始时必须用postgres登录系统才能连上pg,这也算是一个不人性的地方吧1. edit /etc/postgresql/9.1/main/pg_hba.conf 添加如下行host test test 127.0.0.1 25原创 2012-05-09 16:28:56 · 2008 阅读 · 0 评论 -
epoll学习笔记
一篇讲怎么使用在python中使用epoll得好文章 http://scotdoyle.com/python-epoll-howto.html ,文章里不仅有epoll得使用和代码展示,还讲了些epoll工作模式和TCP得一些内容, 稍微做点笔记。设置socket为non-block : serversocket.setblocking(0)ET和LT:epoll工作模式分原创 2012-04-17 23:41:33 · 4073 阅读 · 3 评论 -
ab "apr_socket_recv: Connection reset by peer" 错误解决
在ubuntu 11.04上的ab(apache-utils)有些问题, 在并发数稍微大点(大概3,400)的情况下就会报 apr_socket_recv: Connection reset by peer 错误,这肯定会影响我们使用, 所以需要自己编译一个。从 https://code.google.com/p/apachebench-standalone/downloads/deta原创 2012-03-09 16:09:49 · 25134 阅读 · 4 评论