进程、系统工具、安全、虚拟环境、mysql、

补充内容

1.crontab的日志

/var/log/cron

2.命令最好写绝对路径

3.ping

 -c 指定次数
 ICMP 协议    ---> 自行百度

进程

查看进程 ps

  ps [options]

支持的命令格式

  • unix格式:-h -e

  • BSD格式:a,x,u

  • GNU长格式:--help

选项

 [root@s22 ~]#ps
    PID TTY         TIME CMD
  28019 pts/4    00:00:00 ps
  83674 pts/4    00:00:00 bash
 pid   终端       当前命令占用cpu的时间 命令
 a 所有的终端
 x 包括不连接终端的终端
 u 显示进程详细信息
 f 显示进程树
 k 指定排序方式 ,默认是递增,如果想递减,则需要在排序的字段上加上-
 o 指定显示的属性,不能跟u同时使用
 L 获取支持的选项,
 -L 显示线程
 -e 相当于 ax
 -f 显示详细信息,相当于u
 -F 显示更详细信息
 -H 显示树状结构
 -U username 获取指定的用户信息
 常用选项: aux -ef -eFH

ps输出属性

VSZ 虚拟内存(程序认为可以获取到的)

RSS 实际内存

psr cpu编号

STAT 状态

%cpu cpu的占用率

%mem 内存的占用率

根据名称来查询进程

 pidof name
 [root@s22 ~]#pidof python
 1169 825

系统工具

uptime

 [root@s22 ~]#uptime 
  09:17:40 up 1 day, 22:19,  5 users, load average: 2.14, 1.59, 0.84
  当前时间   当前服务器运行时长 当前的在线用户数   cpu的负载 1分钟 5分钟 15分钟
  cpu平均负载:在特定时间之内cpu运行的平均进程数,不超过cpu核心数的2倍认为为良好

top

首部信息

  • uptime信息 l 显示与隐藏

  • tasks :进程总数,运行,睡眠数,停止数,僵尸进程 t

  • cpu信息: %Cpu(s): 0.3 us, 4.6 sy, 0.0 ni, 95.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

    用户空间 系统空间 nice值 空闲 等待 硬中断 软中断 虚拟机偷走时间

  • 内存信息 m

  • cpu分别显示 1(数字)

排序:

模式是cpu的占用率 P

M:内存占用率

T: cpu的占用时间

退出:q

修改刷新频率:s,默认是3秒

杀死进程:k,默认是第一个

W 保存文件

选项:

-d 刷新时间

-b 显示所有的信息

-n # 指定刷新#次后退出

htop

  • epel源

性能分析

free

 -b 字节
 -k kb
 -m mb
 -g gb
 -h 人类易读方式
 -c # 刷新次数

vmstat

 vmstat [options] [delay [count]]
 [root@s22 ~]#vmstat 1 3 每秒刷新一次,刷新3次
 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  37028 162708      0 808588    0    0     8     6   34   34  0  2 97  0  0
  0  0  37028 162560      0 808588    0    0     0     0 4535 6893  1  5 95  0  0
  0  0  37028 162544      0 808588    0    0     0     0 4463 6772  0  5 95  0  0
 procs:
 r:正在运行的进程个数
 b:阻塞队列的长度
 memory:
 swap: 虚拟内容大小
 free: 空闲物理内存的大小
 buff:用于buff的大小
 cache:用户cache的大小
 swap:
 si:从磁盘交换到内存的数据速率(kb/s)
 so: 从内存交换到磁盘的数据速率(kb/s)
 io:
 bi: 从磁盘读取到系统的速率(kb/s)
 bo: 从系统写入到磁盘的速率(kb/s)
 system:
 in:中断频率
 cs:进程之前切换的频率
 cpu:
 us
 sy
 id
 wa
 st

iostat

查看磁盘读写速度

iostat 1 10

dstat 查看所有

 -c cpu
 -d 硬盘
 -m 内存
 -n 网络
 -p 进程
 -r io请求
 -s swap
 --top-cpu 显示占用cpu最多的进程
 --top-io 显示占用io最多的进程
 --top-mem 显示占用内存最多的进程
 --tcp 显示tcp的信息
 --udp 显示udp的信息

iftop 显示网卡的流量

进程的管理工具

kill

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

查询可用信号:kill -l

常用信号:

1) sighub 不需要关闭程序,重新加载配置文件

2) sigint 终止进程,相当于ctrl+c

9) sigkill 强制杀死进程

15) sigterm 终止正在运行的进程

18)sigcont 继续运行

19)sigstop 后台休眠

按照pid: kill-n pid

按照名称:killall -n name

按照名称:pkill -n name

