linux

Linux

性能指标

CPU使用率
内存使用量
系统平均负载(cpu和内存)

磁盘监控指标

  • 磁盘使用量
  • Inode使用率
  • 读写字节数
  • 读写请求数
  • 网络流入流出速率
  • 网络流入流出数据包数
  • TCP连接数

硬件查看

dmidecode                          # 打印所有硬件信息
dmidecode -q                       # 打印所有硬件信息,比较简洁
dmidecode | grep ‘Product Name‘    # 以过滤的方式来查看指定的硬件信息
dmidecode --type bios              # 查看BIOS相关的硬件信息
dmidecode --type system            # 查看系统相关的硬件信息
dmidecode --type baseboard         # 查看主板相关的硬件信息
dmidecode --type chassis           # 查看机箱相关的硬件信息
dmidecode --type processor         # 查看处理器相关的硬件信息
dmidecode --type memory            # 查看内存相关的硬件信息

温度查看

yum -y install lm_sensors

yum -y install ipmitool

apt-get -y install ipmitool

apt-get -y install lm_sensors

cpu相关命令

查看cpu型号和线程数

cat /proc/cpuinfo | grep name | cut -f2 -d: |uniq -c

查看cpu 核心数

cat /proc/cpuinfo |grep "cores"|uniq

watch命令

watch free -h # 每隔两秒自己执行一次

监控命令

free -h

df -ih

inode 不足会出现 no space left on device

top
tasks 进程
总进程 运行 睡眠 关闭 僵尸
total running sleeping stopping zombie

%cpu 关于cpu 使用的
|用户使用百分比 | 内核使用百分比 | 优先级 | 空闲值 | io等待 | 硬中断 | 软中断 | 使用虚拟化的时候cpu的百分比
|us | sy | ni | id | wa | hi | si | st

htop cpu 内存
硬盘io

uptime 启动时间

1分钟 5分钟 10分钟

iftop 查看网络io 可以看ip地址 可以查看占用

iostat 查看磁盘io
systat

tps | kb_read | kb_wrtn/s | kb_read | kb_wrtn
每秒传输的次数 | 读/秒 | 写/秒 | 读总 | 写总

iotop 查看读写的top

vmstat 查看所有的情况

netstat 监控并发 查看端口占用情况

nethogs 监控每个进程用了多少流量

系统

操作系统版本和内核

cat /proc/version
uname -a

红帽系

cat /etc/centos-release

ubuntu

核心各占用

top 按1

系统负载

w
iostat -c

编写SHELL显示多个信息,用EOF

EOF
+-----------+
HAHA
+-----------+

内存相关命令

检测内存使用情况

free -h

检测内存使用情况 间隔秒数,持续观察内存使用情况

free -h -s 1

检测所有内存

free -t -h

防火墙

开启防火墙

systemctl start firewalld.service centos 7
service iptables start centos 6.5

关闭防火墙

systemctl stop firewalld.service centos 7
service iptables stop centos 6.5

开机启动

systemctl enable firewalld.service centos 7
service iptables enable centos 6.5

状态

systemctl status firewalld.service centos 7
service iptables status centos 6.5

开放端口

firewall-cmd --permanent --add-port=80/tcp 对所有ip开放
firewall-cmd --permanent --add-port=80/tcp --zone=public

/etc/firewalld/zones/public.xml 中配置网段等

firewall-cmd --permanent --add-rich-rule ”rule family=ipv4 source address=网段/掩码 port port=端口 protocol=tcp accept“
直接使用命令添加

firewall-cmd --permanent --add-rich-rule ”rule family=ipv4 source address=网段/掩码 port port=端口 protocol=tcp drop“
拒绝网段的访问

移除端口

firewall-cmd --permanent --remove-port=8080/tcp

查看防火墙规则

firewall-cmd --list-all

查看tcp连接

netstat -n | awk ‘/^tcp/ {++state[$NF]} END {for(key in state) print key,"t",state[key]}‘

统计线程数

ps -eLf | wc -l

nginx 连接数

netstat -na | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}‘
netstat -nat|grep -i "80"|wc -l

