结合数据库,主要介绍 linux常用命令、进程跟踪相关及文件查找 —by Firsouler
版本信息
- 2021/09/17 初始版本
目录
资源监控
Linux
#前10内存
ps auxw|head -1;ps auxw|sort -rn -k4|head -10
AIX
ps命令
# +3 显示第四列,内存百分比,也可以按照第六列RSS显示
ps aux | head -1 ; ps aux | sort -rn +3 | head -10
#内存 更详细信息
ps -ealf | head -1 ; ps -ealf | sort -rn +9 | head -10
#查看某进程使用私有内存
procmap 7931354|grep “read/write” |awk -F ” ” ‘{print $2}’
#显示10个消耗cpu最多的进程
ps aux |head -1 ;ps aux |sort -rn +2 |head -10
#显示10个消耗内存最多的进程
ps vx |head -1 ;ps vx |grep -v PID |sort -rn +6 |head -10
#显示10个换页最多的进程
ps vx |head -1 ;ps vx |grep -v PID |sort -rn +4 |head -10
#显示10个消耗存储空间最多的进程
ps aux |head -1 ;ps aux |sort -rn +3 |head -10
显示按顺序系统中受罚的进程
ps -eakl |head -1 ;ps -eakl |sort -rn +5
#显示按优先级顺序系统中的进程
ps -eakl |sort -n +6 |head
#显示按处理时间为顺序系统中的前十个进程
ps vx |head -1 ;ps vx |grep -v PID |sort -rn +3 |head –1
SVMON命令
#显示前5个使用内存最多的 Inuse*4/1024/1024=GB
svmon -uP -t 5|grep -p Pid|grep '^.*[0-9] '
#显示前5个使用交换分区最多的
svmon -gP -t 3|grep -p Pid|grep '^.*[0-9] '
#查看进行详细命令
svmon -pP 3735726
HPUX
ps -ealf | head -1; ps aux| sort -rn+9 | head -10
LVM管理
pvcreate /dev/sdb
vgcreate oravg /dev/sdb
lvcreate -L 29G -n lvoracle oravg
lvresize -L +200M /dev/oravg/lvoracle #将逻辑卷空间增加200M
lvreduce -L -80M /dev/oravg/lvoracle #将逻辑卷的空间大小减少50M
mkfs.ext4 /dev/oravg/lvoracle
mkfs.ext4 /dev/oravg/lvbackup
mount /dev/oravg/lvoracle /oracle
mount /dev/oravg/lvbackup /backup
resize2fs /dev/oravg/lvoracle
元数据修复
lvm方式
#备份文件位置
ls -lrt /etc/lvm/backup/
#查看vg创建信息
vgcfgrestore --list vg_backup
#查看损坏的pv信息
pvscan
#通过备份修复 pv元数据
pvcreate --uuid "9a2Lzl-B1Z0-zaR7-jgLj-9g72-u7PD-aYcjgh" --restorefile /etc/lvm/backup/vg_backup /dev/sdd
#修复vg信息
vgcfgrestore -f /etc/lvm/backup/vg_backup vg_backup
#激活vg vgscan
vgchange -a y vg_test
#擦除pv元数据信息
dd if=/dev/zero of=/dev/sdd count=4
fdisk方式
#假如被dd了,可以通过fsck修复
dd if=/dev/zero of=/dev/sdd count=4
双网卡绑定
[root@mytest network-scripts]# cat ifcfg-bond0
# Intel Corporation 82540EM Gigabit Ethernet Controller
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.8.27
GATEWAY=192.168.8.1
TYPE=Ethernet
BONDING_OPTS="mode=1 miimon=100"
[root@mytest network-scripts]# cat ifcfg-eth0
# Intel Corporation 82540EM Gigabit Ethernet Controller
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
[root@mytest network-scripts]# cat ifcfg-eth1
# Intel Corporation 82540EM Gigabit Ethernet Controller
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
cat /etc/modprobe.d/bonding.conf #redhat6
alias bond0 bonding
cat /etc/modprobe.conf #redhat5
alias bond0 bonding
cat /proc/net/bonding/bond0
进程跟踪
#跟踪进程
strace -ftp 5950
#跟踪sqlplus,sqlplus登录缓慢
strace -T -t -o /tmp/nohost01 sqlplus / as sysdba
#跟踪进程打开的文件
strace -t -e trace=file sqlplus / as sysdba
strace -f -o /tmp/trace.1.log sqlplus / as sysdba
#其他相关命令
pidstat -d 1 10 #进程 io读写情况 -p 某个进程
pstrace #进程跟踪
perf #性能分析
oprofile #性能测试工具
#打印进程的栈跟踪信息
pstack [pid] #pstack是gdb的一部分,yum gdb即可
#显示线程运行时间
ps -eLo pid,lwp,pcpu |grep #LWP XXXX
文件查找
#查找最近一天权限变更过的文件,注意-ctime,-mtime -atime区别
find *.tr* -ctime +3 -exec rm -rf {} \;
#查找重复的文件
find -type f -exec md5sum '{}' ';' | sort | uniq --all-repeated=separate -w 33 | cut -c 35
#当前目录下,2天前修改属性时间,先查看,后删除 注意alert日志别删 -m是修改内容,-a创建,-c改变
find *.tr* -mtime +10 -exec rm -rf {} \;
find *.dbf -mtime +10 -exec rm -f {} \;
find ./ -name "*.aud" | xargs rm -rf "*.aud" &
#查找1天内权限发生改变的
find $ORACLE_HOME/* -ctime -1 -exec ls -lrt {} \;
#查找大约50M文件,确认没用,再删除
find . -size +50000K -exec ls -l {} \;
find . -size +50000K -exec rm -f {} \;
多路径配置
yum install device-mapper-multipath*
modprobe dm-multipath #加载模块
modprobe dm-round-robin #加载模块
service multipathd restart #重启
multipath -F #删除现有路径
multipath -v2 #格式化路径
multipath -ll #查看多路径
chkconfig --level 2345 multipathd on
grep -v ^# /etc/multipath.conf
defaults {
udev_dir /dev
polling_interval 5
path_grouping_policy multibus
getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
prio const
path_checker directio
rr_min_io 1000
rr_weight uniform
failback manual
no_path_retry fail
user_friendly_names yes
}
blacklist {
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"
devnode "^cciss!c[0-9]d[0-9]*"
}
multipaths {
multipath {
wwid 14f504e46494c45526356443464532d693345332d36383647
alias crs
path_grouping_policy multibus
}
multipath {
wwid 14f504e46494c45524633443145642d3730316d2d6563706f
alias data
path_grouping_policy multibus
}
multipath {
wwid 14f504e46494c45526c6a6432446e2d6b3145382d35513845
alias data1
path_grouping_policy multibus
}
}
vi /etc/udev/rules.d/12-dm-permissions-oracle.rules
ENV{DM_NAME}=="ocr1", OWNER:="grid", GROUP:="asmadmin", MODE:="660", SYMLINK+="mapper/$env{DM_NAME}"
ENV{DM_NAME}=="ocr2", OWNER:="grid", GROUP:="asmadmin", MODE:="660", SYMLINK+="mapper/$env{DM_NAME}"
ENV{DM_NAME}=="ocr3", OWNER:="grid", GROUP:="asmadmin", MODE:="660", SYMLINK+="mapper/$env{DM_NAME}"
ENV{DM_NAME}=="ocr4", OWNER:="grid", GROUP:="asmadmin", MODE:="660", SYMLINK+="mapper/$env{DM_NAME}"
磁盘测试
#测试读
time dd if=/dev/sdb of=/dev/null bs=1M count=1024
#测试写,注意磁盘
time dd if=/dev/zero of=/dev/sdb bs=1M count=100
NFS配置
#NFS,注意*时 server端hosts文件中不能有客户端ip信息
/soft/db 192.168.8.*(rw,sync,no_root_squash,insecure)
/soft/db 192.168.8.0/24(rw,sync,no_root_squash,insecure)
service portmap status
service nfs restart
--aix
lssrc -g nfs
startsrc -s portmap
startsrc -g nfs
showmount -e 192.168.8.24
mkdir -p /soft/database
mount -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,vers=3,timeo=600 192.168.8.24:/soft/db /soft/database
mount -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,timeo=600,actimeo=0 192.168.8.24:/soft/db /soft/database
MD5校验
#windows
certutil -hashfile xxx MD5
certutil -hashfile xxx SHA1
certutil -hashfile xxx SHA256