进程,虚拟环境,Mysql主从
进程
查看进程 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主从的更多相关文章
- django 本地项目部署uwsgi 以及云服务器部署 uwsgi+Nginx+Docker+MySQL主从
一 .django 本地项目部署uwsgi 1 本地部署项目 uwsgi安装测试 通过uwsgi 进行简单部署 安装uwsgi命令:pip install uwsgi -i http://pypi.d ...
- LVS+Keepalived+Squid+Nginx+MySQL主从高性能集群架构部署方案
方案一,在tomcat的workers.properties里面配置相关条件 worker.tomcat.lbfactor= worker.tomcat.cachesize= worker.tomca ...
- CentOS 7下的 Mysql 主从配置
最近在玩mysql主从配置,在此记录一下 一.前言 1.安装两个虚拟机(CentOS 7).iP分别是192.168.47.131 和192.168.47.133.其中192.168.47.133作为 ...
- 监控Mysql主从环境下Slave延迟状态的操作记录
在MySQL主从环境下,通常会根据Seconds_Behind_Master的值来判断slave的延迟状态,这么做在大部分情况下尚可接受,但其实是并不够准确的.对于Slave延迟状态的监控,应该考虑多 ...
- Mysql主从同步(复制)
目录: mysql主从同步定义 主从同步机制 配置主从同步 配置主服务器 配置从服务器 使用主从同步来备份 使用mysqldump来备份 备份原始文件 ...
- Mysql主从配置+读写分离
Mysql主从配置+读写分离 MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. ...
- MySQL主从同步原理 部署【转】
一.主从的作用:1.可以当做一种备份方式2.用来实现读写分离,缓解一个数据库的压力二.MySQL主从备份原理master 上提供binlog ,slave 通过 I/O线程从 master拿取 bin ...
- Amoeba实现mysql主从读写分离
Amoeba实现mysql主从读写分离 这段在网上看了下关于amoeba的文章,总体感觉好像要比mysql-proxy好的多,也参考了不少的资料,此文章可能与其他文章作者会有雷同的地方,请谅解,但是此 ...
- Mysql笔记之 -- 小试MYSQL主从配置
mysql主从配置: 硬件: 两台服务器 1.Ubuntu 12.04.4 LTS (GNU/Linux 3.2.0-60-generic-pae i686) 2.Ubuntu 12.04.4 LT ...
随机推荐
- zencart产品批量表上传后SEO三要素状态以及特价时间修改
', metatags_products_name_status ', metatags_model_status ', metatags_price_status ', metatags_title ...
- idea详细设置:编码、代码提示大小写、窗口数量限制、自动导包、serialID、重复代码警告、热部署等设置
提示: idea ultimate 2018.2 idea-file-setttings设置的是当前项目的配置(只针对当前项目生效)idea-file-others settings相当于以后导入创建 ...
- JAVA解压ZIP文件
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.Inp ...
- ElementUI datepicker日期选择器时间选择范围限制
ElementUI是饿了么推出的一套基于vue2.x的一个ui框架.官方文档也很详细,这里做一个element-ui日期插件的补充. 最近做项目用到了datepicker,需要对日期选择做一些限制, ...
- 进击JavaScript核心 --- (3)面向对象
JS中的对象定义为:无序属性的结合,其属性可以包含基本值.对象或者函数 1.定义对象的方式 (1).Object构造函数 var student = new Object(); student ...
- 线程安全 Vs 非线程安全
线程安全:多线程访问时,采用了加锁机制,当一个线程读取数据时,其他线程不能访问直到该线程读取完毕.不会出现数据不一致或者脏数据. 非线程安全:不提供数据保护,可能出现其他线程访问时更改数据而该线程得到 ...
- swagger2 常用注解说明
常用到的注解有: Api ApiModel ApiModelProperty ApiOperation ApiParam ApiResponse ApiResponses ResponseHeader ...
- Sogou for Linux
造冰箱的大熊猫,本文适用于Ubuntu 18.04@cnblogs 2019/5/8 在Ubuntu(安装时选择英文语言环境)下安装搜狗输入法 1)从搜狗官网下载sogou拼音输入法的deb安装包. ...
- Confluence 6.15 修改历史(Change-History)宏
修改历史(Change-History)宏显示了页面一个的更新历史:版本号,作者,日期和备注.这些内容将会在同一栏中进行显示. 屏幕截图:Confluence 中的修改历史(Change-Histor ...
- poj 3641 Pseudoprime numbers 快速幂+素数判定 模板题
Pseudoprime numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7954 Accepted: 3305 D ...