一, 定时任务
crontab -e 定时任务编写
crontab -l 查看定时任务
##以同步系统时间为例
crontab -e (出现文本编辑框,编辑内容如下)
#同步系统时间,作者:美丽的雪儿 时间:2020.0809 本行相当于注释信息
* * * * * /usr/sbin/ntpdate ntp.aliyun.com &>/dev/null
分时日月周,注意空格分开,一定是命令的绝对路径,定时任务,结果输出到一个文件中,否则占用磁盘内存过大,再就是索引号占用太多
用到两个配置
1, /var/spool/mail/root
[root@babysnow ~]# ll /var/spool/mail/root
-rw-------. 1 root mail 27940 8月 9 23:17 /var/spool/mail/root
如果不把输出结果放到一个文件夹,注意以上的27940变化,会越来越大
这时候可以 systemctl stop postfix 关掉邮件服务
需要打开的话 systemctl start postfix 关掉邮件服务
2, /var/log/cron
可以查看定时任务的更新
[root@babysnow ~]# tailf /var/log/cron
Aug 9 23:21:01 babysnow CROND[67416]: (root) CMD (/usr/sbin/ntpdate ntp.aliyun.com &>/dev/null)
Aug 9 23:22:02 babysnow CROND[67469]: (root) CMD (/usr/sbin/ntpdate ntp.aliyun.com &>/dev/null)
Aug 9 23:23:01 babysnow CROND[67521]: (root) CMD (/usr/sbin/ntpdate ntp.aliyun.com &>/dev/null)
Aug 9 23:23:22 babysnow crontab[67541]: (root) BEGIN EDIT (root)
Aug 9 23:23:40 babysnow crontab[67541]: (root) END EDIT (root)
Aug 9 23:24:01 babysnow CROND[67576]: (root) CMD (/usr/sbin/ntpdate ntp.aliyun.com &>/dev/null)
Aug 9 23:25:01 babysnow CROND[67631]: (root) CMD (/usr/sbin/ntpdate ntp.aliyun.com &>/dev/null)
ll /var/spool/postfix/maildrop/
如果没有把输出结果放在一个文件夹,打开以上会随着定时任务数据的产生创建文件夹,文件夹里的内容就是定时任务的数据,导致索引号会过多而磁盘空间变少
#同步系统时间,作者:美丽的雪儿 时间:2020.0809
* * * * * /usr/sbin/ntpdate ntp.aliyun.com &>/dev/null
#注释随便写
* * * * * /usr/bin/date + \%F>> /dev/cron/cron.txt
以上执行的命令中有特殊符号,一定加加转义符,vim里和bash里的符号不一致
--脚本进行备份
## 前期准备
[root@localhost ~]# mkdir /beifen
[root@localhost ~]# vim /beifen/jiaoben.sh
[root@localhost ~]# touch /huishouzhan/huishou
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
## 脚本编辑
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin --改变环境变量,路径输出
# 准备备份目录
mkdir -p /backup
#开始备份
cd /
tar zcf /backup/$(date +%F_%T)_$(ip a|awk '{NR==9}|sed -r 's#(.*et)(.*)()/.*)#\2#')_etc.tar.gz etc
cd -
#删除7天以前的数据
find /backup -type f -mtime +7 -name "*.tar.gz" -delete
关于PATH的作用:
(PATH说简单点就是一个字符串变量,当输入命令的时候LINUX会去查找PATH里面记录的路径。比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls这个命令根本不在这个两个目录下,事实上当你输入命令的时候LINUX会去/bin,/usr/bin,/sbin等目录下面去找你此时输入的命令,而PATH的值恰恰就是/bin:/sbin:/usr/bin:……。其中的冒号使目录与目录之间隔开。) --来源于百度
相关配置文件
/etc/profile
.bashrc
~ 然后执行脚本
[root@localhost ~]# sh /beifen/jiaoben.sh
## 定时任务编辑
[root@localhost ~]# crontab -e
# 备份系统文件
* * * * * /bin/bash /beifen/jiaoben.sh>>/huishouzhan/huishou
~
~
## 查看定时任务日志
[root@localhost ~]# tailf /var/log/cron
Aug 11 12:01:01 localhost run-parts(/etc/cron.hourly)[2522]: finished 0anacron
Aug 11 12:02:01 localhost CROND[2529]: (root) CMD (/bin/bash /beifen/jiaoben.sh>>/huishouzhan/huishou)
Aug 11 12:03:01 localhost CROND[2539]: (root) CMD (/bin/bash /beifen/jiaoben.sh>>/huishouzhan/huishou)
Aug 11 12:04:01 localhost CROND[2550]: (root) CMD (/bin/bash /beifen/jiaoben.sh>>/huishouzhan/huishou)
Aug 11 12:05:01 localhost CROND[2563]: (root) CMD (/bin/bash /beifen/jiaoben.sh>>/huishouzhan/huishou)
## 查看定时任务系统邮件
[root@localhost ~]# cat /var/spool/cron/root
# 备份系统文件
* * * * * /bin/bash /beifen/jiaoben.sh>>/huishouzhan/huishou
## 查看备份信息
[root@localhost ~]# ll /backup/
total 173728
-rw-r--r--. 1 root root 22236124 Aug 11 11:58 2020-08-11_11:58:01__etc.tar.gz
-rw-r--r--. 1 root root 22236124 Aug 11 11:58 2020-08-11_11:58:50__etc.tar.gz
-rw-r--r--. 1 root root 22236124 Aug 11 11:59 2020-08-11_11:59:01__etc.tar.gz
-rw-r--r--. 1 root root 22236124 Aug 11 12:00 2020-08-11_12:00:01__etc.tar.gz
-rw-r--r--. 1 root root 22236124 Aug 11 12:01 2020-08-11_12:01:01__etc.ta.gz
-rw-r--r--. 1 root root 22236124 Aug 11 12:02 2020-08-11_12:02:01__etc.tar.gz
-rw-r--r--. 1 root root 22236124 Aug 11 12:03 2020-08-11_12:03:01__etc.tar.gz
-rw-r--r--. 1 root root 22236124 Aug 11 12:04 2020-08-11_12:04:01__etc.tar.gz
二,磁盘管理
磁盘分类:
HDD机械硬盘:传统磁盘,主要由磁头,盘片和盘片转轴组成
SSD固态硬盘:固态电子存储芯片制列而成
磁盘结构:
盘片 两面
磁道 同心圆
磁头 读写数据
扇区 最小的存储单位 512字节
柱面
## 区别
HDD机械硬盘:体积大容量大,寿命无线使用,读写性能差,抗极大能力差,数据恢复容易
SSD 固态硬盘:容量小价格贵,使用寿命有限(格式化2w次左右),读写能力快,抗击打能力强,数据恢复难
磁盘的接口:
主要SATA SAS 企业使用 IDE,SCSI 已淘汰
固态 PCIE
磁盘单位的专业术语:
尺寸: 2.5英寸 3.5英寸
单位:bit b B KB MB GB TB PB
1B=8bite 8个二进制
1B=1024b 以此类推都是1024,1MB=1024KB
三 ,磁盘分区
查看磁盘信息 fdisk -l 或 lsblk
## 添加磁盘需要关闭虚拟机,设置里增加磁盘,重启
## 查看dev下面的磁盘信息
fdisk -l /dev/sd*
(sd开头的是物理磁盘,vd开头的是虚拟磁盘)
## 增加完磁盘查看
[root@localhost opt]# lsblk 或 fdisk -l
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk -第一块磁盘
├─sda1 8:1 0 500M 0 part /boot -第一块磁盘的第一个分区
├─sda2 8:2 0 1G 0 part [SWAP] -第一块磁盘的第二个分区
└─sda3 8:3 0 98.5G 0 part /
sdb 8:16 0 100G 0 disk -第二块磁盘
sdc 8:32 0 50G 0 disk -第三块磁盘
sr0 11:0 1 4.5G 0 rom -镜像
## 给sdb分区
[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x7420e313.
Command (m for help): n --新建分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p --基本区
Partition number (1-4, default 1): --默认
First sector (2048-209715199, default 2048): --默认
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199): +20G --注意格式+容量
Partition 1 of type Linux and of size 20 GiB is set
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e --新建扩展区
Partition number (2-4, default 2): 4 --前三是基本区,数字4扩展区好辨认
First sector (41945088-209715199, default 41945088):
Using default value 41945088
Last sector, +sectors or +size{K,M,G} (41945088-209715199, default 209715199): +50G
Partition 4 of type Extended and of size 50 GiB is set
Command (m for help): w --保存
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
## (MBR分区表是针对GTB以下容量分区,4个分区,三个基本区,一个扩展区,扩展区不能直接使用,下面可建逻辑区;
GPR分区表针对2TB以上分区,有128个分区) ##
## MBR位置 0磁头0磁道1扇区 512字节
##分完区查看磁盘分区情况
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 500M 0 part /boot
├─sda2 8:2 0 1G 0 part [SWAP]
└─sda3 8:3 0 98.5G 0 part /
sdb 8:16 0 100G 0 disk
├─sdb1 8:17 0 20G 0 part
└─sdb4 8:20 0 1K 0 part
sdc 8:32 0 50G 0 disk
sr0 11:0 1 4.5G 0 rom
## 磁盘格式化
[root@localhost ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=1310720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242880, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
四, 磁盘的其他知识点
磁盘怎么用 ---------------------
## 把磁盘挂载在mnt下
[root@localhost ~]# mount /dev/sdb1 /mnt/ --保证mnt为空目录
## 查看磁盘挂载状态
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.6M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda3 99G 1.6G 97G 2% /
/dev/sda1 497M 124M 373M 25% /boot
tmpfs 199M 0 199M 0% /run/user/0
/dev/sdb1 20G 33M 20G 1% /mnt
## 把文件复制到opt下
[root@localhost ~]# cp /etc/passwd /mnt/
## 查看opt下文件
[root@localhost ~]# ll /mnt/
total 4
-rw-r--r--. 1 root root 1284 Aug 11 10:59 passwd
## 移除挂载
[root@localhost ~]# umount /dev/sdb1
## 新建一个空目录
[root@localhost ~]# mkdir /opt/guazai
## 再把第二块磁盘的第一个分区sdb1挂载到新建的空目录下
[root@localhost ~]# mount /dev/sdb1 /opt/guazai/
## 查看该空目录下的文件,即出现之前步骤中复制的文件
[root@localhost ~]# ll /opt/guazai/
total 4
-rw-r--r--. 1 root root 1284 Aug 11 10:59 passwd
## 统计当前目录占用空间大小 du -sh
[root@localhost ~]# du -sh
16M
## 查看当前目录下的文件大小 du -sh --time *
[root@localhost ~]# du -sh --time *
4.0K 2020-07-29 15:29 10.txt.gz
0 2020-08-04 12:03 111.txt
4.0K 2020-08-05 14:51 aaa.tar.gz
4.0K 2020-07-29 15:25 aaa.txt
4.0K 2020-08-04 16:13 aaa.txt.tt
4.0K 2020-08-04 12:46 aa.txt
....
## 查看磁盘的uuid
[root@localhost ~]# blkid
/dev/sda1: UUID="8730b338-55bb-47f4-843b-ea9b6bd346b2" TYPE="xfs"
/dev/sda2: UUID="7428122b-e41a-47dc-898d-46ecf3e76c1d" TYPE="swap"
/dev/sda3: UUID="10bad2aa-8d05-4a26-bcc9-1cfefd326eb0" TYPE="xfs"
/dev/sdb1: UUID="26b72fcd-9fe4-4318-b9fb-57d1731df86a" TYPE="xfs"
/dev/sdc1: PTTYPE="dos"
/dev/sr0: UUID="2020-04-22-00-54-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
## 这个文件夹,可以把磁盘永久挂载,vim进去即可
[root@localhost ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Jul 16 15:42:30 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=10bad2aa-8d05-4a26-bcc9-1cfefd326eb0 / xfs defaults 0 0
UUID=8730b338-55bb-47f4-843b-ea9b6bd346b2 /boot xfs defaults 0 0
UUID=7428122b-e41a-47dc-898d-46ecf3e76c1d swap swap defaults 0 0
swap 虚拟内存 磁盘的分区,属于磁盘空间
当物理内存不足临时充当内存
OOM ,即 out of memory 内存不足,内存溢出
## 查看内存容量
[root@babyzzz ~]# free -m
total used free shared buff/cache available
Mem: 972 145 336 7 490 620
Swap: 1023 0 1023
## 关闭内存
[root@babyzzz ~]# swapoff -a
[root@babyzzz ~]# free -m
total used free shared buff/cache available
Mem: 972 146 335 7 489 619
Swap: 0 0 0
## 开启内存
[root@babyzzz ~]# swapon -a
## 给swap分区
[root@babyzzz ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 500M 0 part /boot
├─sda2 8:2 0 1G 0 part [SWAP]
└─sda3 8:3 0 18.5G 0 part /
sdb 8:16 0 50G 0 disk
├─sdb1 8:17 0 5G 0 part
├─sdb4 8:20 0 1K 0 part
└─sdb5 8:21 0 5G 0 part
sdc 8:32 0 100G 0 disk
sr0 11:0 1 1024M 0 rom
## 和之前分区一样步骤
[root@babyzzz ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): p
分区号 (2,3,默认 2):
起始 扇区 (31459328-104857599,默认为 31459328):
将使用默认值 31459328
Last 扇区, +扇区 or +size{K,M,G} (31459328-104857599,默认为 104857599):+2G
分区 2 已设置为 Linux 类型,大小设为 2 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
## 把sdb2变成swap
[root@babyzzz ~]# mkswap /dev/sdb2
正在设置交换空间版本 1,大小 = 2097148 KiB
无标签,UUID=c697d512-dba8-4c8a-8c8b-96cb56595649
[root@babyzzz ~]# swapon /dev/sdb2
[root@babyzzz ~]# free -m
total used free shared buff/cache available
Mem: 972 147 335 7 489 618
Swap: 3071 0 3071
## 查看总内存大小
[root@babyzzz ~]# swapon -s
文件名 类型 大小 已用 权限
/dev/sda2 partition 1048572 0 -2
/dev/sdb2 partition 2097148 0 -3
##取消
[root@babyzzz ~]# swapoff /dev/sdb2
[root@babyzzz ~]# free -m
total used free shared buff/cache available
Mem: 972 146 336 7 489 620
Swap: 1023 0 1023
五, 磁盘RAID
使用RAID的好处:
1,得到更好的容量
2,得到高好的性能
3,得到更好的冗余(备份)
RAID级别:
硬盘数量 容量 性能 冗余 应用场景
RAID 0 条带卷 至少2块 最大(之和) 读写最快 0 只要求速度,不要求安全
RAID 1 镜像卷 只能2块 一半 读正常,写很慢(写2次) 50% 只要求安全,不要求速度
RAID 5 校验卷 至少三块 损失一块 读写比1稍快 1/n 对安全速度要求都不高
RAID 10 镜像陈列条带卷 只能4块 一半 读写很快,比0慢 50% 对安全速度都很高
性能:0最好,其次10、5、1
安全:1最好,其次10、5、0
成本:0最实惠,其次5、 1 、10
磁盘故障:
inode(索引号)满
block(数据空间)满
## inode满 创建文件数量限制
[root@localhost ~]# find / -type d -size +20k -exec ls -lhd {} \;
dr-xr-xr-x. 2 root root 24K Aug 10 14:59 /usr/bin
dr-xr-xr-x. 41 root root 24K Aug 10 14:59 /usr/lib64
drwxr-xr-x. 2 root root 32K Aug 10 14:59 /usr/share/man/man1
drwxr-xr-x. 2 root root 36K Jul 29 12:21 /usr/share/man/man3
drwxr-xr-x. 2 root root 28K Aug 5 10:07 /usr/share/man/man8
## 查看筛选出的目录下的文件有多少
[root@localhost ~]# ll /usr/share/man/man8|wc -l
718
[root@localhost ~]# ll /usr/share/man/|wc -l
44
[root@localhost ~]# ll /usr/share/|wc -l
85
## 查看文件系统的相关信息
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.6M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda3 99G 4.3G 95G 5% /
tmpfs 199M 0 199M 0% /run/user/0
/dev/sdb1 20G 33M 20G 1% /opt/guazai
## 查看inode号使用数据
[root@localhost ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 250809 407 250402 1% /dev
tmpfs 253484 1 253483 1% /dev/shm
tmpfs 253484 743 252741 1% /run
tmpfs 253484 16 253468 1% /sys/fs/cgroup
/dev/sda3 51648000 37912 51610088 1% /
tmpfs 253484 1 253483 1% /run/user/0
/dev/sdb1 10485760 4 10485756 1% /opt/guazai
## block满,查找目录下大于G单位文件,再做处理
[root@localhost ~]# du -sh /etc/* |grep G 这一步有待考究 ,筛选出的不是G单位???
4.0K /etc/GREP_COLORS
或
[root@babyzzz ~]# find / -type d -size +15k查找文件或者大的目录
六, 进程介绍
程序:静态,一堆代码或者数据的集合
进程:动态,程序运行的过程,有生命周期
进程的运行,系统会为其分配内存,ID PID PPID 运行的状态 环境变量 进程标识符
fo查看命令生成多个子进程,子进程会执行具体的任务,父进程进入等待,子进程处理完毕后,向父进程交任务然后退出,
子进程运行过程中,父进程非正常退出,子进程就没有人进行管理,就会变成僵尸进程
实时进程:一直运行到退出才会释放cpu,类似打开的网页游戏,优先级是1-99
priority(PR) 优先级:动态优先级,实时进程
NICE(NI):静态优先级 100-139,非实时进程
普通进程:NICE值简称NI值,-20-40,值越小系统优先级越高,也就是100-139
##
守护进程:ps -x
普通进程:ps 或 带参数的其他ps命令
后台进程:jobs 或 前面的上述的那些命令
fg :将后台中的命令调至前台继续运行
##
& :这个用在一个命令的最后,可以把这个命令放到后台执行
ctrl + z :可以将一个正在前台执行的命令放到后台,并且暂停
jobs :查看当前有多少在后台运行的命令
为什么要有进程优先级?
----进程执行占用cpu,有的进程重要,有的进程不重要
七, 进程的状态
ps
选项:
-a 查看所有进程
-u 显示有效用户和id信息
-x 显示没有终端的进程
## 静态ps
root@babyzzz ~]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
VSZ 虚拟内存集
RSS 物理内存集
ps -ef x显示父进程pid
动态top
[root@babyzzz ~]# top
top - 21:04:59 up 3:38, 3 users, load average: 0.00, 0.01, 0.05
Tasks: 98 total, 2 running, 96 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 995896 total, 455176 free, 143064 used, 397656 buff/cache
KiB Swap: 1048572 total, 1048572 free, 0 used. 654976 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
top 内部指令
P 以cpu使用率进行排序
M 以内存使用率进行排序
q 退出
top -d 1刷新时间 1s刷新一次
top -p 1 指定uid 为1
top -u root 指定用户root
## htop 有颜色,和top一样,可以用鼠标点,或者glance
八 ,管理进程状态
kill
-1 加载
-9 强制终止进程
-15 默认 终止进程
## 执行top
[root@babyzzz ~]# top
## 查看所有进程过滤出top,可以看到top的pid
[root@babyzzz ~]# ps -aux|grep top
root 15125 0.1 0.2 161880 2192 pts/1 S+ 21:04 0:01 top
root 15174 0.0 0.0 112724 988 pts/2 R+ 21:19 0:00 grep --color=auto top
##
[root@babyzzz ~]# kill 15125
## 再次查看,没有了~
[root@babyzzz ~]# ps -aux|grep top
root 15176 0.0 0.0 112724 988 pts/2 R+ 21:21 0:00 grep --color=auto top
killall 根据进程ID,精确匹配
[root@babyzzz ~]# killall top
pkill 模糊(终极)杀手,进程名称终止,包含这个名称的进程都会终止
!!⚠️危险
九, 后台进程管理
如果在备份数据或者在执行cp命令,网络原因中断
[root@babyzzz ~]# nohup tar zcf aaa.tar.gz /etc &
中断后再次连接,
[root@babyzzz ~]# ps -aux |grep tar 会显示未完成的tar命令进程
jobs 命令,查看正在后台运行的指令
查看进程中是T的,是暂停进程,如果要继续运行
fg %对应的编号
ctrl+z 在后台停止
[root@babyzzz ~]# jobs
[1]+ 已停止 top
[root@babyzzz ~]# fg %1 让前台的程序继续在前台执行
[root@babyzzz ~]# bg %1 让后台程序继续在后台继续执行
[1]+ top &
[root@babyzzz ~]# yum install -y screen
## 显示后台列表 [root@babyzzz ~]# screen -list No Sockets found in /var/run/screen/S-root.
重要!!!!!!
sreen -S 新打开一个窗口 自定义名称
screen -r 进入这个窗口
screen -x 进入后台窗口 查看另一个窗口的操作
sreen -S vim
ctrl a+d 临时退出界面
exit 真正退出
十, 系统平均负载
单位时间内,系统正在运行或者不可中断的数量,进程的活跃数
查看负载值命令:
uptime
top
w
load average的输出值 load average:1.76, 2.14, 2.20 分别代表1分钟,5分钟,10分钟
首先要知道cpu的个数
比如CPU的核心数是4,输出值是2, 那么负载为2除以4=50%
比如CPU的核心数是2,输出值是2, 那么负载为2除以2=100%
比如CPU的核心数是1,输出值是2, 那么负载为2除以1=200% 代表超负载
#
就是说输出值如果大于CPU核心数,说明CPU繁忙,负载很高,可能会影响系统性能输出
如果小于CPU核心数,表示CPU较空闲
#
如果一份的值大于5分钟大于15分钟的值,说明之前的系统负载时平稳的,最近一分钟负载过高
如果一份的值小于5分钟大于15分钟的值,说明之前的系统负载过高,最近一分钟是平稳的
十一, 开机流程及运行级别
系统开机启动流程:
1,电源
2,BIOS自检 (坚持机器硬盘,内存,CPU等设备,系统报错就没法正常启动)
3,MBR引导
4,GRUB菜单
5,内核加载
6,运行系统管理进程 (0-6, 7个级别)
7,读取系统管理级别
8,系统初始化
9,开启系统开机自启动服务 并启动
10,运行getty进程,进入登录界面 (getty即终端)
系统的运行级别:
[root@localhost etc]# ll /usr/lib/systemd/system/runlevel*.target
lrwxrwxrwx. 1 root root 15 Jul 16 15:43 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 Jul 16 15:43 /usr/lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 Jul 16 15:43 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Jul 16 15:43 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Jul 16 15:43 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 Jul 16 15:43 /usr/lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 Jul 16 15:43 /usr/lib/systemd/system/runlevel6.target -> reboot.target
0 关机
1 单用户 root权限,用于系统维护,禁止远程登陆
2 多用户 (无网络)
3 多用户 (有网络,Linux系统级别为3)
4 多用户 系统未使用 保留
5 图形界面
6 重启
十二,系统管理
systemctl命令 , 以nginx为例
systemctl start nginx 启动
systemctl stop nginx 停止
systemctl status nginx 状态
systemctl restart nginx 重启
systemctl reload nginx 平缓重启(改变了配置,但是不重启)
systemctl enable 开机自启动
systemctl disable 取消开机自启动
systemctl mask 禁止服务
systemctl unmask 解除禁止
##Active: 状态有
inactive (dead) 运行中
inactive (dead) 没有运行
failed 启动失败(改变了错误配置会提示)
## 开启开机自启动
[root@localhost ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
## 查看状态会出现enable
[root@localhost ~]# systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: inactive (dead)
## 开启开机自启动
[root@localhost ~]# systemctl disable nginx
Removed symlink /etc/systemd/system/multi-user.target.wants/nginx.service.
[root@localhost ~]# systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: inactive (dead)
## 改变配置文件
[root@localhost ~]# vim /etc/nginx/nginx.conf
## 查看当前运行级别的服务的状态
[root@localhost ~]# systemctl list-unit-files
## 打开nginx配置,故意改错个东西
[root@localhost ~]# vim /etc/nginx/nginx.conf
[1]+ Stopped systemctl list-unit-files
## 重启nginx,会有报错提示
[root@localhost ~]# systemctl restart nginx
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
## 按照提示查看,会显示报错的行和错误提示,第五行的“ser”不识别
[root@localhost ~]# journalctl -xe
...
--
-- Unit nginx.service has begun starting up.
Aug 12 14:29:04 localhost.localdomain nginx[22440]: nginx: [emerg] unknown directive "ser" in /etc/nginx/nginx.conf:5
Aug 12 14:29:04 localhost.localdomain nginx[22440]: nginx: configuration file /etc/nginx/nginx.conf test failed
Aug 12 14:29:04 localhost.localdomain systemd[1]: nginx.service: control process exited, code=exited status=1
Aug 12 14:29:04 localhost.localdomain systemd[1]: Failed to start The nginx HTTP and reverse proxy server.
-- Subject: Unit nginx.service has failed
...
## 实时查看日志服务,/var.log/message的快捷键
[root@localhost ~]# journalctl -f
## 显示最后20行
[root@localhost ~]# journalctl -n 20 -f
## 指定查看nginx的日志
[root@localhost ~]# journalctl -u nginx
[root@localhost ~]# journalctl -p
alert crit debug emerg err info notice warning
## 查看错误的日志
[root@localhost ~]# journalctl -p err
-- Logs begin at Mon 2020-08-10 17:03:01 CST, end at Wed 2020-08-12 14:29:04 CST. --
Aug 10 17:03:02 localhost.localdomain kernel: sd 0:0:0:0: [sda] Assuming drive cache: write through
Aug 10 17:03:02 localhost.localdomain kernel: sd 0:0:1:0: [sdb] Assuming drive cache: write through
## 查看主机相关信息
[root@localhost ~]# hostnamectl
Static hostname: localhost.localdomain
Icon name: computer-vm
Chassis: vm
Machine ID: 82bee73de0754fffa5d872ab99d4d0f7
Boot ID: 0e166f2c86124349b2777b2910eea254
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1127.el7.x86_64
Architecture: x86-64
## 改主机名
[root@localhost ~]# hostnamectl set-hostname zzz
[root@localhost ~]# hostnamectl
Static hostname: zzz
Icon name: computer-vm
Chassis: vm
Machine ID: 82bee73de0754fffa5d872ab99d4d0f7
Boot ID: 0e166f2c86124349b2777b2910eea254
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1127.el7.x86_64
Architecture: x86-64
[root@localhost ~]# cat /etc/hostname
zzz
退出重新登陆...再次登录
[root@zzz ~]#
改字符集
[root@zzz ~]# cat /etc/locale.conf
LANG="en_US.UTF-8"
[root@zzz ~]# localectl set-locale LANG=... 字符集待定考究
十三, 单用户和救援模式
root忘记密码
[root@zzz ~]# echo $RANDOM|passwd --stdin root
1,关机
2,开机
开机界面按e进入grub菜单
3,linux16开头的行,quiet后面加上 init=/bin/bash enforcing=0 (这一步是关闭selinux)
4,按ctrl+x 进入下一个页面 单用户模式
5,重新挂载 跟/ 分区, mount -o rw,remount /
6,重新设置密码
7,vim /etc/sysconfig/selinux selinux=disable (不然每次登陆都需要重新挂载)
8,exec /sbin/init (单用户关机重启命令)
就可以连接了~~~·
救援模式(当系统损坏,数据很重要,无法开机)
1,关机
2,开机处电击 -->打开电源时进入固件
3,选boot 下面的都一个 CD-ROM Drive 按F10 yes
4,进入救援模式 troubleshooting
5,选择故障排除模式 rescue a centos system
6,选择继续,continue 就是1 回车
7,chroot /mnt/ sysimage
执行任务,比如cp /opt
执行完exit退出
poweroff
##再开机还是进入救援模式。需要改过来
1,开机处电击 -->打开电源时进入固件
2,选Removable Devices 保存
3,正常启动
更改网卡名称
命名规则:
net.ifnames=1 默认1,启动
biosdevname=0
传统命名方式:eth0 eth1
若要更改为传统模式
net.ifnames=0
biosdevname=0
##命令行修改
1, cd /etc/sysconfig/network-scripts/
2, mv ifcfg-enss33 ifcfg-eth0
继续执行如下:
sed -i 's#enss33#etho#g' ifcfg-eth0
cd
vim /etc/sysconfig/gurb
倒数第二行biosdevname=0的前面加上net.ifnames=o
grub2.mkconfig -o /boot/grub2/grub.cfg
reboot