分类: 嵌入式
2014-07-07 18:05:38
ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 10372 696 ? Ss Mar28 0:02 init [3]
root 2 0.0 0.0 0 0 ? S< Mar28 0:00 [migration/0]
root 3 0.0 0.0 0 0 ? SN Mar28 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S< Mar28 0:00 [watchdog/0]
PID 进程 ID
MEM 内存使用率
VSZ 占用虚拟内存大小
RSS 内存中页的数量(页是管理内存的单位,在 PC 上通常为 4K )
TTY 进程所在终端的 ID 号
top -p pid,pid,…
top 按 1 后,会显示 CPU 详细内容
shift+g
netstat -anp | grep 8001
tcp 0 0 :::8001 :::* LISTEN 1359/java
1359 是 PID
sar 2 5 // 每隔 2 秒,显示 5 次, CPU 使用的情况
sar - r 2 5 // 每隔 2 秒,显示 5 次,内存使用的情况
sar - n DEV 2 5 // 每隔 2 秒,显示 5 次,网络吞吐量情况
保存为文本:
sar 1 10 > data.txt
// 每隔 1 秒,写入 10 次,把 CPU 使用数据保存到 data.txt 文件中。 sar 1 0 - e 15 : 00 : 00 > data.txt
// 每隔 1 秒记录 CPU 的使用情况,直到 15 点,数据将保存到 data.txt 文件中。(-e 参数表示结束时间,注意时间格式:必须为 hh:mm:ss 格式 ) sar 1 0 - r - e 15 : 00 : 00 > data.txt
// 每隔 1 秒记录内存使用情况,直到 15 点,数据将保存到 data.txt 文件中。 sar 1 0 - n DEV - e 15 : 00 : 00 > data.txt
// 每隔 1 秒记录网络使用情况,直到 15 点,数据将保存到 data.txt 文件中。
看到 vim 占用 cpu 到 99 ,然后用 ps 查询 vim
Ps aux|grep vim
然后根据 pid 杀死进程
Kill -9 pid
是强制杀死进程
netstat -an | grep 8081 | wc –l
开启网络中断可通过服务查看irqbalance服务查看状态,如果网络中断分布不均,则可以通过开启或关闭服务进行切换
service irqbalance stop
$bzip2 –d test.tar.bz2
$tar xvf test.tar
解压到执行目录加命令:
-C test_dir
当应用无关联删除 rpm -e --allmatches –nodeps popt 后, rpm 无法应用,所以切记不要随便卸载不清楚地 rpm
当卸载 popt 后,无法应用 rpm 了,执行 rpm 会报
Libpopt.so.0 不存在,所以我们这时候无法在用 rpm 安装 popt 包,那么就下载源码包安装
源码包地址:
下载后,我们解压 popt1.10.4 后
执行:
sed -i -e "/*origOptString ==/c 0)" popt.c &&
./configure --prefix=/usr &&
make
然后检查
make check
然后安装:
make install
安装在执行 rpm 即又可用了,所以一定要小心啊
%s/the/&/gn
上面的代码是 the 出现的次数
匹配行数:
%s/^//n
#bzip2 –d xxx.tar.bz2
#tar xvf xxx.tar
mount: could not find filesystem ‘/dev/root’
setuproot: moving /dev failed: No such file or directory
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
switchroot: mount failed: No such file or directory
Kernel panic – not syncing: Attempted to kill init!
修改
.config
CONFIG_SYSFS_DEPRECATED_V2=y
CONFIG_SYSFS_DEPRECATED=y
或者在
Make menuconfig 中
选
General setup--> [*] enable deprecated sysfs features to support old userspace tools
date +%s
:%s/aaa/ bbb/g 全部替换
:s/aaa/bbb/ 替换当前行
: n , $s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
按指定行替换
: startline , endline s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
例 :
: 1,3 s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
aaa 是被替换内容
bbb 是替换内容
ctrl+p
光标可以上下移动
:set nu
set softtabstop=2
批量注释:
Ctrl + v 进入块选择模式,然后移动光标选中你要注释的行,再按大写的 I 进入行首插入模式输入注释符号如 // 或 # ,输入完毕之后, Vim 会自动将你选中的所有行首都加上注释
取消注释:
Ctrl + v 进入块选择模式,选中你要删除的行首的注释符号,注意 // 要选中两个,选好之后按 d 即可删除注释
用 v 选中文本之后可以按 y 进行复制,如果按 d 就表示剪切,之后按 p 进行粘贴。
export LANG="en_US"
首先, ls –li 查看索引节点
[root@BP-28-xxxx tools]# ls -li
× ? ? ? 119644
85458947 drwxr-xr-x 8 1000 1000 4096 06-18 19:22 jdws-1.0
85458946 -rw-r--r-- 1 root root 612267 06-18 19:21 jdws-1.0.tar.gz
85491713 drwxrwxr-x 24 root root 4096 06-26 21:38 linux-2.6.35.13
85459795 -rw-r--r-- 1 root root 69335593 06-20 11:41 linux-2.6.35.13.tar.bz2
85459319 drwxr-xr-x 7 1169 1169 4096 06-18 19:25 pcre-8.10
85459318 -rw-r--r-- 1 root root 1285776 06-18 19:24 pcre-8.10.tar.gz.gz
85459796 -rwxr--r-- 1 root root 426 06-26 01:01 realserver
85983233 drwxr-xr-x 2 root root 4096 07-09 17:26 search_front_server
85459798 -rw-r--r-- 1 root root 51113771 07-09 17:42 search_front_server.zip
85954225 drwxr-xr-x 2 root root 4096 07-09 17:26 -?-?WEB+???????
然后找到 85954225
执行命令:
find ./ -inum 85954225 -print -exec rm {} -rf \;
之后就可以删除乱码文件或者文件夹了
后面加上 --nodeps –force 即可
例:
rpm -ivh libpng-devel-1.2.10-7.1.el5_3.2.x86_64.rpm --nodeps –force
首先安装:
rpm -ivh libjpeg-6b-37.x86_64.rpm
rpm -ivh libjpeg-devel-6b-37.x86_64.rpm
rpm -ivh libjpeg-6b-37.i386.rpm
rpm -ivh libjpeg-devel-6b-37.i386.rpm
rpm -ivh libpng-1.2.10-7.1.el5_3.2.i386.rpm
rpm -ivh libpng-1.2.10-7.1.el5_3.2.x86_64.rpm
rpm -ivh libpng-devel-1.2.10-7.1.el5_3.2.i386.rpm
rpm -ivh libpng-devel-1.2.10-7.1.el5_3.2.x86_64.rpm
如果不能正常安装则进行强制安装
--nodeps –force
然后安装:
tar zxf libmcrypt-2.5.8.tar.gz && cd libmcrypt-2.5.8/ && ./configure && make && make install && /sbin/ldconfig && cd libltdl/ && ./configure --enable-ltdl-install && make && make install && cd ../../
tar zxf mcrypt-2.6.8.tar.gz && cd mcrypt-2.6.8/ && /sbin/ldconfig
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
./configure && make && make install && cd ../
然后安装或解压 mysql
然后:
tar jxvf php-5.3.5.tar.bz2
cd php-5.3.5
./configure '--prefix=/export/servers/php' '--with-mysql=../mysql-5.1.54-linux-x86_64-glibc23/' '--with-config-file-path=/export/servers/php/etc' '--disable-debug' '--enable-ftp' '--enable-inline-optimization' '--enable-magic-quotes' '--enable-mbstring' '--enable-soap' '--enable-safe-mode' '--enable-wddx=shared' '--enable-xml' '--with-gd' '--with-gettext' '--with-regex=system' '--with-zlib-dir=/usr/lib' '--enable-fpm' '--with-jpeg-dir' '--enable-fpm' '--with-fpm-user=www''--with-fpm-group=www' '--enable-shmop' '--with-mcrypt' '--with-mysqli=mysqlnd'
make
sleep 5
make install
//make ZEND_EXTRA_LIBS='-liconv' && make install
cd ..
cp -r -v php-fpm.conf /export/servers/php/etc/
增加扩展:
tar jxvf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1
/export/servers/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/export/servers/php/bin/php-config --with-eaccelerator-shared-memory --with-eaccelerator-sessions --with-eaccelerator-content-caching
make -j 9&&make -j 9 install
在 /etc/php-fpm.conf 中更改
Listen 为
Listen 127.0.0.1:9001
端口可自定
默认是: listen = '/dev/shm/php-fcgi.sock'
首先,进入到 php 的安装目录下的 ext 目录,找到指定的模块进入目录,如 curl 目录,进入
Cd /export/tools/php/php-5.3.5/ext/curl
进入后,执行 php 的 phpize 命令,如 php 目录是 /export/servers/php
那么执行:
/export/servers/php/bin/phpize
执行后在该目录下会生成 configure 文件
然后执行 configure :
./configure --with-curl --with-curlwrappers --with-php-config=/export/servers/php /bin/php-config
然后执行 make && makeinstall
执行后,我们去 /export/servers/php/lib/php/extensions/no-debug-non-zts-20090626 目录下查看是否有 curl.so
然后再 ll /export/servers/php/etc/php.ini 中加入:
extension=curl.so
然后用
/export/servers/php/bin/php –m
查看是否有 curl ,如果有就成功了
当 make php 时报了如下错误:
/export/huzhiguang/bak_tools/nginx+php/php-5.3.5/ext/iconv/iconv.c:337: undefined reference to `libiconv'
配置 ./configure 时
--with-iconv=/usr/local
这样配置上其路径即可
'--with-apxs2=/export/servers/apache2/bin/apxs'
是 因为在安装 php 时加入了 apache 支持和 nginx 支持,冲突了,所以,先进行 apache 安装
'--with-apxs2=/export/servers/apache2/bin/apxs'
然后再进行
'--enable-fpm' '--enable-fastcgi' '--with-fpm-user=www' '--with-fpm-group=www'
Nginx 的安装
u 是撤销你刚才做的动作
ctrl+r 是恢复你刚才撤销的动作
当报如下问题的时候:
Warning : fopen(/export/servers/xhprof_logs/4fffc57f6fa9e.xhprof_foo) []: failed to open stream: Permission denied in/export/data/www/search.360buy.com/xhprof_lib/utils/xhprof_runs.php on line 135
这是由于 /export/servers/xhprof_logs/ 目录的权限不足,需要把其他使用人的写权限打开,所以这里可以赋予权限:
Chmod 777 /export/servers/xhprof_logs/
记住最后一项一定要是 7
/export/servers/xhprof_logs/ 这个目录是我们保存 xhprof 日志的目录,是配置在php.ini 中的
xhprof.output_dir=/export/servers/xhprof_logs
这个路径
当我们要查看 xhprof ui 的时候,一定要把 xhprof_html 和 xhprof_lib 文件夹 copy到我们的 web 服务的目录下
还有就是这 2 个目录一定要指定好目录:
include_once $XHPROF_ROOT . "/search.360buy.com/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/search.360buy.com/xhprof_lib/utils/xhprof_runs.php";
否则会报如下错误:
Warning : include_once(/export/data/www1/search.360buy.com/xhprof_lib/utils/xhprof_lib.php) [ ]: failed to open stream: No such file or directory in/export/data/www/search.360buy.com/sample.php on line 30
Warning : include_once() [ ]: Failed opening '/export/data/www1/search.360buy.com/xhprof_lib/utils/xhprof_lib.php' for inclusion (include_path='/export/servers/php/include/ice/') in /export/data/www/search.360buy.com/sample.php on line 30
Warning : include_once(/export/data/www1/search.360buy.com/xhprof_lib/utils/xhprof_runs.php) [ ]: failed to open stream: No such file or directory in /export/data/www/search.360buy.com/sample.php on line 31
Warning : include_once() [ ]: Failed opening '/export/data/www1/search.360buy.com/xhprof_lib/utils/xhprof_runs.php' for inclusion (include_path='/export/servers/php/include/ice/') in /export/data/www/search.360buy.com/sample.php on line 31
上面有提示错误的路径,如
export/data/www1/search.360buy.com/xhprof_lib/utils/xhprof_lib.php
这里我们查看是否我们需要的 php 在这个路径下,如果不在,我们则改为指定路径即可, /export/data/www/ 这个而是我们的 web 应用的路径,程序会自动跟踪到,也就是我们指定的 web 服务路径
当我们执行需要测试的 php 时,成功后会生成指定的路径
http:// /index.php?run=4fffc79e37141&source=xhprof_foo ---------------
后面连接的是生成好的我们监控信息
这里的 index.php 是 xhprof_html 目录下的,所以 xhprof_html 这个目录我们需要提前 copy 到应用下,可以进行查看分析列表
是进入函数后其所有子函数的 cpu 时间和本函数消耗时间的总和
ICpu% 是 Incl. CPU(microsecs)/ Total Incl. CPU (microsecs) ,包含所有子函数的CPU 消耗时间 / 总 cpu 消耗时间
,本函数消耗的 cpu 时间
ECPU% 是 / Total Incl. CPU (microsecs) 的比率
vim 在默认的情况下,用 / 或 ? 来查找字符串时,是区分大小写的,有时候很不方便。 我们可以用 :set ic
这样 vim 就不区分大小写了。 如果我们像区分大小写 :set noic
Vi /etc/sysconfig/network-scripts/ifcfg-eth0
然后将 BOOTPROTO="static" 设置为 static
配置 IP 、网关、 DNS 、子网掩码等
…..
IPADDR="192.168.12.63"
NETMASK="255.255.255.0"
GATEWAY="192.168.12.1"
DNS1="202.106.0.20"
…….
Onboot=yes
是引导默认的网卡
Wget --header="accept-encoding:gzip" 地址
tar -zcvf /home/www/images.tar.gz /home/www/images
内存文件系统一般分析 ramdisk 、 ramfs 、 tmpfs
Ramdisk 是通过固定分配内存的一块空间,进行格式化,然后挂载,这种方式不再我们考虑的范围之内因为不灵活。
剩下 2 种则是 ramfs 和 tmpfs
Ramfs 是用物理内存动态分配的文件系统,物理内存空间够用的情况下可进行动态分配。
Tmpfs 是物理内存和 swap 内存搅浑系统共用,当物理内存不够用时用 swap ,而且 tmpfs 可进行设定分区上限大小,比较灵活。
在内存空间够用时 ramfs 和 tmpfs 的性能差不多, io 无压力,当内存空间用尽时, 2 种内存文件系统均 io 比较高,但是 tmpfs 在 io 高后,会调用 swap 来分摊,而 ramfs 则需要清空内存文件系统中的文件才可以。
挂载 tmpfs:
mount my_tmpfs $DIR_TMP -t tmpfs -o size=512m
例:
mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m
调整挂载内存系统的大小:
mount $DIR_TMP -o remount,size=1024m,nr_inodes=100k
nr_inodes为最大节点数,如果你的$DIR_TMP使用df命令查看明明有空间,却无法创建新文件(例如touch一个新文件),可能是文件节点用到上限了,可以用"df -i"命令来查看,如果是有空间但节点达到上限,就需要用nr_inodes来调整了
du -h --max-depth=1 /usr/
df 是查看系统大小
du 是查看文件夹大小
--max-depth 是深度,是文件夹的深度
后面是需要查看的文件夹
Ldd ./program
就可以查看该二进制文件下的动态链接库
grep 内容 匹配 [–r]
-r 是递归查找
如:
grep “content” * -r
这就是查找该目录下所有文件中含有 content 内容的文件查找出来
df 查看硬盘容量信息
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 30720960 9464728 19695656 33% /
tmpfs 16432956 0 16432956 0% /dev/shm
/dev/sda3 392050276 20914848 351220420 6% /export
然后 umount 掉一个挂载点
Umount /export
当执行 umount 时,报了
/export: device is busy. 错误
我们通过 fuser 命令把所有占用 /export 的进程等 kill 掉,执行如下命令:
fuser –km /export
然后我们再执行
Umout /export
卸载成功,然后我们重新挂载
mount /dev/sda3 /export –t ext4
然后再用 df 查看挂载情况
先按 g( 小 g) 到最上面,然后按 = ,然后按 G (大写 G )到最下面文本就全部格式化了
$ wget
$ tar xzf redis-2.4.17.tar.gz
$ cd redis-2.4.17
$ make
启动 redis
cd src
./ redis-server ../redis.conf
后面的 ../redis.conf 是配置文件的路径
进入 redis 的客户端 :
$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
Lsof –i
查看网络链接
可用于查看当连接多时造成的问题
查看连接
可以查看当连接多时造成的问题
一般连接多,最后死掉了可能是由于未关闭连接造成的
ss -a -t|grep 192.168.12.63:27017|grep TIME|wc -l
wc –l 统计总数
-t 是 tcp
可以 yum install sysstat
或者找 sysstat 包安装
当切换登录用户时,如:
Su – mysql
系统提示了 This account is currently not available 当前用户无效,是由于该用户为
Sbin/nologin
所以通过 vipw 命令
进入后修改 mysql 用户为 bin/bash 即可
mysql:x:503:503::/home/mysql:/bin/bash
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
ca:3a:84:1b:64:1c:58:35:df:a9:00:2b:54:68:e4:23.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:1
RSA host key for 192.168.12.63 has changed and you have requested strict checking.
Host key verification failed.
lost connection
删除 /root/.ssh/ 下的 known_host 文件即可
安装新的 gcc 后,配置环境变量后,使用 gcc 还是旧的
那么我们首先
Cd /usr/bin
然后 ln –s –f /export/servers/gcc-4.6.1/bin/gcc
即可
这样就将 bin 下的 gcc 直接链接到 /export/servers/gcc-4.6.1/bin/gcc 了
tar -zxvf boost_1_50_0.tar.gz cd boost_1_50_0/
./bootstrap.sh --prefix=/usr --libdir=/usr/lib64
./b2 --prefix=/usr --libdir=/usr/lib64 --layout=system install
export Boost_LIBRARYDIR=/usr/include/boost/
BOOST_INCLUDE=/usr/local/ilude/boost
BOOST_LIB=/usr/local/lib
port BOOST_INCLUDE BOOST_LIB
这里要注意,编译时需要用到你以后使用的 gcc 版本,版本不一致会出现问题
Yum install gcc*
需要是 gcc* 否则会安装不全
export PATH=/export/servers/gcc4.7/bin:$PATH
这里的 gcc 环境变量需要配置在 $PATH 前,这样最新的 gcc 就有优先级了,配置后面不生效,因为之前的 gcc 会先被调用,并且最好不用用软链接( ln –s )来更改 gcc ,这样容易出现问题
ls >a; od -Ax -tcx1 a
/var/empty/sshd must be owned by root and not group or world-writable.
Linux 上的 SSH 无法启动
报告 /var/empty/sshd must be owned by root and not group or world-writable.
主要是权限造成的,解决方法如下:
(1) 方法 1 :
修改为 root 属主,启动成功
-bash-2.05b# chown root /var/empty/sshd/
-bash-2.05b# /etc/init.d/sshd start
Starting sshd: [ OK ]
(2) 方法 2
chown -R root.root /var/empty/sshd
chmod 744 /var/empty/sshd
service sshd restart
方法 2 解决了问题
将 .bashrc 和 .bash_profile 文件 cp 到用户的 home 路径下
上面 2 个文件通过 ~/.bash_profile
然后就可以解决这个问题了
如:
Lsof –I |wc -l
这样就可以统计数量
服务端没有被压死,但是 http_load 报这个问题
那么修改 http_load 服务器的 /etc/sysctl.conf 文件
添加上:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
执行 sysctl –p 生效
# 开启 time_wait 状态的 socket 重用
net.ipv4.tcp_tw_reuse = 1
# 开启 time_wait 状态的 socket 快速回收
net.ipv4.tcp_tw_recycle = 1
首先查看服务端:
是否有大量的 TIME_WAIT
Netstat –anp
然后可通过 ss –a|wc –l 查看
服务端把:
net.ipv4.tcp_max_tw_buckets = 6000
千万要注意 .tcp_max_tw_buckets 这项,这个千万要在net.ipv4.ip_local_port_range 的范围内,这样当超过最大的 buckets 时,才可以对TIME_WAIT 进行快速回收,不要设置太大,如果设置的太大超过了端口限制,那么一般就会报 Cannot assign requested address 问题,当 client 端出现大量的TIME_WAIT 时,首先分析的就应该是 buckets 是否设置过大,或者ip_local_port_range 范围过小
调大 ( 修改 /etc/sysctl.conf) ;
net.ipv4.tcp_max_tw_buckets 表示系统同时保持 TIME_WAIT 套接字的最大数量,如果超过这个数字
然后客户端,发送的最大端口数量限制,一般来说每台机器都有 65535 个端口,但是可用的也许在 60000 多;
修改( /etc/sysctl.conf )
net.ipv4.ip_local_port_range = 1024 65000 表示用于向外连接的端口范围。缺省情况下很小: 32768 到 61000 ,改为 1024 到 65000 。
1024-65000 的范围这样可用的端口数量就变大很多,发送端可用的就多;
然后 sysctl –p ,让文件生效
sysctl -w net.ipv4.tcp_timestamps=1 开启对于 TCP 时间戳的支持 , 若该项设置为 0 ,则下面一项设置不起作用
sysctl -w net.ipv4.tcp_tw_recycle=1 表示开启 TCP 连接中 TIME-WAIT sockets的快速回收
参照:
http://zhumeng8337797.blog.163.com/blog/static/10076891420129155535790/
当运行 ./configure 时,报出了如下错误:
checking whether we are cross compiling... configure: error: in `/export/wanghong/ice/ThirdParty-Sources-3.4.1/db-4.8.30.NC/build_unix':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
需要在 ./configure 配置 —host
而 —host 是本系统的机型
在 ./configure 最上面就有显示如:
checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking if building in the top-level or dist directories... no
红色的则为机型
所以配置:
./configure –host= x86_64-unknown-linux-gnu
配置完静态 ip 后,启动
Service network restart 命令,报了如下错误:
Error, some other host already uses address xxx.xxx.xxx.xxx
有 2 种解决方法,一种是:
Ifconfig ech0 192.168.12.11 netmask 255.255.255.0 up
但是这个不能用 service network restart 否则将会被覆盖
另一种是:
进入 /etc/sysconfig/network-scripts/ifup-eth 文件中:
注释掉:
if ! arping -q -c 2 -w 3 -D -I ${REALDEVICE} ${IPADDR} ; then
echo $”Error, some other host already uses address ${IPADDR}.”
exit 1
fi
然后再执行 service network restart 即可
参考:
http://chyd96.blog.163.com/blog/static/62706076201052743350211/
cat /etc/redhat-release
ls –lht
echo "3" > /proc/sys/vm/drop_caches
当 putty 超期时,报:
network error:software caused connection about 、
设置 secoonds between keepalive (0 to turn off) 为 10
上图中,默认输入 0 是禁用保持连接,在这里我习惯的设置了 10 。两个复选框都保持默认选中。
参考:
http://blog.csdn.net/googchar/article/details/8190104
首先用 who 命令查看
bianhaoqiong@bianhaoqiong-virtual:~$ who
bianhaoqiong pts/0 2011-11-30 18:53 (192.168.190.1)
bianhaoqiong pts/2 2011-11-30 17:52 (192.168.190.1)
然后发现 pts/2 不是你的用户,然后踢掉即可
然后执行 pkill -kill -t pts/2
当连接 ssh 时,报了如下错误:
Read from socket failed: Connection reset by peer
起因;
$sudo chmod 777 /etc/ -R ( 千万不要做,这是一个误操作 )
导致了上面的结果
解决方法:
#chmod 400 /etc/ssh/*
在重新连接就可以了。
linux 下命令 su 执行出现以下错误 su: cannot set groups: Operation not permitted
如 huzg 切换到 root 用户后提示如上错误
首先看:
ll /bin/su
-rwsr-xr-x 1 root root 28336 Jan 21 2009 /bin/su
然后先分配 root 用户组,然后执行
chmod a+s /bin/su
然后就可以切换了
当从 root 用户切换到普通用户的时候报了如下错误:
-bash: /dev/null: Permission denied
在 /etc/bashrc 的 78 行
"$i" >/dev/null 2>&1
这里是要有写权限的
[root@BP-28-2-206192 home]# ll /dev/null
crwxr-xr-x 1 root root 1, 3 Mar 14 22:34 /dev/null
看一下 /dev/null
在组这里只有执行和读的权限
所以我们重新给授权 chmod 666 /dev/null
也就是所有的都授予 rw 权限,但未分配执行权限
tar -cjf hiphop-php-bin.tar.bz2 bin
vi /etc/ld.so.conf.d/hhvm.conf
在目录 /etc/ld.so.conf.d/ 下创建,所以的配置引用在 /etc/ld.so.conf 文件下保存
然后在 hhvm.conf 中一定要引入动态链接库的路径,因为它无法进行递归操作
然后指定 ldconfig
取含有 abc 的是 grep abc
取不含有 abc 的是 grep -v abc
Nohup 命令 &
如:
nohup sh compare_url_cbs.sh &
nohup ./nginx &
详见:
http://blog.sina.com.cn/s/blog_605f5b4f0100x28u.html
curl –e “ ”
“ ”
Referrer: http//item.jd.com
参照:
http://codingstandards.iteye.com/blog/807844
执行 crontab -e
编辑任务执行器
然后将需要执行的语句和规则加入进去:
49 22 15 5 * nohup /usr/local/bin/http_load_gzip -p 100 -s 1200 /export/http_load_data/huzg/test_memery.txt &>/export/http_load_data/huzg/test_memery.log &
注意:
这里的二进制需要加上指定的路径,否则找不到文件
每一行对应一个 cron job
每一行分为六个部分,每一部分用空格隔开,同一个部分用逗号隔开
minute hour day_of_month month weekday command
前五个域中使用 * ,则表示所有的时间点
minute : 0-59
hour : 0-23 , 0 代表零点
day_of_month : 1-31
month : 1-12
weekday : 0-6 , 0 代表星期天, 1-6 代表星期一到星期六
command :需要执行的脚本或者命令
比如上面的就是 5 月 15 日的 22 时 49 分执行,最后的星期不需要用 * 代替
49 22 15 5 * 这样倒着配置
详见:
net.ipv4.tcp_max_tw_buckets = 5000 表示系统同时保持 TIME_WAIT 套接字的最大数量,如果超过这个数字, TIME_WAIT 套接字将立刻被清除并打印警告信息。
默 认为 180000 ,改为 5000 。对于 Apache 、 Nginx 等服务器,上几行的参数可以很好地减少 TIME_WAIT 套接字数量,但是对于 Squid ,效果却不大。此项参数可以控制 TIME_WAIT 套接字的最大数量,避免 Squid 服务器被大量的TIME_WAIT 套接字拖死。
注 :
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
设置这两个参数: reuse 是表示是否允许重新应用处于 TIME-WAIT 状态的socket 用于新的 TCP 连接; recyse 是加速 TIME-WAIT sockets 回收
参考:
http://space.yoka.com/blog/1216916/3662173.html
su -
例:
su - huzg -c "/export/dev_hhvm/hiphop-php_hzg/build2/src/hhvm/hhvm -c /export/data/www/hhvm/config-club_hhvm_nolog_test.hdf -m daemon"
注 :
-c 后的路径需要是绝对路径
last
详细见:
http://www.cnblogs.com/itech/archive/2009/08/19/1549729.html
1 、 diff
--------------------
NAME
diff - find differences between two files
SYNOPSIS
diff [options] from-file to-file
--------------------
简 单的说, diff 的功能就是用来比较两个文件的不同,然后记录下来,也就是所谓的 diff 补丁。语法格式: diff 【选项】 源文件(夹) 目的文件(夹),就是要给源文件(夹)打个补丁,使之变成目的文件(夹),术语也就是“升级”。下面介绍三个最为常用选项:
-r 是一个递归选项,设置了这个选项, diff 会将两个不同版本源代码目录中的所有对应文件全部都进行一次比较,包括子目录文件。
-N 选项确保补丁文件将正确地处理已经创建或删除文件的情况。
-u 选项以统一格式创建补丁文件,这种格式比缺省格式更紧凑些。
2 、 patch
------------------
NAME
patch - apply a diff file to an original
SYNOPSIS
patch [options] [originalfile [patchfile]]
but usually just
patch -pnum
------------------
简单的说, patch 就是利用 diff 制作的补丁来实现源文件(夹)和目的文件(夹)的转换。这样说就意味着你可以有源文件(夹)―― > 目的文件(夹),也可以目的文件(夹)―― > 源文件(夹)。下面介绍几个最常用选项:
-p0 选项要从当前目录查找目的文件(夹)
-p1 选项要忽略掉第一层目录,从当前目录开始查找。
总结一下: 单个文件 diff – uN from-file to-file >to-file.patch
patch – p0 < to-file.patch
patch – RE – p0 < to-file.patch
多个文件 diff – uNr from-docu to-docu >to-docu.patch
patch – p1 < to-docu.patch
patch – R – p1
(1) 文件 patch
原始文件: test0
修改后文件: test1
创建补丁:
diff -uN test0 test1 > test1.patch
diff –uN 原始文件 修改后文件 > 补丁名称
打补丁:
patch -p0 < test1.patch
恢复:
patch –RE -p0 < test1.patch
(2) 文件夹 patch
原始文件夹: folder0
修改后文件夹 :folder1
创建补丁:
diff -uNr floder0 folder1 > folder1.patch
diff -uNr 原始文件夹 修改后文件夹 > 补丁名称
打补丁:
cp folder1.patch folder0
cd folder0
cat folder1.patch | patch -p1
恢复:
cat folder1.patch | patch -R -p1
[root@BP-28-2-206192 ~]# netstat -anp|grep 8083
tcp 0 0 0.0.0.0:8083 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:18083 0.0.0.0:* LISTEN -
这样对于查看端口没有进程状态的
[root@BP-28-2-206192 ~]# lsof -i:8083
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
memcheck- 27124 huzg 33u IPv4 51310972 0t0 TCP *:us-srv (LISTEN)
通过 lsof 命令查看,然后强制 PID kill 掉
Kill -9 27124