Webserver 维护常用命令

转载时请标明文章原始出处和作者信息, 作者: lostsnow.
http://www.lsproc.com/blog/linux_webserver_cmd/

实时查看正在执行的sql语句

/usr/sbin/tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings | egrep -i 'SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL'

查看http连接

netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'

查看SYN状态的http连接

netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more

查看TIME_WAIT状态的http连接

netstat -tna | cut -b 49- |grep TIME_WAIT | sort |more
netstat -an | grep TIME_WAIT | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more

查看ESTABLISHED状态的http连接

netstat -an | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more
netstat -an | grep ":80" | grep ESTABLISHED | sort | more

批量kill进程

ps -efww|grep sqlr-listener|grep -v grep|cut -c 9-15|xargs kill -9

查看活动的php-cgi连接数

netstat -anpo|grep php-cgi|wc -l

按ip查看httpd连接数

netstat -anlp | grep 80 | grep tcp | awk {'print $5'} | awk -F: {'print $1'}| sort |uniq -c | sort -nr

禁IP

iptables -A INPUT -s IP地址 -j REJECT
iptables -A INPUT -s IP地址/24 -j REJECT

route add -net IP地址 netmask 255.255.255.0 reject

调试命令

strace -p pid

跟踪指定的进程pid.

gdb -p pid

跟踪指定的进程pid.

批量查找文件并删除

find . -name test.php -exec rm {} \;
find . -name test.php | xargs rm -rf

更改某一目录下所有目录的权限, 不包括文件, aaa 是目录名

find aaa -type d -exec chmod 755 {} \;

替换文件内容

sed -i 's/b/strong/g' index.html

此命令搜索 index.html 文件中的 b 并将其替换为 strong。

Linux根据端口查进程信息

ps -ef|awk '{print $2"\t"$8$9}'|grep `netstat -tlnp|grep 8080|awk '{print $7}'|awk -F '/' '{print $1}'` 

批量删除文件BOM头

sed '1s/^\xef\xbb\xbf//' /path/to/has_bom_file

-- EOF --

一些 linux 命令

转载时请标明文章原始出处和作者信息, 作者: lostsnow.
http://www.lsproc.com/blog/useful_linux_command/

1. 更改某一目录下所有目录的权限, 不包括文件 aaa 是目录名

find aaa -type d -exec chmod 755 {} \;

find . -name test.php -exec rm {} \;
find . -name test.php | xargs rm -rf

搜索当前目录下(包括子目录)所有test.php这个文件,并将它们删除。

2. 查看文件属性,可用此查看压缩文件的格式

file 文件名

3. 定时任务
用cron处理定时任务,首先要保证cron操作已经运行。如果安装了cron 的话。正常情况下cron已经开机自运行了,如果没有运行的话。

/etc/init.d/cron start

用crontab来安排定时任务

crontab [-u user] {-l| -r |  -e}
-l:显示任务
-e:编辑任务
-r:清空任务

任务格式为:
分 时 日期 月份 星期 操作命令
eg:

##每天14点运行一次
* 14 * * * echo " look me" >> /home/lost/test    

 ##表示每两分钟运行一次
0-59/2 * * * * echo "look me" >> /tmp/test   

##表示2与15点运行一次
* 2,15 * * * echo "look me " >> /tmp/test

* : 表示任意 - : 表示区间. / :表示频率 , :表示枚举
http://linux.vbird.org/linux_basic/0430cron.php#cron

4. 递归查找文件内的字符串

find ./ -name '*.html' -exec grep "breadcrumbs.inc.php" '{}' \; -print

这条命令将查找所有包含 breadcrumbs.inc.php 的 HTML 文件。

5. 搜索并替换文件里的内容

sed -i 's/b/strong/g' index.html

此命令搜索 index.html 文件中的 b 并将其替换为 strong。

6. 调试命令
strace -p pid
跟踪指定的进程pid.

gdb -p pid
跟踪指定的进程pid.

7. 去掉不用的 /aaa/bbb 的$PATH

export PATH=`echo $PATH | sed -e 's/:\/aaa\/bbb//g'`

-- EOF --

Linux系统用户账号的管理

转载时请标明文章原始出处和作者信息, 作者: lostsnow.
http://www.lsproc.com/blog/linux_user_manage/

useradd 选项 用户名

其中各选项含义如下:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
用户名 指定新账号的登录名。
例如:
# useradd –d /usr/sam -m sam
此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录)。
# useradd -s /bin/sh -g group –G adm,root gem
此命令新建了一个用户gem,该用户的登录Shell是/bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。
增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。这几个文件的内容在后面会做详细介绍。
Linux提供了集成的系统管理工具userconf,它可以用来对用户账号进行统一管理。

如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。删除一个已有的用户账号使用userdel命令,其格式如下:

userdel 选项 用户名
常用的选项是-r,它的作用是把用户的主目录一起删除。
例如:
# userdel sam
此命令删除用户sam在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。

修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
修改已有用户的信息使用usermod命令,其格式如下:
usermod 选项 用户名
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。另外,有些系统可以使用如下选项:

-l 新用户名
这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
例如:
# usermod -s /bin/ksh -d /home/z –g developer sam
此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。

用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:
passwd 选项 用户名
可使用的选项:
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
如果默认用户名,则修改当前用户的口令。
例如,假设当前用户是sam,则下面的命令修改该用户自己的口令:
$ passwd
Old password:******
New password:*******
Re-enter new password:*******
如果是超级用户,可以用下列形式指定任何用户的口令:
# passwd sam
New password:*******
Re-enter new password:*******
普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。
为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。
为用户指定空口令时,执行下列形式的命令:
# passwd -d sam
此命令将用户sam的口令删除,这样用户sam下一次登录时,系统就不再询问口令。
passwd命令还可以用-l(lock)选项锁定某一用户,使其不能登录,例如:
# passwd -l sam

