分类目录归档:技术

10个超酷的命令行

  1. 以 root 帐户执行上一条命令。
  2. python -m SimpleHTTPServer

    利用 Python 搭建一个简单的 Web 服务器,可通过 http://$HOSTNAME:8000 访问。

  3. :w !sudo tee %

    在 Vim 中无需权限保存编辑的文件。

  4. cd -

    更改到上一次访问的目录。

  5. ^foo^bar

    将上一条命令中的 foo 替换为 bar,并执行。

  6. cp filename{,.bak}

    快速备份或复制文件。

  7. mtr google.com

    traceroute + ping。

  8. !whatever:p

    搜索命令历史,但不执行。

  9. $ssh-copy-id user@host

    将 ssh keys 复制到 user@host 以启用无密码 SSH 登录。

  10. ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq /tmp/out.mpg

    把 Linux 桌面录制为视频。

nginx core dump trace

问题: 如何core dump

答案: 配置方法如下

1. 配置nginx跑在非daemon和非master_process模式,配置样例

daemon off;

master_process off;

2. 配置worker_processes个数,可设置为1

worker_processes 1;

3. 启动nginx

ulimit -c unlimited;

/opt/soft/nginx/sbin/nginx -c /opt/soft/nginx/conf/nginx.conf;

4. 阅读coredump

gdb sbin/nginx  -c core.$pid$

gdb>where

#貌似说最新的coredump办法,不影响在线业务

nginx配置方法
worker_rlimit_core  500M;
working_directory   /path/to/cores/;
要保证nginx进程用户对working_directory可写
原来的配置都不用动,也跑在daemon模式下,有master进程
只需要增加这两行就成了
worker_rlimit_core限制生成core大小的,如果占内存多就搞大
确认需要以下方式:
#新建一个文件夹, 并确认nginx可以读写
$ mkdir /tmp/cores
$ sudo chown root:root /tmp/cores
$ sudo chmod 1777 /tmp/cores
#设置unlimited core file dump
$ ulimit -c unlimited
#设置系统级别的core file
$ echo "/tmp/cores/core.%e.%p" | sudo tee /proc/sys/kernel/core_pattern
#允许suid dumpable
$ sudo sysctl -w fs.suid_dumpable=2
$ sysctl -p
可以发送信号, 让nginx 直接生成coredump, 测试以上配置是否生效
比如kill -11 $work_process_pid

python 的与或非

def intersect(a, b):

“”” return the intersection of two lists “””
return list(set(a) & set(b))

def union(a, b):
“”” return the union of two lists “””
return list(set(a) | set(b))

def difference(a, b):
“”” show whats in list b which isn’t in list a “””
return list(set(b).difference(set(a)))
备注:这里应该是list(set(b)-set(a))

这个代码非常方便的使用在比较两份海量url的共同元素上