Describe linux/gwan g-wan keyvalue store zlib base64 here.

requests post数据时,进行了escape, 所以在http服务器端要unescape才是原数据。

file kv4.c {{{#!highlight c

include "gwan.h" // G-WAN exported functions

include

include

include

include

typedef struct record_s // this is a user-defined 'record' structure { char *content; u64 tm; } record_t;

int main(int argc, char argv[]) { xbuf_t reply = get_reply(argv); char act="", content="", *tm="";

get_arg("act=", &act ...
more ...

Describe linux/rhce视频/31-33 终端 sudo autologin respawn terminal here.

== 31 tty pts ttys0 terminal ==

tty1 tty2 tty3 ...虚拟控制台

/dev/ttyS0 com口

pstree 命令查看进程树时,所有进程的父进程为init(/etc/inittab)

运行级别为2345时

respawn 反复打开子进程 ,如果它监视的子进程被关闭,会自动启动

运行/sbin/mingetty 打开虚拟控制台

/sbin/mingetty tty12 //执行此命令后,准备好tty12控制台

/sbin/agetty ttyS0 //com

xwindows下终端,伪终端 pts/0

/dev/pts/ 多伪终端一个登录,多一个文件

skill -9 pts/2 //杀掉进程及子进程

== 32 讲解autologin-respawn ...

more ...

Describe linux/vi上下左右键变abcd .bashrc here.

ubuntu使用的是默认的vim-tiny,那么你可以在终端中输入如下命令: {{{ export TERM=linux }}} '''terminal 类型位于 /usr/share/terminfo目录下'''

这样可以解决上下左右键变成ABCD这些,ubuntu11.04默认的是TERM=xterm,你可以使用echo $term来查看一下。如果不是最新的11.4,上述操作不能成功的话,尝试使用export TERM=vt100试试。

如果你安装过了vim,那么找到vimrc_example.vim拷贝的用户目录下,改名为.vimrc。

==== 最好方案 ==== {{{ apt-get isntall vim }}}

more ...

Describe linux/bash 笔记 here.

=== 命令组合 === ||管道|| | || ||<|4>重定向|| < 重定向输入。指定文件读取数据,而不是键盘输入|| ||> >> 重定向输出。将输出结果覆盖、追加到指定文件 || ||2> 2>> 标准错误输出。 结果覆盖、追加到指定文件|| ||&> &>> 将标准输出和错误信息覆盖、追加到指定文件 ||

下面2条相同结果 {{{ find / -name shrek > /tmp/find 2>&1 find / -name shrek &> /tmp/find cat << EEE skjdf sfd EEE(^D)

}}} 多条命令的逻辑关系 || 逻辑与 ||&& 语名都执行成功。前面成功,执行后面的。如果前面失败,后面的不执行。|| ||逻辑或 || || 前面成功不执行后面。前面失败,执行后面的。|| ||逻辑分隔||; 按顺序执行多条语句 || === 3 ...

more ...

Describe linux/Linux查看系统配置常用命令 here.

{{{ 系统

uname -a # 查看内核/操作系统/CPU信息

head -n 1 /etc/issue # 查看操作系统版本

cat /proc/cpuinfo # 查看CPU信息

hostname # 查看计算机名

lspci -tv # 列出所有PCI设备

lsusb -tv # 列出所有USB设备

lsmod # 列出加载的内核模块

env # 查看环境变量

资源

free -m # 查看内存使用量和交换区使用量

df -h # 查看各分区使用情况

du -sh <目录名> # 查看指定目录的大小

grep MemTotal /proc/meminfo # 查看内存总量

grep MemFree /proc/meminfo # 查看空闲内存量

uptime ...

more ...

linux/rhce视频/18 解决linux访问比较慢的问题

{{{ icmp协议: ping www.sina.com.cn traceroute www.sina.com.cn mtr www.sina.com.cn 通路 ,掉包率

查看本机 top vmstat netstat netstat -antup tcp listen udp 无状态

特别多的 ESTABLISHED ,有可能多人在看网站,也可能是CC攻击(恶意访问,查看IP,同一IP数多为CC) 如果连接中ESTABLISHED占少数,syn-flood DDOS攻击

抓包工具 iptraf tcpdump wireshark

arping 网关IP  如果有2个mac地址,有arp欺骗,(一般情况下,出现次数多的mac为假网关)

arp -s ...

more ...

Describe linux/RHEL6/CentOS6/Scientific Linux 6虚拟机克隆导致的网卡问题解决方法 here.

刚才在VM虚拟机里测试Scientific Linux 6(RHEL6的重编译版,相当于CentOS 6),看看是否可用于生产环境。因为镜像是在家里的电脑安装的,复制过来启动系统发现网卡启动失败,提示:

Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization. [FAILED]

Google了一下,发现是网卡mac地址写入硬件问题导致。

环境:Virtualbox+RHEL 6 x64
VirtualBoxvboxmanager克隆的虚拟机,操作系统RHEL6,启动后发现网卡不能用了。重启网络服务,报以下错误:
Bringing up interface eth0: Device eth0 does not ...
more ...

Describe linux/rhel/redhat笔记 here.

echo "aaa" > tty1 #输出内容到tty终端

vi /etc/inittab id:3:initdefault #3默认不启动xwindow,5开机启动xwindow

1:2345:respawn:/sbin/ningetty tty1 #tty终端数量

===9 10 课时,系统命令初步 === linux一切皆文件,硬件也抽象成文件形式 {{{ cd ~abc 进入abc家目录 touch a 更改文件时间,如果没有文件则创建 touch /tmp/{a,b} 创建a,b2个文件 stat a 查看文件a的时间 pws 显示当前路径 ls -F 增加标记。可执行文件加/,可执行文件加*... alias ls ...

more ...

Describe linux/linux显示历史命令 here.

使用 HISTTIMEFORMAT 显示时间戳

当你从命令行执行 history 命令后,通常只会显示已执行命令的序号和命令本身。如果你想要查看命令历史的时间戳,那么可以执行: {{{

export HISTTIMEFORMAT='%F %T '

history | more

1 2008-08-05 19:02:39 service network restart 2 2008-08-05 19:02:39 exit 3 2008-08-05 19:02:39 id 4 2008-08-05 19:02:39 cat /etc/redhat-release }}} 注意:这个功能只能用在当 HISTTIMEFORMAT 这个环境变量被设置之后,之后的那些新执行的 bash 命令才会被打上正确的时间戳 ...

more ...

Describe linux/gwan g-wan key value store here.

add data: http://localhost:8080/?kv4.c&act=a

get data: http://localhost:8080/?kv4.c&body=999999

首先定义结构 record_t 指针,分配内存空间,存储数据,添加进k/v存储。

{{{#!highlight c

include "gwan.h" // G-WAN exported functions

include

include

include

typedef struct record_s // this is a user-defined 'record' structure { char name; // the Key(name ...

more ...