[置顶]常用命令.

[置顶]office常用

[置顶]sql常用

zabbix邮件报警设置

直接用第三方的smtp

urlscan 安装

下载地址:http://www.iis.net/downloads/microsoft/urlscan

一路安装,配置文件也是在网上搜的.适合dede站

UrlScan.rar

linux inode占满检测

       拿到一机器,下载文件提示 No space left on device,df -h 一下发现剩余空间还有3g,再看下 剩余inode,显示可用为0%,开始排查是什么目录占用.

找到一个perl脚本下载保存成.perl文件,运行perl 1.perl,就可以检测当前目录下面所有目录占用inode的数目一般大于50000的就是有问题的.

#!/usr/bin/perl -w
use strict;
my $threshold=50000;
my ($count,$bigdir);
sub count_inodes($);
sub count_inodes($)
{
	my $dir=shift;
	return if($count>=$threshold);
	if(opendir(my $dh,$dir))
	{
		while(defined(my $file=readdir($dh)))
		{
			next if ($file eq '.'||$file eq '..');
			$count++;
			my $path=$dir.'/'.$file;
			count_inodes($path) if (-d $path);
		}
		closedir($dh);
	}else
	{
		warn "couldn't open $dir - $!\n";
	}
}

push(@ARGV, '.') unless (@ARGV);
while (@ARGV)
{
	my $main=shift;
	$main.='/' unless($main=~/\/$/);
	if(opendir(my $dh, $main))
	{
		while(defined(my $file=readdir($dh)))
		{
			$count=0;
			next if($file eq '.'||$file eq '..'||! -d $main.$file);
			count_inodes($main.$file);
			$count=">".$threshold if($count>=$threshold);
			printf "%10s\t%s\n", $count, $main.$file;
		}
		closedir($dh);
	}
	else
	{
		warn "couldn't open $main - $!\n";
	}
}

ext3文件系统的inode是格式化的时候固定好的,建议缓存ext4格式的,ext4系统inode数目是动态管理的.

wdcp pureftpd 553错误问题

    客户装的wdcp面板自带的pureftpd 上传不了文件,提示 553错,看错误是没权限,到服务器里面先看,pureftpd启动帐号,发现是 1000. 其实并没有这个用户,应该是pureftpd设置的最小uid,再看下www的uid 发现是500 果断改掉www的uid,改成1000,然后再执行

chown  -R /www/web
service pureftpd restart


iptables批量增加ip地址

新建ip.txt,加入要批量增加的ip地址

写如下的bash,然后执行

#!/bin/sh
for i in `cat ip.txt`
        do
        iptables -I INPUT -s $i -p tcp --dport 3306 -j ACCEPT
        done

然后执行 

tengine 开启lua支持

安装环境,centos 6.5 64位

#备份之前的tengine
cp -rp /usr/local/nginx /tmp/nginx_bak
#装lua
yum install -y readline-devel ncurses-devel
wget -c http://www.lua.org/ftp/lua-5.1.5.tar.gz
tar xzf lua-5.1.5.tar.gz
cd lua-5.1.5
make linux
#编辑 src/Makefile 找到 CFLAGS= -O2 -Wall $(MYCFLAGS) 改成 CFLAGS= -O2 -Wall -fPIC $(MYCFLAGS)
make install
#开启 ngx_http_luamodule.so 模块 
cd /tmp
mkdir soft
cd soft
wget -c http://tengine.taobao.org/download/tengine-2.1.0.tar.gz
tar xzf tengine-2.1.0.tar.gz
cd tengine-2.1.0
./configure --with-http_lua_module=shared
make && make install
vi /usr/local/nginx/conf/nginx.conf
在
dso {}
里面加入
dso {

	load ngx_http_lua_module.so;
}
运行 /usr/local/nginx/sbin/nginx -s reload
运行 /usr/local/nginx/sbin/nginx -m
可以看到
ngx_http_lua_module (shared, 3.1)

测试支持lua
在server {  }
加入

 location /test  {
        default_type 'text/plain';
        content_by_lua "ngx.say('test~')";
}
运行 /usr/local/nginx/sbin/nginx -s reload
访问 ip/test
会出现 test~


mysqldump: xxxx has insufficent privileges to SHOW CREATE FUNCTION `xxx`

今天在群里看到有朋友分享 mysqldump 加上 -R 参数可以把mysql原先的存储过程导出来,赶紧拿来试试

结果运行提示 

mysqldump: xxxx has insufficent privileges to SHOW CREATE FUNCTION `xxx`

果断找下,看看有没有人遇到,终于找到了

需要把系统的select权限赋予这个备份用户.搞定



apache/fastcgi/php5.4.39