硬盘相关命令

df

df(disk filesystem 的简称)用于显示 Linux 系统的磁盘利用率。(LCTT 译注:df 可能应该是 disk free 的简称。)

统计文件大小前100

du -h --max-depth=1 | sort -nr |head -n 100

显示磁盘分区可用硬盘空间

df -h

显示inode

df -i

io查看

vmstat 1

iotop

sar -d 3 5

iostat -d

测试速度 写(会生成test.dbf,大小等于bs*count)

time dd if=/dev/zero of=/test.dbf bs=4k count=100000

测试速度 读(会生成test.dbf,大小等于bs*count)

time dd if=/test.dbf of=/dev/null bs=8k

用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息

lsblk -fp

开机挂载

cat /etc/fstab

创建和维护分区表

fdisk

根据pid 查找运行路径

查找端口 获取pid

netstat -lantp |grep 28936

查找运行路径

ll /proc/pid/cwd

文件

查询/(目录)下所有大于10M的文件

find /目录 -size +10M

查看目录大小(路径深度max-depth)

du -lh --max-depth=1

查看文件更新日期、文件大小等信息

ls -ltrh

查看当前目录下所有文档的内容行数

wc -l *

查看当前目录下所有文档的大小

du -sh *

将yyy文件进行打包(yyy可以是多个,不一定只有一个)成为名为xxx的压缩文件

tar -cvf xxx.tar yyy

解包,也就是打包的逆过程

tar -xvf xxx.tar
tar -zxvf xxx.tar.gz
tar -jxvf xxx.tar.bz2
unzip xxx.zip

这是打包,压缩后的容量最小

tar -zcvf xxx.tar.gz yyy

zip 压缩

zip xxx.zip yyy

查看日历

cal

进程

查看cpu负载、正在运行的进程信息、内存使用信息

top

查看进程,按内存从大到小排序 前10

ps aux --sort -rss | head -n 10

只显示进程
ps -A --sort -rss -o comm,pmem,pcpu |uniq -c |head -10

查看进程,按内存从小到大排序 前10

ps aux --sort rss | head -n 10

查看cpu占用 增序 前10

ps auxw --sort=%cpu | head -n 10

只显示进程
ps -A --sort -%cpu -o comm,pmem,pcpu |uniq -c |head -10

查看cpu占用 减序 前10

ps auxw --sort=-%cpu | head -n 10

top命令查看

内存排序

top 按M 按e 换内存单位

cpu排序

top 按P 按e 换内存单位

top 杀死进程

top 按k 输入pid

top 根据运行时间排序

top 按T

网卡(网络)

查看ip地址和其他信息

ifconfig 需要net-tools
ip a

软件安装

yum
centos8 为 dnf 同时yum 也可以使用

查看命令由那个包提供

yum provides 命令

查找软件包

yum search 关键词

更新软件

yum update

安装

yum install

可安装的软件清单

yum list

清楚缓存

yum clean all
yum makecache

温度

linux ulimit 各种限制

ulimit -a 查看各种限制 上面会写对应的命令 比如 -f -a

ulimit -f 10240 #暂时修改

vim /etc/security/limits.conf

查看nginx 开启open files的限制

more /proc/1991/limits |grep ‘open files‘

nginx:

netstat -antp | grep 80 | grep ESTABLISHED -c #查看nginx连接数
netstat -antp | grep 80 #查看连接列表

负载均衡模板:

工作的子进程数量(通常等于CPU数量或者2倍于CPU)

worker_processes 2;

错误日志存放路径

error_log logs/error.log;

指定pid存放文件

pid logs/nginx.pid;

events {
#允许最大连接数
worker_connections 1024;

}