作业管理

  • 前台作业:一直占用终端的作业

  • 后台作业:不占用当前的终端

让作业运行于后台:

  • ctrl+z 对于启动中

  • command & 也会输出到终端

脱离终端:

  • nohup command &>/dev/null &

  • screen

     -list 查看所有的screen窗口
     -r 进入

安全

防火墙

  • 绿盟

  • 深信服

  • 启明星辰

  • 飞塔

  • 思科

  • 华为

  • 华三

 4表5链
 iptables -L 查看 防火墙策略
 iptables -F 清空 防火墙
 systemctl disable firewalld 开机并启动
 systemctl stop firewalled

selinux

美国国家安全局

  • 配置文件 /etc/selinux/config

  • SELINUX=disabled

  • setenforce 0 临时生效

  • getenforce 查看selinux的状态

rhcea

rhce

rhca

ccnp

ccie

ccia

ocp

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

虚拟环境

安装

 pip3 install virtualenv -i https://pypi.douban.com/simple

创建虚拟环境

 virtualenv --no-site-packages django11 
或virtualenv django12
 --no-site-packages 创建一个全新的python环境
 --python 指定以哪个python来创建虚拟环境

进入虚拟环境

 source envdir/bin/activate 
 source django11/bin/activate

退出虚拟环境

 deactivate

确保环境一致

 在windows上执行如下命令:
 将windows上安装的包做快照
 pip freeze > requirement.txt
 将requirement.txt发送到linux上
 切换虚拟机
 pip install -r requirement.txt -i https://pypi.douban.com/simple

virtualenvwrapper

为了解决虚拟环境管理的问题,因为虚拟环境可以在任何目录下创建

 1. 安装
 pip3 install virtualenvwrapper -i https://pypi.douban.com/simple
 2.修改文件
 vim ~/.bashrc
 export WORKON_HOME=/envdir #设置virtualenv的统一管理目录  
 export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'#添加virtualenvwrapper的参数,生成干净隔绝的环境
 export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3#指定python编辑器      
 source /opt/python36/bin/virtualenvwrapper.sh#安装脚本
 3. 加载~/.bashrc
 source ~/.bashrc
 4.创建环境
 mkvirtualenv django11 创建并切换
 5.进入虚拟环境
 workon name
 6.切换到当前虚拟环境的文件夹
 cdvirtualenv
 7.切换到当前虚拟环境的第三方包的文件夹
 cdsitepackages
 8.退出
 deactivate
 9.列出当前管理的虚拟环境
 lsvirtualenv
 10.列出当前虚拟环境的第三方包
 lssitepackages
 11.删除虚拟环境
 rmvirtualenv 必须要退出才能删除

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
 重新安装yum reinstall -y *.rpm

默认安装位置:/var/lib/mysql

报错信息:

 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
 mysql_secure_installation
 输入root密码
 是否要修改密码
 是否要修改root密码(大小写、数字、特殊字符)
 是否要删除匿名用户
 是否禁止root远程登录
 是否要删除test数据库
 是否要刷新表的权限

密码校验规则

 设置密码的校验规则
 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;

用户授权

 mysql> grant all on *.* to 'root'@'%' identified by '1234';
 Query OK, 0 rows affected, 1 warning (0.00 sec)
 
 mysql> flush privileges;
 Query OK, 0 rows affected (0.00 sec)

mysql主从

主服务器上配置如下

 server-id=1 设置id
 log-bin=/mydata/log/master-bin 启动binlog日志
 sync_binlog = 1 确保主从复制事务安全

主服务器执行如下sql

 mysql> grant replication slave on *.* to 'slave'@'192.168.21.131' identified by '1234';
 Query OK, 0 rows affected, 1 warning (0.00 sec)
 mysql> flush privileges;
 Query OK, 0 rows affected (0.01 sec)
 show master statusG

从服务配置如下:

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

从服务器执行如下sql

 
 CHANGE MASTER TO
   MASTER_HOST='master2.example.com',
   MASTER_USER='replication',
   MASTER_PASSWORD='password',
   MASTER_PORT=3306,
   MASTER_LOG_FILE='master2-bin.001',
   MASTER_LOG_POS=4,
   MASTER_CONNECT_RETRY=10; #监控主服务器的时间
 # 连接主库
 change master to master_host='192.168.21.128',master_user='slave',master_password='1234';
 # 启动进程
 start slave;
 # 查看状态
 show slave statusG

 

问题:

 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.
 解决办法:
 rm -rf /mydata/mysql/auto.cnf
 启动mysql:systemctl restart mysqld

mysql备份与恢复

原文地址:https://www.cnblogs.com/zhang-da/p/12402233.html