统计排序: sort | uniq
awk '{print $1}' support_access_ssl.log |sort |uniq -c |sort -n
查看网卡mac码
# cat /sys/class/net/eth0/address
ps查看进程cpu使用率,内存使用情况
# ps -p 21603 -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'
PID COMMAND COMMAND %CPU RSZ VSZ STIME USER UID
21603 java /usr/local/services/java/bi 147 3355808 27326272 15:01 wwwuser 502
备注:rsz 实际使用内存3.3G vsz 虚拟分配内存:27.3G
centos 域名解析命令
dig @114.114.114.114 www.baidu.com
centos查找命令yum安装包
yum whatprovides */lspci
yum provides */nload
获取系统版本
rpm -q --queryformat '%{VERSION}-%{RELEASE}' centos-release
uname -a
cat /etc/redhat-release
windows server 添加路由
route add 192.168.0.0 mask 255.255.0.0 192.168.1.254 -p
centos 添加静态路由
ip route add 54.182.4.0/24 via 192.168.0.5
ip route add 23.22.87.48 via 192.168.0.5
SVN 版本库迁移
1、导出: svnadmin dump oldRepository > dumpfile
2、新建版本库: svnadmin create newRepostitory
3、导入: svnadmin load newRepository < dumpfile
硬件概念 :
① 物理CPU
实际Server中插槽上的CPU个数
物理cpu数量,可以数不重复的 physical id 有几个
② 逻辑CPU
Linux用户对 /proc/cpuinfo 这个文件肯定不陌生. 它是用来存储cpu硬件信息的信息内容分别列出了processor 0 – n 的规格。这里需要注意,如果你认为n就是真实的cpu数的话, 就大错特错了,一般情况,我们认为一颗cpu可以有多核,加上intel的超线程技术(HT), 可以在逻辑上再分一倍数量的cpu core出来
逻辑CPU数量=物理cpu数量 x cpu cores 这个规格值 x 2(如果支持并开启ht)
备注一下:Linux下top查看的CPU也是逻辑CPU个数
③ CPU核数
一块CPU上面能处理数据的芯片组的数量、比如现在的i5 760,是双核心四线程的CPU、而 i5 2250 是四核心四线程的CPU,一般来说,物理CPU个数×每颗核数就应该等于逻辑CPU的个数,如果不相等的话,则表示服务器的CPU支持超线程技术
查看CPU信息:
当我们 cat /proc/cpuinfo 时、具有相同core id的CPU是同一个core的超线程,具有相同physical id的CPU是同一个物理CPU封装的线程或核心
下面举例说明
① 查看物理CPU的个数
#cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
2
② 查看逻辑CPU的个数
#cat /proc/cpuinfo |grep "processor"|wc -l
24
③ 查看CPU是几核
#cat /proc/cpuinfo |grep "cores"|uniq
6
这里应该是2个Cpu,每个Cpu有6个core,应该是Intel的CPU,支持超线程,所以显示24
windows server 2008 查看SN码:
wmic bios get serialnumber
centos系统:
查看服务器型号:dmidecode | grep 'Product Name'
查看主板的序列号:dmidecode |grep 'Serial Number'
查看系统序列号(SN码):dmidecode -s system-serial-number
查看内存信息:dmidecode -t memory
查看OEM信息:dmidecode -t 11
查看网卡流量
iftop -nN -i eth2
lofs 命令:
查看哪些进程在操作某个文件
lsof /filepath/file
列出某个用户打开的文件信息
lsof -u username
备注: -u 选项,u其实是user的缩写
列出某个程序所打开的文件信息
lsof -c MySQL
iostat命令:磁盘io状态
$ iostat -d -x -m 1 3
Linux 2.6.32-573.3.1.el6.x86_64 (KX-M27-SupportMail-183) 09/28/2017 _x86_64_ (32 CPU)
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.24 86.21 1.64 23.15 0.12 0.43 45.59 0.06 2.34 2.72 2.31 1.57 3.88
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.00 0.00 1.00 0.00 0.00 8.00 0.01 6.00 0.00 6.00 6.00 0.60
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.00 0.00 2.00 0.00 0.01 8.00 0.01 4.00 0.00 4.00 4.00 0.80
rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s
wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s
r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s
w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s
rsec/s: 每秒读扇区数。即 delta(rsect)/s
wsec/s: 每秒写扇区数。即 delta(wsect)/s
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)
wkB/s: 每秒写K字节数。是 wsect/s 的一半。(需要计算)
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)
avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。
await: 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)
%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘
可能存在瓶颈。
idle小于70% IO压力就较大了,一般读取速度有较多的wait.
同时可以结合vmstat 查看查看b参数(等待资源的进程数)和wa参数(IO等待所占用的CPU时间的百分比,高过30%时IO压力高)
查看是虚拟机还是物理机:
$ sudo dmidecode -s system-product-name
PowerEdge R720
$ sudo dmidecode -s system-product-name
Standard PC (i440FX + PIIX, 1996)
$ sudo dmidecode -s system-product-name
VMware Virtual Platform
删除多个文件,文件名中包含空格或其他特殊字符:
find /data/www/faryaa/api/logs/label/ -maxdepth 1 -mtime +33 -type f -print0 |xargs -0 ls -l
find /data/www/faryaa/api/logs/label/ -maxdepth 1 -mtime +33 -type f -print0 |xargs -0 rm -f
http://lidao.blog.51cto.com/3388056/1915449
安装mysqlnd驱动
编译php时,修改以下几个项参数即可, 如果使用mysqlnd,并不需要预先安装mysql
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
查看php编译参数:
php -r "phpinfo();" | grep configure 或 php -i |more
批量删除大量文件
空目录:/home/wwwuser/test/blank/
$ find 2014/201404 -type f |wc -l
350006
$ time rsync --delete-befor -d /home/wwwuser/test/blank/ /data/ebay/2014/201404/
real 0m9.485s
user 0m0.499s
sys 0m8.066s
$ find 2014/ -type f |wc -l
4636134
$ time rsync --delete-befor -d /home/wwwuser/test/blank/ /data/ebay/2014/
real 6m5.550s
user 0m8.524s
sys 2m9.601s
硬盘同步进度:
$ omreport storage pdisk controller=0 |grep Progress
Progress : Not Applicable
Progress : Not Applicable
Progress : Not Applicable
Progress : 97% Complete
查看dell 关闭 numa
yum install numactl perl -y
numactl --hardware
已关闭截图:
$ numactl --hardware
available: 1 nodes (0)
node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
node 0 size: 65442 MB
node 0 free: 899 MB
node distances:
node 0
0: 10
$ free -h
total used free shared buffers cached
Mem: 62G 62G 885M 1.6M 146M 26G
-/+ buffers/cache: 35G 27G
Swap: 62G 18M 62G
未关闭截图:
$ numactl --hardware
available: 2 nodes (0-1)
node 0 cpus: 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
node 0 size: 32722 MB
node 0 free: 182 MB
node 1 cpus: 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
node 1 size: 32768 MB
node 1 free: 1904 MB
node distances:
node 0 1
0: 10 20
1: 20 10
[liuzhousheng@KX-M27-SupportMail-183 ~]$ free -h
total used free shared buffers cached
Mem: 62G 60G 2.1G 2.5M 1.9G 25G
-/+ buffers/cache: 33G 29G
Swap: 31G 0B 31G
进程启动时间运行时间
for i in `ps aux |grep "auto_message.php" |grep -v grep |awk '{print $2}'`;do ps -eo pid,lstart,etime |grep $i ;done
压缩:
tar.xz格式
方式一:利用已经打包好的tar文件,直接用压缩命令:
压缩:xz [原文件名].tar
解压:unxz [原文件名].tar.xz
方式二:一次性打包并压缩、解压并解包
打包并压缩: tar -Jcvf [目标文件名].tar.xz [原文件名/目录名]
解压并解包: tar -Jxvf [原文件名].tar.xz
注:大写J代表用xz算法来压缩/解压。
$ dd if=/dev/zero of=tmp.1G bs=10M count=100
$ tar -Jcvf tmp.1G.xz tmp.1G
$ du -sh ./*
124K ./php-error.log
1001M ./tmp.1G
152K ./tmp.1G.xz