http {
include mime.types;
default_type application/octet-stream;

access_log  logs/access.log;
client_header_timeout  3m;  
client_body_timeout    3m;  
send_timeout           3m;  

client_header_buffer_size    1k;  
large_client_header_buffers  4 4k;  

sendfile        on;  
tcp_nopush      on;  
tcp_nodelay     on;

#log_format main
	#‘$remote_addr - $remote_user [$time_local] "$request" ‘
	#‘$status $body_bytes_s ent "$http_referer" ‘
	#‘"$http_user_agent" "$http_x_forwarded_for"‘

# 配置负载均衡
upstream csm {
    server 127.0.0.1:8081 weight=1; 
    server 127.0.0.1:8082 weight=1;  
}

server {
    listen       80;
    server_name  localhost;

    charset utf-8;
   
    #access_log  logs/host.access.log  main;

    location /csm {
        root   html;
        index  index.html index.htm;
        proxy_connect_timeout 3; #nginx跟后端服务器连接超时时间(代理连接超时) 
          proxy_send_timeout 30; #后端服务器数据回传时间(代理发送超时) 
           proxy_read_timeout 30; #连接成功后,后端服务器响应时间(代理接收超时) 
           proxy_pass http://csm;
    }
    
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

}

linux命令
cat 2020-04-24-old-old | grep -i "2020/04/24 20" >> a.txt #按条件导出日志
nohup ./服务 > /tmp/nohup.out 2>&1 & #后台运行并标准输出日志
chkconfig --del 服务名 #关闭开机自启
chkconfig --add 服务名 #开启开机启动

docker命令
sudo docker login --username=wuxs@fortis registry.cn-hangzhou.aliyuncs.com #私有库登录docker

docker exec -i -t 0a5c9223afde /bin/bash #进入容器

apollo

docker编排

version: ‘2‘
services:
apollo-all-in-one:
container_name: apollo-all-in-one
image: idoop/docker-apollo:latest
restart: always
# 如果portal出现504错误,则使用"host"模式
volumes:
- /server/apollo/:/opt
network_mode: "host"
environment:
# 开启Potal,默认端口:8070
# 配置数据库ServerConfig表apollo.portal.envs字段值为要开启的环境,这里是:dev,fat,uat
PORTAL_DB: jdbc:mysql://127.0.0.1:3306/ApolloPortalDB?characterEncoding=utf8
PORTAL_DB_USER: root
PORTAL_DB_PWD: Aa123456

  # 配置数据库ServerConfig表eureka.service.url字段值为http://localhost:8081/eureka/
  #PRO_LB: 若使用分布式负载均衡,则输入负载均衡地址,,格式为IP或域名
  PRO_DB: jdbc:mysql://127.0.0.1:3306/ApolloConfigDB?characterEncoding=utf8
  PRO_DB_USER: root
  PRO_DB_PWD: Aa123456
  PRO_ADMIN_PORT: 8094
  PRO_CONFIG_PORT: 8084

oracle

切换实例:
set ORACLE_SID=xxx

登录实例:
sqlplus / as sysdba

查看当前实例名:
select name from v$database;

创建表空间:
CREATE TABLESPACE SHOUYAO LOGGING DATAFILE ‘D:\app\Administrator\oradata\cdhys\SHOUYAO.DFB‘ SIZE 256M AUTOEXTEND ON NEXT 32M MAXSIZE 10240M EXTENT MANAGEMENT LOCAL;

创建用户并授权:
CREATE USER SHOUYAO IDENTIFIED BY SHOUYAO DEFAULT TABLESPACE SHOUYAO;

授权用户:
Grant connect,dba,resource to QDSHOUYAO;

解锁账号:
alter user SHOUYAO account unlock;

查看账户密码:
select username from dba_users

修改密码:
alter user system identified by 123456;

2.创建一个新用户:create user hr identified by hr;
3.授予DBA权限: grant connect,resource,dba to hr;

mysql

MySQL:

[root@VM_0_4_centos ~]# ps -axef | grep mysql -c #查看mysql连接数

select user,host from mysql.user; #查看用户列表

一、MySQL授权指定用户指定库
1、使用 root 管理员登陆 mysql
mysql -uroot -p123456;

2、创建新用户
CREATE USER ‘user1‘@‘%‘ IDENTIFIED BY ‘07fa533360d9‘;

‘%‘ - 所有情况都能访问
‘localhost’ - 本机才能访问
’111.222.33.44‘ - 指定 ip 才能访问
注:修改密码
update mysql.user set password=password(‘新密码‘) where user=‘user1‘;

这个时候访问,是除了默认生成的两个数据库,看不到任何其它的数据库:

3、给该用户添加权限
grant all privileges on 想授权的数据库.* to ‘user1‘@‘%‘;

all 可以替换为 select,delete,update,create,drop
这个时候访问,比刚才看到的数据库多出了一个刚刚添加的。

4、删除用户
Delete FROM mysql.user Where User=‘user1‘;

二、从库重新连接主库
创建授权用户(主)
创建用户,赋予权限用来给从库做主从同步。

GRANT REPLICATION SLAVE ON . TO ‘slave‘@‘192.168.1.22‘ IDENTIFIED BY ‘slavepassword‘;
flush privileges;

查看主库当前的偏移量

mysql> show master status \G

从库操作
在从库mysql客户端中操作

stop slave;

change master to master_host=‘192.168.1.23‘,master_user=‘slave‘,master_password=‘slavepassword‘,master_log_file=‘mysql-bin.000017‘,master_log_pos=233602883;
?
start slave;

检查从库状态
mysql>show slave status \G;1469711076

小结
这样做虽然断开的主从复制又链接上了,但是由于从库复制开始的偏移量丢失了(应该在重新设置主动连接的时候,先观察下从库断开时的偏移量,在断开的偏移量继续连接可能会减少一些数据不一致的情况,而不是直接从新的位置复制),所以有一段时间的数据可能丢失了,也就是数据不一致的情况,需要检查和修复这个问题。 以后会说这个问题解决的过程,一次主从数据不一致的问题解决过程

nfs

  showmount命令用于查询NFS服务器的相关信息

  # showmount --help

  Usage: showmount [-adehv]

  [--all] [--directories] [--exports]

  [--no-headers] [--help] [--version] [host]

  -a或--all

  以 host:dir 这样的格式来显示客户主机名和挂载点目录。

  -d或--directories

  仅显示被客户挂载的目录名。

  -e或--exports

  显示NFS服务器的输出清单。

  -h或--help

  显示帮助信息。

  -v或--version

  显示版本信。

  --no-headers

  禁止输出描述头部信息。

  显示NFS客户端信息

  # showmount

  显示指定NFS服务器连接NFS客户端的信息

  # showmount 192.168.1.1 #此ip为nfs服务器的

  显示输出目录列表

  # showmount -e

  显示指定NFS服务器输出目录列表(也称为共享目录列表)

  # showmount -e 192.168.1.1

  显示被挂载的共享目录

  # showmount -d

  显示客户端信息和共享目录

  # showmount -a

  显示指定NFS服务器的客户端信息和共享目录

  # showmount -a 192.168.1.1
  
  

挂载nfs

挂载命令:mount -t nfs 192.25.105.186:/home/sharedata/azkaban/ODS_HS08 /home/data_azkaban

开机挂载

/etc/rc.d/rc.local 中;看操作

[root@NFS_Client ~]# vim /etc/rc.d/rc.local

mount -t nfs -o nosuid,noexec,nodev,rw,bg,soft,rsize=32768,wsize=32768
然后介绍下 mount 的各项参数:
-t nfs:指定文件系统的类型
nosuid:取消 suid 的功能
noexec:不具有二进制的执行权限
rw:读写
nodev:不保留装置档案的特殊功能

samba cifs

linux下直接挂载
mount -t cifs -o username=Everyone //10.0.0.151/fileTemp /server/fileTemp

/etc/rc.d/rc.local 中;看操作

[root@NFS_Client ~]# vim /etc/rc.d/rc.local

mount -t nfs -o nosuid,noexec,nodev,rw,bg,soft,rsize=32768,wsize=32768
然后介绍下 mount 的各项参数:
-t nfs:指定文件系统的类型
nosuid:取消 suid 的功能
noexec:不具有二进制的执行权限
rw:读写
nodev:不保留装置档案的特殊功能

linux

上一篇:eclipse 注释模板设置


下一篇:解决VMware WorkStation中安装Mac OS不能更改屏幕分辨率的问题