#apache,mysql安装省略
yum install -y libmcrypt-devel libjpeg-devel libpng-devel freetype-devel curl-devel openssl-devel libxml2-devel
wget -c http://dl.wdlinux.cn:5180/soft/libiconv-1.14.tar.gz
tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr
make
make install
ldconfig
安装fastcgi
wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz
tar xzf mod_fastcgi-2.4.6.tar.gz
cd mod_fastcgi-2.4.6
cp Makefile.AP2 Makefile
make top_dir=/usr/local/apache
make top_dir=/usr/local/apache install
echo 'LoadModule fastcgi_module modules/mod_fastcgi.so'>>/usr/local/apache/conf/httpd.conf
tar zxvf php-5.4.39.tar.gz
cd php-5.4.39
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-iconv=/usr --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt=/usr --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-ftp --enable-sockets --enable-zip  --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --enable-mysqlnd --enable-fpm --disable-cli --disable-ipv6
make
make install
cp php.ini-production /usr/local/php/etc/php.ini
sed -i 's/short_open_tag = Off/short_open_tag = On/g' /usr/local/php/etc/php.ini
sed -i 's/;date.timezone =/date.timezone = PRC/g' /usr/local/php/etc/php.ini
cp /usr/local/php/bin/php-cgi /usr/local/apache/cgi-bin
cd /usr/local/apache/etc
vi fastcgi.conf
AddHandler php-fastcgi .php
Action php-fastcgi /cgi-bin/php-cgi
AddType application/x-httpd-php .php
<IfModule mod_fcgid.c>
    AddHandler fcgid-script. .php
    IdleTimeout 300
    ProcessLifeTime 1800
    MaxProcessCount 100
    DefaultMinClassProcessCount 3
    DefaultMaxClassProcessCount 8
    IPCConnectTimeout 15
    IPCCommTimeout 300
    MaxRequestsPerProcess 100
</IfModule>
vi +httpd.conf
include fastcgi.conf
保存重启httpd.


vim常用命令收集

vim 下批量注释
ctrl+v 进入列选择,往下移动选择要注释的行头 大写的 I 输入 #号 再按两下esc键
删除注释:ctrl+v 选择# 按d删除
:50,70 s/^/#   #vi 下面 注释50~70行
:nohl #取消语法高亮
Shift + j #将本行与下一行连接成一行,以空格相隔
:set list #显示制表符,tab键、空格等
:e . #打开当前目录,等同于 :Ex
:sp . #打开当前目录,但和当前文件水平分割,等同于 :Sex
:vsp .  #打开当前目录,但和当前文件垂直分割,等同于 :Vex
:bro ol #浏览之前打开过的文件和目录
q /  #查看搜索的记录
:e! #撤销当前文件编辑到初始状态
:%s/<Ctrl+v+m>//g  #删除多余的 ^M
Ctrl+c 可以代替 Esc
:sh #暂时返回到shell界面,vim打开的文件隐藏,在shell界面输入exit返回vim编辑的文件
:f #显示文档名和光标位置,等同于ctrl+g
:set ic #查找时忽略大小写,:set noic 关闭
shfit+s #清空当前行内容但不删除当前行,或者0D 还有 cc ESC
ci’, di’, yi’:修改、剪切或复制’之间的内容。
ca’, da’, ya’:修改、剪切或复制’之间的内容,包含’。
ci”, di”, yi”:修改、剪切或复制”之间的内容。
ca”, da”, ya”:修改、剪切或复制”之间的内容,包含”。
ci(, di(, yi(:修改、剪切或复制()之间的内容。
ca(, da(, ya(:修改、剪切或复制()之间的内容,包含()。
ci[, di[, yi[:修改、剪切或复制[]之间的内容。
ca[, da[, ya[:修改、剪切或复制[]之间的内容,包含[]。
ci{, di{, yi{:修改、剪切或复制{}之间的内容。
ca{, da{, ya{:修改、剪切或复制{}之间的内容,包含{}。
ci<, di<, yi<:修改、剪切或复制<>之间的内容。
ca<, da<, ya<:修改、剪切或复制<>之间的内容,包含<>。
自动补全Ctrl+x Ctrl+s — 拼写建议。
Ctrl+x Ctrl+v — 补全vim选项和命令。
Ctrl+x Ctrl+l — 整行补全。
Ctrl+x Ctrl+f — 自动补全文件路径。弹出菜单后,按Ctrl+f循环选择,当然也可以按 Ctrl+n和Ctrl+p
Ctrl+x Ctrl+p 和Ctrl+x Ctrl+n — 用文档中出现过的单词补全当前的词。 直接按Ctrl+p和Ctrl+n也可以。
Ctrl+x Ctrl+o — 编程时可以补全关键字和函数名
Ctrl+x Ctrl+i — 根据头文件内关键字补全。
Ctrl+x Ctrl+d — 补全宏定义。
Ctrl+x Ctrl+n — 按缓冲区中出现过的关键字补全。 直接按Ctrl+n或Ctrl+p即可。
当弹出补全菜单后:
Ctrl+p 向前切换成员;
Ctrl+n 向后切换成员;
Ctrl+e 退出下拉菜单,并退回到原来录入的文字;
Ctrl+y 退出下拉菜单,并接受当前选项。


php不重新编译开启扩展

     编译安装了php-5.6.7之后,发现有个扩展没开启,ftp这个扩展,操作如下

tar xzf php-5.6.7.tar.gz
cd php-5.6.7/ext
cd ftp
phpize
完成后输入
./configure --with-php-config=/www/web/php-5.6.7/bin/php-config --enable-ftp
make && make install
成功后会出现
Installing shared extensions:     /www/web/php-5.6.7/lib/php/extensions/no-debug-non-zts-20131226/
编辑php.ini,在最后加入以下内容
extension_dir="/www/web/php-5.6.7/lib/php/extensions/no-debug-non-zts-20131226/"
extension=ftp.so
service php-fpm restart

其他扩展开启记录

搜索