-- EOF --

Ubuntu 一些有用的命令

转载时请标明文章原始出处和作者信息, 作者: lostsnow.
http://www.lsproc.com/blog/useful_cmd_on_ubuntu/

Last updated on 2007/07/18

调整更改ubuntu时区,时间

执行
tzselect
按照提示进行选择时区
sudo cp /usr/share/zoneinfo/Asia/ShangHai /etc/localtime
执行
sudo ntpdate cn.pool.ntp.org
cn.pool.ntp.org是位于中国的公共NTP服务器,用来同步你的时间

gdm 的开启与关闭
sudo /etc/init.d/gdm start
sudo /etc/init.d/gdm stop

dpkg 的使用

dpkg –l
命令用于查询当前系统所有以安装的deb包的信息.,通过less和grep可以执行更复杂的查询工作.
例如查找跟vim有关的软件包
dpkg –l |grep –ivim
(如发现iU 表示软件包未安装成功,ii表示安装成功)

dpkg –s package-name
命令查看软件包的详细情况,包括版本,依赖之类的

查询系统中所安装软件包所安装的文件
dpkg -L package-name|more
命令用于查询系统中所安装软件包的安装的文件安装到系统的位置和安装了那些

生成 Fluxbox 桌面右键菜单
fluxbox-generate_menu

去掉终端中的PC喇叭响铃
在终端上方向箭头移动到头或者到底的时候,主机喇叭就会响,很难听,使用如下方法禁用它:
sudo vim /etc/inputrc
将代码:
set bell-style none
前面的“#”去掉。

卸载软件包
apt-get remove [--purge]
卸载 以及任何倚赖这个软件包的其它软件包。
--purge 指明这个软件包应该被完全清除 (purged) 。

清空回收站
rm -r ~/.Trash/*

Ubuntu命令行下修改网络配置 (From here)
以eth0为例

1. 以DHCP方式配置网卡
编辑文件/etc/network/interfaces:
sudo vi /etc/network/interfaces
并用下面的行来替换有关eth0的行:
# The primary network interface - use DHCP to find our address
auto eth0
iface eth0 inet dhcp

用下面的命令使网络设置生效:
sudo /etc/init.d/networking restart
当然,也可以在命令行下直接输入下面的命令来获取地址
sudo dhclient eth0

2. 为网卡配置静态IP地址

编辑文件/etc/network/interfaces:
sudo vi /etc/network/interfaces
并用下面的行来替换有关eth0的行:
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.3.90
gateway 192.168.3.1
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255

将上面的ip地址等信息换成你自己就可以了.

用下面的命令使网络设置生效:
sudo /etc/init.d/networking restart

3. 设定第二个IP地址(虚拟IP地址)

编辑文件/etc/network/interfaces:
sudo vi /etc/network/interfaces
在该文件中添加如下的行:
auto eth0:1
iface eth0:1 inet static
address 192.168.1.60
netmask 255.255.255.0
network x.x.x.x
broadcast x.x.x.x
gateway x.x.x.x

根据你的情况填上所有诸如address,netmask,network,broadcast和gateways等信息.

用下面的命令使网络设置生效:
sudo /etc/init.d/networking restart

4. 设置主机名称(hostname)

使用下面的命令来查看当前主机的主机名称:
sudo /bin/hostname
使用下面的命令来设置当前主机的主机名称:
sudo /bin/hostname newname
系统启动时,它会从/etc/hostname来读取主机的名称.

关于设置主机名称的更多信息,请访问这里

5. 配置DNS

首先,你可以在/etc/hosts中加入一些主机名称和这些主机名称对应的IP地址,这是简单使用本机的静态查询.
要访问DNS 服务器来进行查询,需要设置/etc/resolv.conf文件.

假设DNS服务器的IP地址是192.168.3.2, 那么/etc/resolv.conf文件的内容应为:
search test.com
nameserver 192.168.3.2

去掉终端中的PC喇叭响铃
在终端上方向箭头移动到头或者到底的时候,主机喇叭就会响,很难听,使用如下方法禁用它:
sudo vim /etc/inputrc
将代码:
set bell-style none
前面的“#”去掉。

关闭 Linux 的 IPv6 通讯协议
sudo vim /etc/modprobe.d/aliases
里面有一行是 "alias net-pf-10 ipv6"
将以上一行用以下两行取代
alias net-pf-10 off
alias ipv6 off

将光盘制作成 ISO
cp /dev/cdrom XXX.iso
或者
dd if=/dev/cdrom of=xxx.iso

-- EOF --

Nokia 手机操作指令

转载时请标明文章原始出处和作者信息, 作者: lostsnow.
http://www.lsproc.com/blog/nokia_phone_command/

输入 *#06#:显示IMEI码

输入 *#0000#:显示软件版本
(部分型号如果不起作用,可按*#型号代码#,如*#6110#)
第一行--软件版本;
第二行--软件发布日期;
第三行--手机型号

输入 *#92702689# 查询更多的手机信息。有五个选项(可用上下方向键选择):
1.Serial No.:手机的IMEI码。
2.Made:手机的制造日期. (本人用的是诺基亚6108, 上面写的是092003, 即为2003年09月生产的 )
3.Purchasing Date:购买日期,此日期一经设定不可更改,新机子应该是mmyyyy
4.Repaired:维修次数的记录。新机子应该是mmyyyy
5.Life timer:新机子是6553501。

电子钱包解锁
输入 *#7370925538# 后提示已删除原来的密码,便可重新设置新密码了

查询蓝牙设备地址
输入 *#2820#

-- EOF --