内网连接访问mysql时很慢

在内网无论使用PHP还是客户端去远程连接MYSQL,都要等待几秒时间,就算连接上后任何操作也是需要等待的。主要因为MYSQL默认开启了DNS的反向解析,这时候只要禁止mysql做域名解析。

[mysqld]
skip-name-resolve

加入上面语句后重启mysql即可。

发表在 服务器 | 标签为 , | 留下评论

nginx日志统计中经常使用到的命令

awk、uniq、sort、grep、cat、tail

1.awk(数据处理工具,将一行分割成多个“字段”来处理)

awk -F ‘文本切割符’‘{处理过程}’ 文件名称

如:cat /ect/passwd | awk -F ‘:’ ‘{print $1}’   #以:分割,打印第一列的数据;如果为$0表示整个文件内容

cat /etc/passwd | awk -F ”BEGIN {print “begin,goto”} {print $1″,”$7} END {print “end,end”}  #以空白符作为分割,打印begin,goto开始执行信息,打印1,7行,以end,end结束

2.uniq 命令用来过滤重复部分显示文件内容,这个命令读取输入文件,并比较相邻的行

参数:

-c  显示输出中,在每行行首加上本行在文件中出现的次数

-d  只显示重复行

-u  只显示文件中不重复的各行

-n  前n个字段与每个字段前的空白一起被忽略

+n 前n个字符被忽略,之前的字符被跳过(字符从0开始编号)

-f   n与-n相同,这里n是字段数

-s   n与+n相同,这里n是字符数

常用: uniq -c  首行显示文件中出现的次数

3.sort 排序

参数:

-u  在输出行中去除重复行

-r   默认的排序方式为升序,-r转换为降序排列

-n  默认按照字符来排序出现10在2前面,-n以数值来排序

-t   后面设定间隔符

-k  指定列数

如:sort -n -k 2 -t : test.txt  以数值排序,按照第二列以“:”间隔来排列顺序

发表在 服务器 | 标签为 | 留下评论

Nginx日志统计常用命令

IP相关统计

统计IP访问量(独立ip访问数量)

awk '{print $1}' access.log | sort -n | uniq | wc -l

查看某一时间段的IP访问量(4-5点)

grep "07/Apr/2017:0[4-5]" access.log | awk '{print $1}' | sort | uniq -c| sort -nr | wc -l

查看访问最频繁的前100个IP

awk '{print $1}' access.log | sort -n |uniq -c | sort -rn | head -n 100

查看访问100次以上的IP

awk '{print $1}' access.log | sort -n |uniq -c |awk '{if($1 >100) print $0}'|sort -rn

查询某个IP的详细访问情况,按访问频率排序

grep '127.0.01' access.log |awk '{print $7}'|sort |uniq -c |sort -rn |head -n 100

页面访问统计

查看访问最频的页面(TOP100)

awk '{print $7}' access.log | sort |uniq -c | sort -rn | head -n 100

