日常工作常用命令

系统资源

CPU

1
ps -aux | sort -k3nr | head -K
1
top # 按M按内存大到小排序,按P按CPU大到小排序,加参数-c看prg执行路径

内存

1
free -m # 按M单位查看内存
1
free -g # 按G单位查看内存
1
注意: -buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数

磁盘IO

1
iostat -d -x -t -m 1 10 # 每隔1秒刷新显示且显示10次

网络

1
非系统命令,需安装yum install iotop
1
iotop -o

进程

1
ps -ef | grep -v "grep" | grep "php-fpm" | grep "pool" | wc -l # 查看php-fpm进程总数,wc -l 统计; grep -v 过滤排除
1
ps -ef | grep java | grep -v "grep" | awk '{print $2}' | xargs kill -9 # 查找java进程并杀掉进程

系统命令常见使用

curl 命令

1
curl doname_name # 读取网页
1
curl -H "host:doname" 127.0.0.1 -i # -H自定义头信息传递给服务器, -I/i显示header
1
curl -s -k domain_name # -s静默模式没有输出,-k允许不使用证书到SSL站点
1
2
curl -u username --data "param1=value1&param2=value" https://api.github.com
curl --data @filename https://github.api.com/authorizations # curl默认为get方式请求,可以用-d以post方式传递,也可以指定一个文件,将文件中的内容当做参数传递给服务端"
1
curl -o /dev/null -s -w "http_code:%{http_code}\ntime_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "htts://www.baidu.com" # -w,一次完整且成功的操作后输出指定格式的内容到标准输出

端口扫描,nmap命令

1
nmap -F -sT -v -n ${ip} # -F扫描常用端口, -sT TCP扫描,-v 显示详细信息, -n 不对域名进行解析

端口扫描,tcpdump命令

1
tcpdump -i eth0 -vnn src host ${ip} and dst port 80 # -i指定网卡接口; -vnn获取发往主机的所有icmp包; src host,源地址; dst,目的地址

计划任务,crontab命令

文件的格式:

minutehourdaymonthweekdayusername command

minute:分,值为0-59

hour:小时,值为1-23

day:天,值为1-31

month:月,值为1-12

weekday:星期,值为0-6(0代表星期天,1代表星期一,以此类推)

username:要执行程序的用户,一般设置为root

command:要执行的程序路径(设置为绝对路径)例如:/home/test.sh

crontab实例

1 * * * * /home/backup.sh # 每分钟都执行   
0 */2 * * * /home/backup.sh # 每两个小时执行   
*30 * * * * /home/backup.sh # 每半个小时执行

文件替换,sed命令

用于文件/文本替换
1
sed -i "s/rule_bd_rule.conf/rule.conf/g" * #将文件中包含rule_bd_rule.conf替换为rule.conf文件

web容器

nginx

nginx启动

1
/usr/sbin/nginx

查看nginx版本

1
nginx -v

查看nginx安装模块

1
nignx -V

nginx服务测试是否ok

1
nginx -t

nginx服务重载,一般用于修改配置后生效执行

1
nginx -s reload

nginx服务重启

1
ningx -s restart{stop|start|configtest...}

nginx对php服务管理,可上线、下线php服务

1
/etc/init.d/nginx php_offline
1
/etc/init.d/nginx php_online

查找nginx日志中为502的日志

1
cat baidu.com-access.log | grep "80 500 " --color
1
tail -f baidu.com-access.log |grep "0 502 " --color
1
cat baidu.com-access.log | grep "502 " --color

php

php-fpm服务重载

1
/etc/init.d/php-fpm reload

php-fpm服务重启

1
/etc/init.d/php-fpm restart

java: jetty、tomcat、jar

java 程序一般用java-guard服务守护java进程,当服务中断后会尝试启动;同时管理java服务,可上线、下线服务

java服务操作

1
/etc/init.d/java-gurad offline{online}
1
/etc/init.d/jetty stop{start|restart|status}

抓取java堆栈进程日志

1
top -H -p 11434 /usr/java/jdk1.7.0_79/bin/jstack -F 11597 > 11597.log

node: nodejs

node 程序一般用node-guard服务守护node进程,当服务中断后会尝试启动; 同时管理node服务,可上线、下线服务; 建议以非ROOT用户启动

node服务操作

1
/etc/init.d/node-gurad offline{online}
1
su nodejs
1
pm2 list #查看当前正在运行的进程
1
pm2 show $pid # 查看执行编号为0的进程
1
pm2 logs # 显示所有日志
1
pm2 logs 0 # 显示执行编码为0的日志
1
cd /data/www/nodejs/ pm2 restart all # 重启nodejs服务

数据库

mysql

测试连接

1
mysql -uzabbix -h 127.0.0.1 -p -P3326 -H

初始化root密码

1
mysqladmin -uroot -password ab12

增加用户

1
CREATE USER 'username'@'host' IDENTIFIED BY 'password';

授权

1
GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY ’something’ WITH GRANT OPTION;

自动化运维工具

puppet

手动在客户端更新拉取puppet配置

1
puppet-agent

测试puppet连通性

1
puppet agent --test --server master.puppet.baidu.com

rsync

本机资源同步到远程

1
rsync -av --bwlimit=20480 2015030[0-9] 192.168.1.44::bd_rs

拉取远程资源到本机

1
rsync -avz java-source.rsync.vip.bd::123456/资源目录 ./

elk

ELK常用语句

1
domain:"fanyi.baidu.com" AND request:"123.html?type=old"
1
domain:"fanyi.baidu.com" AND status:[500 TO *]
1
tags:"项目名"
1
domain:"fanyi.baidu.com" AND url_path:""

故障诊断工具

用户DNS劫持

1
http://nstool.netease.com/ # 网易DNS检测工具
1
http://pubstatic.b0.upaiyun.com/cdn-health.html # 又拍云CDN健康检测
1
http://tools.cloudxns.net/Index/Diag # 本机DNS优化诊断
Jeff wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
码字不易,坚持原创技术分享,您的支持将鼓励我继续创作!么么哒!