安装:https://jingyan.baidu.com/album/066074d618020bc3c21cb0c1.html?picindex=5
0.linux的开关机的命令:
将数据同步写入硬盘:sync
惯用的关机命令:shutdown
shutdown -h now ---------------------立刻关机,now相当于时间为0
shutdown -h 10 ’ I wil shutdown after 10 mins’—告诉大家这台机器要在十分钟后关机,并且显示在登录者屏幕前方;
shutdown -r now-----------------------系统立刻重启
shutdown -r 30 -------------------’ the system will reboot after 30 mins’
shutdown -h 20:25-----------------系统在今天的20:25分关机,若在21:25才执行此命令,则隔天才关机
shutdown -k now ‘this system will reboot’-------------仅发出警告信息的参数,系统并不会关机;
重启、关机:reboot halt poweroff
系统运行级别
run level 0:关机
run level 3 :纯命令行模式
run level 5 :含有图形界面模式
run level 6: 重启
1.linux用户密码保存在哪里?
1、linux用户密码存储在/etc/shadow,格式为(以“:”为分割符),密码文件与用户文件相对应
检查:cat /etc/shadow
shadow的每一行是一个用户,其含义是:
1)用户名
2)加密的密码
3)上次更改密码的日期(从1970-1-1开始)
4)最短密码期限(按天计算,0 = 无最短期限)
5)最长密码期限(按天计算)
6)密码警告期限(按天计算,0 = 未指定警告)
7)密码非活动期限(按天计算)
8)账号到期时间(从1970-1-1开始)
9)保留域
/etc/shadow 由 pwconv 命令根据/etc/passwd中的数据自动产生
2、检查linux用户:cat /etc/passwd
2.linux系统上备份有哪两种模式
在Linux系统上做备份可以有两种类型:系统备份和用户备份 。其中前者是指对 操作系统 的备份,后者是指对 应用程序和用户文件的备份。
3.想用数据库“读写分离” 请先明白“读写分离”解决什么问题
1.什么是读写分离?
其实就是将数据库分为了主从库,一个主库用于写数据,多个从库完成读数据的操作,主从库之间通过某种机制进行数据的同步,是一种常见的数据库架构。一个组从同步集群,通常被称为是一个“分组”。
2.数据库分组架构解决什么问题?
大多数互联网业务,往往读多写少,这时候,数据库的读会首先称为数据库的瓶颈,这时,如果我们希望能够线性的提升数据库的读性能,消除读写锁冲突从而提升数据库的写性能,那么就可以使用“分组架构”(读写分离架构)。用一句话概括,读写分离是用来解决数据库的读性能瓶颈的。
但是,不是任何读性能瓶颈都需要使用读写分离,我们还可以有其他解决方案。
在互联网的应用场景中,常常数据量大、并发量高、高可用要求高、一致性要求高,如果使用“读写分离”,就需要注意这些问题:
数据库连接池要进行区分,哪些是读连接池,哪个是写连接池,研发的难度会增加;
为了保证高可用,读连接池要能够实现故障自动转移;
主从的一致性问题需要考虑。
在这么多的问题需要考虑的情况下,如果我们仅仅是为了解决“数据库读的瓶颈问题”,为什么不选择使用缓存呢?
为什么呢?
缓存的使用成本要比从库少非常多;
缓存的开发比较容易,大部分的读操作都可以先去缓存,找不到的再渗透到数据库。
当然,如果我们已经运用了缓存,但是读依旧还是瓶颈时,就可以选择“读写分离”架构了。简单来说,我们可以将读写分离看做是缓存都解决不了时的一种解决方案。
3.数据库事务
数据库事务(简称:事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。(这些操作序列是要么全做要么全不做,是一个不可分割的工作单位)
1. 为数据库操作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。
2. 当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。
当事务被提交给了DBMS(数据库管理系统),则DBMS(数据库管理系统)需要确保该事务中的所有操作都成功完成且其结果被永久保存在数据库中,如果事务中有的操作没有成功完成,则事务中的所有操作都需要被回滚,回到事务执行前的状态;同时,该事务对数据库或者其他事务的执行无影响,所有的事务都好像在独立的运行。
但在现实情况下,失败的风险很高。在一个数据库事务的执行过程中,有可能会遇上事务操作失败、数据库系统/操作系统失败,甚至是存储介质失败等情况。这便需要DBMS对一个执行失败的事务执行恢复操作,将其数据库状态恢复到一致状态(数据的一致性得到保证的状态)。为了实现将数据库状态恢复到一致状态的功能,DBMS通常需要维护事务日志以追踪事务中所有影响数据库数据的操作。
ACID性质编辑
主条目:ACID
并非任意的对数据库的操作序列都是数据库事务
。数据库事务拥有以下四个特性,习惯上被称之为ACID特性。
原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。
一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束。
隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中。
4.linux权限问题:
常见的权限表示形式有:
-rw------- (600) 只有拥有者有读写权限。
-rw-r–r-- (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) 只有拥有者有读、写、执行权限。
-rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx–x--x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) 所有用户都有文件读、写权限。
-rwxrwxrwx (777) 所有用户都有读、写、执行权限。
5.Linux查看CPU和内存使用情况
1. top命令
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 – 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。
内容解释:
第一行(top):
02:48:45 系统当前时刻
39 min 系统启动后到现在的运作时间
1 users 当前登录到系统的用户,更确切的说是登录到用户的终端数 – 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目
load average 当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程
第二行(Tasks):
106 total 当前系统进程总数
1 running 当前运行中的进程数
105 sleeping 当前处于等待状态中的进程数
0 stoped 被停止的系统进程数
0 zombie 僵尸进程数
第三行(Cpus):
0.0 % us 用户空间占用CPU百分比
0.0 % sy 内核空间占用CPU百分比
0.0 % ni 用户进程空间内改变过优先级的进程占用CPU百分比
100.0 % id 空闲CPU百分比
0.0 % wa 等待输入输出的CPU时间百分比
0.0% hi
0.0% si
0.0% st
第四行(Mem):
995896 total 物理内存总量
698272 used 使用的物理内存总量
139592 free 空闲内存总量
158032 buffers 用作内核缓存的内存量
第五行(Swap):
表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。
2097148 total 交换区总量
2097148 free 使用的交换区总量
0 used空闲交换区总量
683428 avail mem 缓冲的交换区总量
最下部分的进程列表栏:
以 PID 区分的进程列表将根据所设定的画面更新时间定期的更新。通过 top 内部命令可以控制此处的显示方式:
PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称
top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下表:
s- 改变画面更新频率
l - 关闭或开启第一部分第一行 top 信息的表示
t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m - 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
N - 以 PID 的大小的顺序排列表示进程列表(第三部分后述)
P - 以 CPU 占用率大小的顺序排列进程列表 (第三部分后述)
M - 以内存占用率大小的顺序排列进程列表 (第三部分后述)
h - 显示帮助
n - 设置在进程列表所显示进程的数量
q - 退出 top
s -改变画面更新周期
2.ps命令
ps命令用于报告当前系统的进程状态。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
F 代表这个程序的旗标 (flag), 4 代表使用者为 super user;
S 代表这个程序的状态 (STAT);
PID 程序的 ID ;
C CPU 使用的资源百分比
PRI 这个是 Priority (优先执行序) 的缩写;
NI 这个是 Nice 值。
ADDR 这个是 kernel function,指出该程序在内存的那个部分。如果是个 running # 的程序,一般就是『 - 』
注意:本文没有以下功能可能是虚拟机版本问题(
SZ 使用掉的内存大小;
WCHAN 目前这个程序是否正在运作当中,若为 - 表示正在运作;
TTY 登入者的终端机位置;
)
TIME 使用掉的 CPU 时间。
CMD 所下达的指令
3.pmap命令
pmap命令用于报告进程的内存映射关系
$ pmap -d 16613
4.free命令
free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。(men和swap 的关系介绍:https://blog.csdn.net/weixin_41950473/article/details/84879651)
下面是对这些数值的解释:
total: 总计物理内存的大小。
used: 已使用多大。
free: 可用有多少。
Shared: 多个进程共享的内存总额。
Buffers/cached: 磁盘缓存的大小。
available : 可利用大小
6.netstat:网络状态查看命令
[root@localhost ~]# netstat [选项]
选项:
-a:列出所有网络状态,包括 Socket 程序;
-c秒数:指定每隔几秒刷新一次网络状态;
-n:使用 IP 地址和端口号显示,不使用域名与服务名;
-p:显示 PID 和程序名;
-t:显示使用 TCP 协议端口的连接状况;
-u:显示使用 UDP 协议端口的连接状况;
-I:仅显示监听状态的连接;
-r:显示路由表;