查看访问最频的页面([排除php页面】(TOP100)

grep -v ".php"  access.log | awk '{print $7}' | sort |uniq -c | sort -rn | head -n 100

查看页面访问次数超过100次的页面

cat access.log | cut -d ' ' -f 7 | sort |uniq -c | awk '{if ($1 > 100) print $0}' | less

查看最近1000条记录,访问量最高的页面

tail -1000 access.log |awk '{print $7}'|sort|uniq -c|sort -nr|less

每秒请求量统计

统计每秒的请求数,top100的时间点(精确到秒)

awk '{print $4}' access.log |cut -c 14-21|sort|uniq -c|sort -nr|head -n 100

每分钟请求量统计

统计每分钟的请求数,top100的时间点(精确到分钟)

awk '{print $4}' access.log |cut -c 14-18|sort|uniq -c|sort -nr|head -n 100

每小时请求量统计

统计每小时的请求数,top100的时间点(精确到小时)

awk '{print $4}' access.log |cut -c 14-15|sort|uniq -c|sort -nr|head -n 100

性能分析

nginx log中最后一个字段加入$request_time

列出传输时间超过 3 秒的页面,显示前20条

cat access.log|awk '($NF > 3){print $7}'|sort -n|uniq -c|sort -nr|head -20

列出php页面请求时间超过3秒的页面,并统计其出现的次数,显示前100条

cat access.log|awk '($NF > 1 &&  $7~/\.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100

蜘蛛抓取统计

统计蜘蛛抓取次数

grep 'Baiduspider' access.log |wc -l

统计蜘蛛抓取404的次数

grep 'Baiduspider' access.log |grep '404' | wc -l

TCP连接统计

查看当前TCP连接数

netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l

用tcpdump嗅探80端口的访问看看谁最高

tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr
发表在 服务器 | 标签为 | 留下评论

windows如何批量修改删除文件后缀名

今天在百度云盘上下来一批视频文件名格式是*.mp4.sw,多了不想手动修改,经过研究很很方便,系统自带ren命令就能处理。

快捷键“win+r”在运行框中输入“CMD”,来打开命令窗口。

D盘下有1.mp4.sw/2.mp4.sw/3.mp4.sw三个文件,cd 路径进去目录。
批量删除文件后缀名。

输入“ren D:\* *.”,回车。

单个文件修改后缀名。

输入”ren D:\1.mp4.sw 1.mp4″命令,回车。

批量修改后缀名。

输入“ren D:\* *.mp4”命令,回车。

批量修改指定文件类型的后缀名。

输入“ren D:\*.mp4.sw *.mp4”,回车。

发表在 服务器 | 标签为 | 留下评论

nginx禁止限制某个IP地址或网段访问服务器

#屏蔽单个IP的命令是
deny 192.168.0.1
#封整个段即从192.0.0.1到192.255.255.254的命令
deny 192.0.0.0/8
#封IP段即从192.168.0.1到192.168.255.254的命令
deny 192.168.0.0/16
#封IP段即从192.168.0.1到192.168.0.254的命令是
deny 192.168.0.0/24

发表在 服务器 | 标签为 | 留下评论

phpstrom 2018.2 修改代码星号不见

安装2018.2新版本后发现在修改代码后标签栏的星号标记不见了。不知道为什么默认取消了,重新设置即可。
进入 File -> Settings -> Editor ->General-> Editor Tabs,
勾选下面选项:
Mark modified (*)

发表在 服务器 | 标签为 | 留下评论

git本地删除修改文件后从远程拉取

命令模式:

一个文件就:

git checkout origin/master netpc.com.cn.txt

全部就:

git checkout origin .

 

发表在 服务器 | 标签为 | 留下评论

CentOS安装服务器端Git

服务器端

安装git
yum –y install git

创建git用户
useradd git
passwd git

创建git项目
cd /data/git
git init –bare netpc.com.cn.git
chown git:git netpc.com.cn.git

为了安全设置git登录方式
vi /etc/passwd
git:x:502:502::/home/git:/usr/bin/git-shell

客户端

网上找个安装git for windows

加入密钥方式免密码同步。

创建密钥
ssh-keygen -t rsa -C “你的邮箱”

本地取得密钥
一般到C:\Users\Administrator\.ssh\id_rsa.pub找到.ssh目录下的id_rsa.pub文件,复制其中内容到服务器端。

将密钥加入服务器列表
服务器创建了git用户,在home就有该目录了,没有对应文件就创建,复制秘钥的内容到文件里。

vi /home/git/.ssh/authorized_keys

复制后保存退出。

或者将id_rsa.pub传到 git服务器,使用命令复制
cat id_rsa.pub >> authorized_keys (注意是>>,不是>,>会覆盖旧的数据

设置ssh文件夹为700权限,authorized_keys为 600权限

本地git pull试试看

 

发表在 服务器 | 标签为 | 留下评论

服务器ssh登录经常自动掉线

1.secureCRT客户端设置

secureCRT:选项->会话选项->终端->反空闲 中设置每隔多少秒发送一个字符串,或者是NO-OP协议包
putty:putty -> Connection -> Seconds between keepalives ( 0 to turn off ), 默认为0, 改为300.

2.服务器设置

vi /etc/ssh/sshd_config

ClientAliveInterval指定了服务器端向客户端请求消息 的时间间隔, 默认是0, 不发送

ClientAliveInterval 60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了

ClientAliveCountMax, 使用默认值3即可.ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开

3.重启ssh服务

service sshd restart

发表在 服务器 | 标签为 | 留下评论

phalcon单独执行select update等sql语句

这里简单举例下phalcon执行sql执行方法,具体看devtools下的pdo.php文件。

在控制器下可以执行以下代码:

$success = $this->di->get('db')->query("update netpc set webname = 'netpc.com.cn' where id = $id");

print_r($success->numRows());

其他方式:

* <code>
* $result = $this->di->get('db')->query("SELECTFROM robots ORDER BY name");
* $result->setFetchMode(Phalcon\Db::FETCH_OBJ);
* while ($robot = $result->fetch()) {
* echo $robot->name;
* }
* </code>
* <code>
* $result = $this->di->get('db')->query("SELECTFROM robots ORDER BY name");
* $result->setFetchMode(Phalcon\Db::FETCH_NUM);
* while ($robot = result->fetchArray()) {
* print_r($robot);
* }
* </code>
发表在 服务器 | 标签为 | 留下评论