LINUX常用排查问题命令记录

uptime 1 5 15 分钟 平均负载是单位时间内,处于可运行状态和不可中断状态的进程数。 平均负载可能是CPU密集进程导致 也可能是IO导致。 Watch -d uptime 高亮显示变化的数字 mpstat -P ALL 5 1 监听所有CPU 5秒输出1组数据 Pidstat -u 5 1 间隔5秒输出一组数据 Pidstat -d 1 进程io Perf top -g -p 进程号 -g开启调用关系分析 -p指定进程号 查看进程内部调用的情况 Pstree -p|grep php-fpm 查找某个进程的进程数 父进程 dStat 1 10 间隔1秒 输出10组 观察CPU和IO使用情况

记录MYSQL被删库恢复过程记录

报数据库不存在,连上生产环境查看,数据库都被删了,要求转比特币恢复...


查找原因

3306端口暴露在公网,但是root禁止远程登录,其他账号又设置了权限,只能访问特定的库,限制访问其他的库,不知道怎么实现删除所有库的操作。

解决方案

1.因为是阿里云服务器,先在阿里云后台禁止公网访问3306端口。\ 2.查看mysqlbinlog

/usr/local/mysql/bin/mysqlbinlog mysql-bin.000006 > 6

3.发现库被drop了,查找到drop之前的最后一条sql位置,开始进行恢复

/usr/local/mysql/bin/mysqlbinlog --stop-position=34695891 mysql-bin.000006 |mysql -uroot -proot

单点登录做法详解和分析某店SSO单点登陆代码

  • 同一个根域

如果顶级域名一样,如 a.baidu.com, b.baidu.com, 可以设置cookie的域为根域。限制较多。

  • 多个根域

登陆任何一个站点后,往其他站点的域下写cookie。维护困难。

  • 多个根域 (某店现用)

登陆任何一个站点,都跳转到第三方Server的登陆页面,验证账号密码之后,如果成功,向该Server下的所有共享登陆站点回调各站点登陆接口。如第三方Server下含A/B站点,登陆成功之后 分别带上token 回调 A/B的登陆接口,A/B接口再带上token请求Server,验证通过之后,返回用户信息,并记录session。缺点是,在Server登陆成功之后,需要回调所有站点的登陆接口,浪费资源。

  • 多个根域

A站点登陆,都跳转到第三方Server的登陆页面,验证账号密码之后,种下第三方Server的cookie。B站点登陆,如果是未登陆状态,跳转到Server,Server此时已经有cookie,为已登陆态,将用户信息返回B站点,并设置B站点为已登陆。