Archive for linux

说说研究这个的起因: 妹子这几天心情不好,频发状态,为了随时了解她的动态,觉得写个接口时刻关注她是否发送新状态。mac下的通知中心是最好的消息提醒了,比ubuntu下的好多了,非常容易看到而且不烦人,所以想看看能不能调这个通知中心的接口。 系统编程肯定是可以了,但是我想用python写脚本,于是google一下,没有。改成英文找到了。。 几个关键的知识点: osascript https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/osascript.1.html https://developer.apple.com/library/mac/documentation/AppleScript/Conceptual/AppleScriptX/AppleScriptX.html#//apple_ref/doc/uid/10000156-BCICHGIE 这应该是osx的系统级脚本语言,类似之前windows的vbscript吧。最早就用VBscript就能写

Continue

Freebsd下查看进程打开了那些文件 procstat -f PID FreeBSD 下的rc.conf 不重启立即生效 # sh /etc/rc vmstat结果内容的解释 最好使用vmstat t [n]命令,例如 vmstat 5 5,表示在T(5)秒时间内进行N(5)次采样。如果只使用vmstat,无法反映真正的系统情况。 procs: r–>在运行的进程数 b–>在等待io的进程数(等待i/o,paging等等) w–>可以进入运行队列但被替换的进程 memoy(以k为单位,包括虚拟内核和真实内存,正在运行或最近20秒在运行的进程所用的虚拟内存将被视为active) avm–>活动的虚拟内存 free–>空闲的内存 pages(统计错误页和活动页,每5秒平均一下,以秒为单位给出数值) flt–>错误页总数 re–>回收的页面 pi–>进入页面数 po–>出页面数 fr–>空余的页面数 sr–>每秒通过时钟算法扫描的页面 disk 显示每秒的磁盘操作(磁盘名字的前两个字母加数字,默认只显示两个磁盘,如果有多的

Continue

新创建一个表保存最大id,区分主索引和增量索引 # 搜索索引相关 CREATE TABLE index_delta ( id SERIAL PRIMARY KEY, max_id integer ); INSERT INTO index_delta (id, max_id) VALUES (1, 0); 我这里直接插入数据,后边配置的时候直接使用update就行了,不然太麻烦。 配置文件;先大体测试了一下,应该没什么问题了,安装的3.2版本的coreseek,好多功能没有,不过够用了,先布置到线上看看效果 <pre>source main { type = pgsql sql_host = localhost sql_user = pgsql sql_pass = sql_db = bt

Continue

基本都是coreseek官网提供的命令安装,但是在freebsd上出现很多问题,都是查找解决的。 sh buildconf.sh最后没有生成configure脚本,且提示automake: warnings are treated as errors 在 csft-4.1/buildconf.sh 文件中,查找 && aclocal \ 后加上 && automake --add-missing \ 在 csft-4.1/configure.ac 文件中,查找: AM_INIT_AUTOMAKE([-Wall -Werror foreign]) 改为: AM_INIT_AUTOMAKE([-Wall foreign]) 这里支持pgsql接口 ./configure --prefix=/usr/local/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/loc

Continue

从网上找到这个插件可以查看postgresql数据库执行的慢sql。于是安装试试,but &nbsp; 先写出文档来http://www.postgresql.org/docs/current/static/pgstatstatements.html 配置文件需要做的更改 # postgresql.conf shared_preload_libraries = 'pg_stat_statements' pg_stat_statements.max = 10000 pg_stat_statements.track = all 重启postgresql后,发现报错了“could not access file "pg_stat_statements": No such file or directory”。从网上也没找到问题,群里问也没说的。然后慢慢查postgresql插件的资料,发现我freebsd机器插件目录里没有这个插件。/usr/local/share/postgresql/extension 然后我看了pkg的包资料,发现应该是少装了一个包,

Continue

<pre> <pre>//\加上字母l,相当于mysql的,mysql&gt; show databases; \l</pre> <pre> <pre>//以KB,MB,GB的方式来查看数据库大小 select pg_size_pretty(pg_database_size('playboy'));</pre> </pre> <pre> <pre>//相当于mysql的,mysql&gt; show tables; \dt <pre> <pre> <pre>//以KB,MB,GB的方式来查看表大小 select pg_size_pretty(pg_relation_size('test'));</pre> </pre> </pre> <pre> <pre> <pre>//查看表的总大小,包括索引大小 select pg_size_pretty(pg_total_relation_size('test')); <pre> <pre> <pre>//查看索大小 select pg_size_pretty(pg_relation_size('pl

Continue

<pre>今天freebsd上装nasm的时候,爆了这个奇怪的错误,开始以为不是本地的原因就源码安装,成功安装了。 晚上安装别的又出现这个错误了,于是找了一下解决方法。 sudo pkg update -f</pre>

Continue

说说为啥发现这么个蛋疼方法。昨晚上想测试一个手机app的安全问题,想进行网络抓包。然后mac没法插网线不能开WiFi共享,无法通过在mac上抓包实现了。然后用freebsd虚拟机想试试混杂模式看能不能获取到,搞了半天没成功,今天也没再试。mac好像还不支持混杂模式。然后搜索发现网上有一种代理的方法,看看头就大了。又发现一种使用安卓sdk里的工具进行抓包的方法,试用了一下。 安卓手机usb连接电脑,这个在android studio里会显示,直接插入,在mac下以前都没反应。 adb工具目录在 ~/Library/Android/sdk/platform-tools/adb 。 然后使用./adb devices 可以查看当前连接的手机设备 然后 ./adb push /Users/a0x55aa/Downloads/tcpdump /data/local/tcpdump 1673 KB/s (645840 bytes in 0.376s) copy到手机上 ./adb shell 连接到手机的shell上,可以先ls一下刚刚拷贝的tcpdump是否在,然后

Continue

折腾了好长时间,重新初始化好多次。 安装的时候,命令:pkg search postgresql.额 好多包,选择最新的9.4安装server,会一起安装client。安装完会有很多文字提示,这个很有用。安装完会新建一个用户pgsql,家目录为/usr/local/pgsql. 第一步, 要先切换到pgsql用户下,su root, su pgsql。然后在pgsql home目录创建data文件夹。root用户下好像是不允许的 初始化,initdb -D /usr/local/pgsql/data/ ,会生成很多文件。初始化数据库存储区,会自动创建一个 postgres的数据库,放乱七八糟的设置和第三方插件的数据。还会有一个模板 template1。这里还不是很清楚,以后创建数据库就会用这个模板创建。这里要说的是数据库编码的问题,这里悲剧的初始化了好多次。 默认执行上边的命令后,提示文字会跟你说(当时没看。。)默认数据库编码为“sql_ascii”,默认文本搜索设置为 english。。我靠执行的时候就瞅着屏幕发呆了,就等执行完。。。重新初始化的方法,我也是从提示中

Continue

额 早就想写这么个脚本了。这次有点时间写了一下,借助shell下的工具和python还是可以很快写好。 发现总有人爆破我ssh密码,我修改了端口还是跑。是盯上了还是怎么。如果关闭密码登录会好,但是每次换电脑就要添加公key,感觉还是密码方便一点。 <pre lang="python"># coding: utf-8 import os import time def lo(): ban_ip_list = [] output = os.popen("""grep "Failed password for root" /var/log/auth.log | awk {'print $11'} | uniq -c | sort -rn""") for l in output.readlines(): count, ip = l.split() if int(count) > 5 and ip not in ban_ip_list: ban_ip_list.append(ip

Continue