进程

查看进程 ps(类似windows任务管理器)

man 1 ps # 查看命令文档
ps[options] 1 UNIX options, which may be grouped and must be
preceded by a dash.
2 BSD options, which may be grouped and must not be used
with a dash.
3 GNU long options, which are preceded by two dashes

支持的命令格式

  • unix格式: -h -e
  • BSD格式:a x u
  • GNU长格式:--help

选项

[root@taosiyu~]ps
`
a # 所有的终端
ps a x # 包括不连接终端的进程
u # 显示进程详细信息
f # 显示进程树,进程的从属关系
k # 指定排序方式,默认升序k后加-降序
ps aux k%cpu # 默认按照cpu升序排列
ps aux k-%cpu # 降序排列 o # 显示指定字段,不能和u同时使用
ps o pid,%cpu,cmd
ps ax o pid,%cpu,cmd L
# 获取o支持的选项,nice字段代表执行顺序,数值越小执行越先,
# psr cpu编号 STAT状态
# %cpu cpu的占用率 %men内存占用率 -L # 显示线程 LWP -e # 相当于ax
-f # 显示详细信息,相当于u
-F # 显示更详细的信息
-H # 显示树状结构
-p # 根据pid寻找该进程状态
-U # 根据用户查找,可以监控用户 常用选项: aux -ef -eFH ps -ef|grep sshd # 查找关于某项的进程

ps默认显示格式

PID TTY TIME CMD
45246 pts/0 00:00:00 bash
50768 pts/0 00:00:00 ps
pid 终端 当前命令占用cpu时间 命令

u显示详细信息格式

USER PID %CPU %MEN VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 193816 5288 ? Ss Aug29 0:20 /usr/lib/systemd/systemd --
root 2 0.0 0.0 0 0 ? S Aug29 0:00 [
用户 pid 用户占用率 内存占用率 虚拟内存(程序认为可获得) 常驻内存(实际内存) 终端 状态 启动时间 时间命令

根据名称来查询进程

pidof name # 根据名称

pidof python
1169 825
-s: 仅返回一个进程号;
-c: 仅显示具有相同"root"目录的进程;
-x: 显示由脚本开启的进程;
-o: 指定不显示的进程ID

系统工具

uptime

 # 可以查看系统是否健康
09:18:18 up 15:14, 2 users, load average: 0.00, 0.01, 0.05
当前时间 当前服务器运行时长 当前的在线用户数 cpu的负载:1分钟负载,5分钟负载,15分钟负载
cpu平均负载:在特定时间之内cpu运行的平均进程数,不超过cpu核心数的2倍认为良好

top(实时)

top- 14:26:49 up 15:14 2users load average: 0.00, 0.01,0.05 l显示与隐藏首部信息
首部信息 当前时间 当前服务器运行时长 当前的在线用户数 cpu负载:1min负载,5min负载,15min负载
Tasks: 217 total 1running, 216sleeping, 0stoped, 0zombie
任务 进程总数 运行数 睡眠数 停止数 僵尸进程
%Cpu(s): 0.0us, 0.0sy, 0.0ni 99.9 id,0.0wa,0.0si,0.0st cpu分别显示 1(数字)
cpu占用 用户空间 系统空间 nice值 空闲,wait时间,硬中断,软中断,虚拟机偷走的时间
KIB Mem 1865308 total, 146820 free, 812016 used, 906472 buff/cache m切换内存的显示方式
内存信息 总内存 空闲内存 已使用内存 Buffer cache/Page cache
缓冲区缓存和页面缓存
排序:默认是cpu的占用率 P 切换成内存 M 切换成CPU占用时间 T
KiB Swap: 2097148 total, 2088180 free, 8968 used 761920 avail Mem
虚拟内存(从硬盘划分出来,内存不够时调用)orcle安装时,要求系统中必须有swap空间 m查看内存信息
# 操作,显示信息操作详见表格最后一栏
退出:q
修改刷新频率: s time # 默认是三秒
杀死进程: k # 默认是杀死第一个
保存文件: W # 写入 .toprc
选项:-d time # 指定刷新时间
-b # 显示所有信息
-n num # 刷新num次退出**

htop

epel源
# 下载
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 安装
yum install -y htop
# 调整样式
F2
# 杀掉进程
k

性能分析

free内存

-b 以字节形式
-k kb
-m mb
-h 人类易读方式
-c num 刷新num次

vmstat

vmstat [options] [delay [count]]
vmstat 1 3 # 每秒刷新一次,刷新三次退出
[root@taosiyu test] # vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 8968 144792 76 909228 0 0 12 1 23 22 0 0 100 0 0 procs:
r:正在运行的进程个数
b:阻塞队列的长度 memory:
swap:虚拟内存大小
free:空闲物理内存大小
buff:用于缓存大小
cache:用于chache的大小 swap:
si:从磁盘交换到内存的数据速率(kb/s) # 读取速度
so:从内存到磁盘的数据速率(kb/s) # 写入速度 io:
bi:从磁盘读取到系统的速率(kb/s) # 读取速度
bo:从系统写入到磁盘的速率(kb/s) # 写入速度 system:
in:中断频率
cs:进程之前切换的频率 cpu:
us:用户空间
sy:系统空间
id:cpu空闲时间
wa:等待时间
st:虚拟机偷走的时间

iostat

查看磁盘读写速度

iostat num

dstat 查看所有

yum instattl dstat
# dsk 磁盘 paging 配置页 dstat # 显示所有部分
-c # CPU
-d # 硬盘
-n # 网络
-m # 内存
-p # 进程
-r # IO
-swap # swao空间 --top-cpu # 显示占用cpu最多的进程
--top-io # 显示占用io最多的进程
--top-mem # 显示占用内存最多的进程
--tcp # 显示tcp的信息
--udp # 显示udp的信息

iftop显示网卡的流量

进程的管理工具

kill(64个命令)

# 向进程发送信号,实现对进程的管理,每个信号,对应不同的值也对应不同的含义.不区分大小写

# 查看可用信号kill -l
1)sighub 不需要关闭程序,重新加载配置文件
2)signint 终止进程,相当于ctrl+c
9)sigkill 强制杀死进程
15)SIGTERM 终止正在运行的进程
18)SIGCONT 继续 # 可以和-19配合使用继续后台休眠的程序
19)SIGSTOP 后台休眠
# 使用方法
1.ps -ef|grep '进程名称' # 搜索想知道进程的id号
2.kill -信号序号 进程号 按照pid查找: pid -n pid
按照名称: killall -n name pkill -n name # 用名称执行的操作范围比较大,方便但小心使用
killall -9 sshd

作业管理

  • 前台作业:一直占用终端的作业
  • 后台作业:不占用当前终端的作业
让作业运行于后台:
对于启动中 # ctrl + z
对于没有启动的 # command &
# ping www.baidu.com & 也会输出到终端
  • 脱离终端
1.nohup
nohup command &>/dev/null &
# 此条会多显示一条信息,会生成一个文件写入文件中
nohup ping www.baidu.com &>/dev/null &
# 不显示提示信息,会生成一个文件写入文件中
tail -f nohup.out # 追踪显示新追加到nohup里的内容
# 终止进程时依然是杀死command 2.screen
yum install screen screen ping www.baidu.com
# 此时关掉终端仍在运行
screen -list
# 查看所有的screen窗口
-r 进入窗口
# 如果有多个可以输入pid选择进入哪个
screen -r pid

安全

防火墙

公司一般采用硬件防火墙,几乎不用该防火墙
硬件防火墙:1.绿盟2.深信服3.启明星辰4.飞塔5.思科6.华为7.华三
4表5链

iptables    # 防火墙
iptables -L # 查看防火墙信息,默认查看链 input output
iptables -F # 清空防火墙
systemctl disabled friewalld # 开机不启动
systmectl stop friewalld # 关闭防火墙

selinux

美国国家安全局

配置文件下 vim /etc/selinux/config
SELINUX=disabled
# 重启服务,永久生效 setenforce 0 # 临时生效,改完状态为第二个等级
getenforce # 查看selinux状态 红帽证书: 1.rhcea 2.rhce 3.rhca
思科证书: 1.ccnp 2.ccie 3.ccia

编译后的软件如果想删除,直接删除编译生成目录即可

虚拟环境

python3默认支持虚拟环境

pip3 list 查看安装包

1.安装
pip3 install virtualenv -i https://pypi.douban.com/simple 2.创建虚拟环境
virtualenv --help # 查看虚拟环境的操作
--no-site-packages DEPRECATED. Retained only for backward compatib
# --不推荐使用任何网站包 已弃用。仅为向后兼容保留
# 解释:创建一个全新的python环境,不放在第三方包里
# lib > site-packpages 第三方包
--python # 指定以哪个python虚拟环境进行创建
操作:
virtualenv --no-site-packages django_tao 3.进入虚拟环境
source django_tao/bin/activate # 进入虚拟环境
# source envdir/bin/activate
echo $PATH # 此时打印环境就在djngo_tao里
pip3 install django==1.11 -i https://pypi.douban.com/simple 4.退出虚拟环境
deactivate 5.确保环境一致 # 将windows安装的东西导入linux系统中
# 在windows的cmd上执行如下命令:将windows上安装的包做快照
pip freeze > requirement.txt
将requirement.txt传到linux中,切换虚拟机
6.安装
# 在虚拟机内
pip install -r requirement.txt -i https://pypi.douban.com/simple
# 逐行安装

虚拟环境管理工具

virtualenvwrapper

# 为了解决虚拟环境管理的问题,因为虚拟环境可以在任何目录下创建
1.安装
pip3 install virtualenvwrapper -i https://pypi.douban.com/simple
vim ~/.bashrc
2.修改文件
vim ~/.bashrc
export WORKON_HOME=/envdir
# 设置virtualenv的同一管理目录,以后虚拟环境只能正在envdir目录下
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
# 添加virtualenvwraaper的参数,生成干净隔绝的环境
export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3
# 指定python解释器
source /opt/python36/bin/virtualenvwrapper.sh
# 执行virtualenvwrapper安装脚本
3.加载~/.bashrc
source ~/.bashrc
4.创建环境
mkvirtualenv django_tao 创建并切换
5.进入虚拟环境
workon name
6.切换当前虚拟环境的文件夹
cdvirtualenv
7.切换到当前虚拟环境的第三方包的文件夹
cdsitepackages
8.退出
deacticate
9.列出当前管理的虚拟环境
lsvirtualenv
10.列出当前虚拟环境的第三方包
lssitepackages
11.删除虚拟环境
rmvirtualenv django20^C # 必须要退出才能删除

Mysql

mariadb是mysql的分支

可以直接在官方网站下载

下载

wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar

解压

tar xf MySQL-5.6.44-1.el7.x86_64.rpm-bundle.tar

安装

yum install -y *.rpm  # 下载5.7
# 默认安装目录:/var/lib/mysql # 配置文件
vim /etc/my.cnf
# 文件下配置
datadir=/mydata/mysql # 数据库文件夹
socket=/mydata/mysql/mysql/mysql.sock
设置
[mysql]
socket=/mydata/mysql/mysql/mysql.sock # 创建刚才配置的目录
mkdir -p /mydata/mysql
# 把 mysql账号 设置有读写权限
chown mysql -R /mydata/mysql # 日志文件
/var/log/mysqld.log

报错信息:

2019-08-30T11:18:22.976635Z 0 [Warning] Can't create test file /mydata/mysql/localhost.lower-test
2019-08-30T11:18:22.976687Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.27) starting as process 2788 ...
2019-08-30T11:18:22.980289Z 0 [Warning] Can't create test file /mydata/mysql/localhost.lower-test
2019-08-30T11:18:22.980338Z 0 [Warning] Can't create test file /mydata/mysql/localhost.lower-test # 解决办法:
setenforce 0

重置密码

默认密码:
grep 'pass' /var/log/mysqld.log
# cat .mysql_secret现在版本不在这里面
# 这个密码,登陆一次后必须重新设置密码
mysql_secure_installation 输入root密码
是否要修改密码
是否要修改root密码(大小写、数字、特殊字符)
是否要删除匿名用户
是否禁止root远程登录
是否要删除test数据库
是否要刷新表的权限
systemctl start mysqld
# 这里可以用ss查看有没有3306端口号 setenforce 0
# 如果起服务起不来 可以用ss -anlp查看是否端口冲突,mysql默认端口3306

密码校验规则

# 设置密码的校验规则
mysql > set global validate_password_policy=0;
0 校验级别最低,只校验密码的长度,长度可以设定.
1 必须包裹大写字母,小写字母,数字,特殊字符.
2 必须满足上面两条,并且对于密码中任意连续的4个(或者4个以上) 字符不能是字典中的单词. # 修改密码的最短长度
mysql > set global validate_password_length=3; 修改密码的最短长度

创建用户

create user 'username'@'ip' identified by 'password'
全部ip则是%

查看权限

show grants;
# 如果格式不会 help grants

用户授权

# 给账号授权
mysql > grant all on *.* to 'eva'@'%' identified by 'passwd';
Query OK, 0 rows affected, 1 warning (0.00 sec) mysql > flush privileges; # 刷新使授权立即生效
Query OK, 0 rows affected (0.00 sec)

Mysql 主从

主服务器配置如下

# 纯净干净的情况下做主从
# 配置文件
vim /etc/my.cnf
server-id=1
log-bin=/mydata/log/master-bin # 启动binlog日志
sync_binlog=1 # 确保主从复制事务的安全
# 常见配置的文件夹
mkdir /mydata/log
# 给文件夹设置权限
chown mysql -R /mydata/
systemctl restart mysqld # 重启服务 # 有数据的情况下可以用数据备份
#语法:
# mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql
#示例:
#单库备份
mysqldump -uroot -p123 db1 > db1.sql
mysqldump -uroot -p123 db1 table1 table2 > db1-table1-table2.sql
#多库备份
mysqldump -uroot -p123 --databases db1 db2 mysql db3 > db1_db2_mysql_db3.sql
#备份所有库
mysqldump -uroot -p123 --all-databases > all.sql # 从服务器在此练习中为了方便可以复制一个服务器暂做练习

主服务器执行如下sql

mysql > grant replication slave on *.* to 'slave'@'192.168.21.131' identified by 'password';
Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec) show master status\G
# grant replication '用户名' on *.* to 'slave'@identified by '密码'

从服务配置如下:

vim /etc/my.cnf

server-id =12
relay_log =/mydata/log/slave-log
sync_binlog = 1
# 只读
read-only=ON

从服务器执行如下sql

CHANGE MASTER TO
MASTER_HOST='master2.example.com', # 主服务器ip
MASTER_USER='replication', # 用户名
MASTER_PASSWORD='password', # 密码
MASTER_PORT=3306, # 端口
MASTER_LOG_FILE='master2-bin.001', # 此处填写主服务器的log文件
MASTER_LOG_POS=4, # 此处写主服务器的Position
MASTER_CONNECT_RETRY=10; # 监控主服务器的时间
# 连接主库
change master to master_host='192.168.21.128',master_user='slave',master_password='1234';
# 启动进程
start slave;
# 查看状态
show slave status\G # Slave_SQL_Running: Yes
# Slave_IO_Running: Yes
# 看到这两条状态即代表成功 CHANGE MASTER TO
MASTER_HOST='192.168.26.128',
MASTER_USER='slave',
MASTER_PASSWORD='1234',
MASTER_PORT=3306,
MASTER_LOG_FILE='master-bin.000002',
MASTER_LOG_POS=603,
MASTER_CONNECT_RETRY=10;

问题:

Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
# 查看uuid
[root@taosiyu ~]#cat /mydata/mysql/auto.cnf
[auto]
server-uuid=23204da4-cbcb-11e9-b26b-000c29397cf8 # 解决办法:
rm -rf /mydata/mysql/auto.cnf
systemctl restart mysqld

进程,虚拟环境,Mysql主从的更多相关文章

  1. django 本地项目部署uwsgi 以及云服务器部署 uwsgi+Nginx+Docker+MySQL主从

    一 .django 本地项目部署uwsgi 1 本地部署项目 uwsgi安装测试 通过uwsgi 进行简单部署 安装uwsgi命令:pip install uwsgi -i http://pypi.d ...

  2. LVS+Keepalived+Squid+Nginx+MySQL主从高性能集群架构部署方案

    方案一,在tomcat的workers.properties里面配置相关条件 worker.tomcat.lbfactor= worker.tomcat.cachesize= worker.tomca ...

  3. CentOS 7下的 Mysql 主从配置

    最近在玩mysql主从配置,在此记录一下 一.前言 1.安装两个虚拟机(CentOS 7).iP分别是192.168.47.131 和192.168.47.133.其中192.168.47.133作为 ...

  4. 监控Mysql主从环境下Slave延迟状态的操作记录

    在MySQL主从环境下,通常会根据Seconds_Behind_Master的值来判断slave的延迟状态,这么做在大部分情况下尚可接受,但其实是并不够准确的.对于Slave延迟状态的监控,应该考虑多 ...

  5. Mysql主从同步(复制)

    目录: mysql主从同步定义      主从同步机制 配置主从同步      配置主服务器      配置从服务器 使用主从同步来备份      使用mysqldump来备份      备份原始文件 ...

  6. Mysql主从配置+读写分离

    Mysql主从配置+读写分离     MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. ...

  7. MySQL主从同步原理 部署【转】

    一.主从的作用:1.可以当做一种备份方式2.用来实现读写分离,缓解一个数据库的压力二.MySQL主从备份原理master 上提供binlog ,slave 通过 I/O线程从 master拿取 bin ...

  8. Amoeba实现mysql主从读写分离

    Amoeba实现mysql主从读写分离 这段在网上看了下关于amoeba的文章,总体感觉好像要比mysql-proxy好的多,也参考了不少的资料,此文章可能与其他文章作者会有雷同的地方,请谅解,但是此 ...

  9. Mysql笔记之 -- 小试MYSQL主从配置

    mysql主从配置: 硬件: 两台服务器 1.Ubuntu 12.04.4 LTS (GNU/Linux 3.2.0-60-generic-pae i686)  2.Ubuntu 12.04.4 LT ...

随机推荐

  1. Task扩展方法取消操作

    /// <summary> /// 任务扩展,传入取消操作 /// </summary> public static class TaskExtensionDemo { //因 ...

  2. npm run build后如何打开index.html跑起项目

    Tip: built files are meant to be served over an HTTP server.   Opening index.html over file:// won't ...

  3. CSS基础学习-7.CSS元素分类

  4. Dom修改元素样式

    提纲:我们可以通过js来修改元素的大小,颜色,位置等样式 1.element.style                         行内样式的操作 2.element.className    ...

  5. 【leetcode】1281. Subtract the Product and Sum of Digits of an Integer

    题目如下: Given an integer number n, return the difference between the product of its digits and the sum ...

  6. 在linux 安装python

    wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz tar -zxvf Python-3.7.1.tgz cd Python-3 ...

  7. 微信小程序开发入门教程(一)---hello world

    由于无法备案网站,前期做了个微信小程序(开发版)就搁置了,几乎忘了开发过程.现在重新梳理,做个记录. 一.最基本的小程序前端例子hello 1.下载安装  微信开发者工具  官网: https://d ...

  8. Confluence 6.15 修改历史(Change-History)宏

    修改历史(Change-History)宏显示了页面一个的更新历史:版本号,作者,日期和备注.这些内容将会在同一栏中进行显示. 屏幕截图:Confluence 中的修改历史(Change-Histor ...

  9. websocket 连接测试端口服务是否正常代码

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. Python实现telnet命令测试防火墙

    Python实现telnet命令测试防火墙 telnet主要用于测试主机端口是否开通 ping主要是用来测试网络是否畅通和主机是否正在使用 使用Python实现Telnet测试主机端口是否开通的功能. ...