导图社区 云计算基础
云计算基础:文件大小用byte来表示,而空目录一般都是1024byte,当然可以用其它参数使文件显示的单位不同,如使用ls –k就是用kb莱显示一个文件的大小单位,不过一般我们还是以byte为主。
编辑于2022-11-10 09:06:51时间管理-读书笔记,通过学习和应用这些方法,读者可以更加高效地利用时间,重新掌控时间和工作量,实现更高效的工作和生活。
本书是法兰教授的最新作品之一,主要阐明了设计史的来源、设计史现在的状况以及设计史的未来发展可能等三个基本问题。通过对设计史学科理论与方法的讨论,本书旨在促进读者对什么是设计史以及如何写作一部好的设计史等问题的深入认识与反思。
《计算机组成原理》涵盖了计算机系统的基本组成、数据的表示与运算、存储系统、指令系统、中央处理器(CPU)、输入输出(I/O)系统以及外部设备等关键内容。通过这门课程的学习,学生可以深入了解计算机硬件系统的各个组成部分及其相互之间的连接方式,掌握计算机的基本工作原理。
社区模板帮助中心,点此进入>>
时间管理-读书笔记,通过学习和应用这些方法,读者可以更加高效地利用时间,重新掌控时间和工作量,实现更高效的工作和生活。
本书是法兰教授的最新作品之一,主要阐明了设计史的来源、设计史现在的状况以及设计史的未来发展可能等三个基本问题。通过对设计史学科理论与方法的讨论,本书旨在促进读者对什么是设计史以及如何写作一部好的设计史等问题的深入认识与反思。
《计算机组成原理》涵盖了计算机系统的基本组成、数据的表示与运算、存储系统、指令系统、中央处理器(CPU)、输入输出(I/O)系统以及外部设备等关键内容。通过这门课程的学习,学生可以深入了解计算机硬件系统的各个组成部分及其相互之间的连接方式,掌握计算机的基本工作原理。
云计算基础
建议
小知识
Linux重启
reboot
init 6
快速写满磁盘
dd if=/dev/zero of=/mnt/disk2/1.txt bs=1M count=300
每隔1s打印的详细信息
watch -n1 'ls -l test.txt'
man help 快速帮我们了解命令的使用
date 查看时间 修改时间
月 日 时 分 每个2位数 date11041723
云计算进价
mysql
MySQ L下载
官方网站:https://www.mysql.com/
MySQL安装
将下载好的RPM包上传到Linux
rz 选择下载好的tar包
解压RPM
tar xvf [filename]
安装MySQL
卸载CentOS自带的Mariadb
查询是否安装Mariadb
rpm -qa|grep mariadb
卸载Mariadb
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
安装顺序
mysql-community-common-5.7.39-1.el7.x86_64.rpm
mysql-community-libs-5.7.39-1.el7.x86_64.rpm
mysql-community-client-5.7.39-1.el7.x86_64.rpm
mysql-community-server-5.7.39-1.el7.x86_64.rpm
安装命令
rpm -ivh mysql-community-common-5.7.39-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.39-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.39-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.39-1.el7.x86_64.rpm
安装过程的报错解决方案
缺少 net-tools
yum install net-tools
缺少 prel
yum install perl
MySQL启动
常用命令
启动
systemctl start mysqld
停止
systemctl stop mysqld
状态
systemctl status mysqld
重启
systemctl restart mysqld
开机自动启动
systemctl enable mysqld
关闭开机自动启动
systemctl disable mysqld
启动MySQL
systemctl start mysqld
修改MySQL登陆密码
查询初始化密码
cat /var/log/mysqld.log | grep 'password is generated'
修改初始化密码
登陆mysql
mysql -u root -p
修改密码
alter user 'root'@'localhost' identified by 'Cjlr2022!';
授权
授予root所有权限,并且可以远程登陆
grant all privileges on *.* to 'root'@'%' identified by 'Cjlr2022!' with grant option;
刷新权限
flush privileges;
配置防火墙
添加端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重新加载防火墙
firewall-cmd --reload
查询防火墙端口
firewall-cmd --list-ports
nginx
firewall
Oracle
Docker
K8S
云计算基础
系统部署
1.GUN/Linux的历史
自由软件之父 理查德-斯托曼 1984年提出开源概念
Linux之父 林纳斯-本纳第克特-托瓦斯 内核发明人。1991年创造出了这套当今全球最流行的操作系统之一
2.Linux发行版介绍
RHEL Red Hat EnterpriseLinux 红帽Linux商业公司
CentOS Community EnterpriseOperating System 社区企业操作系统 免费的商业软件
Ubuntu 乌班图 桌面应用为主的开源GNU/Linux操作系统
Debian Debian社区
3.Linux相关认证介绍RHCE/RHCA
红帽认证工程师
RHCSA 红帽认证系统管理员
RHCE 红帽认证工程师
RHCA 红帽认证架构师
4.Linux系统部署(掌握)
1.安装VMWARE
2.新建虚拟机
3.选择系统镜像
4.填写虚拟机名称和存储位置
5.设置磁盘大小
6.开启虚拟机
7.install Centos7 安装操作系统
8.软件选择
8.开始安装
9.设置root密码
10.同意许可,完成配置
5.知识小文档
服务器分三种
塔式服务器
机架式服务器
刀片服务器
文件和户管理
文件管理
1.目录结构
目录结构
目录结构类型图
boot:存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。
/etc:存放所有的系统需要的配置文件和子目录列表,更改目录下的文件可能会导致系统不能启动。
/lib:存放基本代码库(比如c++库),其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中
指令集合:
/bin:存放着最常用的程序和指令
/sbin:只有系统管理员能使用的程序和指令。
外部文件管理:
/dev :Device(设备)的缩写, 存放的是Linux的外部设备。注意:在Linux中访问设备和访问文件的方式是相同的。
/media:类windows的其他设备,例如U盘、光驱等等,识别后linux会把设备放到这个目录下。
/mnt:临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
临时文件:
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
/lost+found:一般情况下为空的,系统非法关机后,这里就存放一些文件。
/tmp:这个目录是用来存放一些临时文件的。
账户:
/root:系统管理员的用户主目录。
/home:用户的主目录,以用户的账号命名的。
/usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/bin:系统用户使用的应用程序与指令。
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:内核源代码默认的放置目录。
运行过程中要用:
/var:存放经常修改的数据,比如程序运行的日志文件(/var/log 目录下)。
/proc:管理内存空间!虚拟的目录,是系统内存的映射,我们可以直接访问这个目录来,获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件来做修改。
扩展用的:
/opt:默认是空的,我们安装额外软件可以放在这个里面。
/srv:存放服务启动后需要提取的数据(不用服务器就是空)
文件类型
d 目录
- 文件 绿色代表可以执行
. 隐藏文件
l 符号链接
b 设备文件
c 字符设备文件
2.文件管理
1.列出目录
ls
ls / 列出当前目录中的内容
ls -a / 显示所有文件(隐藏文件)
ls -l /或者ll / 列出当然目录下所有目录和文件的详细信息
-rwxr-xrwx. 1 root root 21 10月 20 19:21 1.txt
第一个字母表示文件的类型
3*3个字符分3组,各指示此文件的读、写、执行权限,对于owner、group、others而言 小技巧:3*3个字符分3组带+,说明设置的setfacl权限
第二个栏位,表示文件硬链接个数。如果是文件的话,那这个数目自然是1了,如果是目录的话,那它的数目就是该目录中的文件个数了
第三个栏位,表示该文件或目录的拥有者
第四个栏位,表示所属的组(group)
第五栏位,表示文件大小。文件大小用byte来表示,而空目录一般都是1024byte,当然可以用其它参数使文件显示的单位不同,如使用ls –k就是用kb莱显示一个文件的大小单位,不过一般我们还是以byte为主
第五栏位,表示文件大小。文件大小用byte来表示,而空目录一般都是1024byte,当然可以用其它参数使文件显示的单位不同,如使用ls –k就是用kb莱显示一个文件的大小单位,不过一般我们还是以byte为主
第七个栏位,表示文件名。我们可以用ls –a显示隐藏的文件名
ls -l -d /tmp 查看文件夹属性
ls -h 显示文件大小,以M为单位
ls | wc -l 显示文件个数
pwd
显示当前路径
2.改变路径
绝对路径
路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录
缺点
路径名称太长
相对路径
路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法啦!
. 代表当前路径 ..上级目录
/ 在linux代表隔开
3.创建文件
touch 路径和名字
touch /file.txt
touch /file1.txt /file2.txt
创建file1和file2两个文件
4.创建目录
mkdir /file1
创建file1目录
mkdir -p
父系,当创建目录没有上一级时,自动创建
示例 在/a/b/c里创建一个名为c.txt文件
mkdir /home/{dir111,dir222}
在home目录创建dir111和dir222两个目录
mkdir -v
显示创建目录过程
mkdir -pv /home/{test/{test1,test2},test3}
创建了4个目录
5.复制
cp
把源文件复制到目标文件夹
把/a/b/c/c.txt 复制到 /a
cp -r (r递归的意思)
把源目录移动到目标目录
把 /a目录下所有文件复制到root目录
cp -v
显示过程
cp -n
强制
cp -f
覆盖已经存在的目标文件而不给出提示
6.移动
mv
把源文件移动到目标文件夹
mv /a/b mv /a/c
把源文件移动到目标文件夹并且改名
7.删除
rm
删除文件前询问是否删除
rm -rf
强制删除文件和目录
rm -rf /a/*
强制删除a目录下所有文件和文件夹(隐藏文件删除不了)
rm -rf /a/b1 /a/c2
强制删除/a目录下b1和c2文件
常规运维过程中,尽量少用rm -rf命令,建议使用mv修改文件或者文件夹名称
8.查看文件内容
cat 查看全部
cat 路径和文件
cat /a.txt
查看a.txt所有内容
more 翻页
more /a.txt
查看a.txt文件所有内容
文件行数少的情况下和cat一样
文件多的时候显示一页内容
按enter键一行一行显示剩下
按空格显示下一页内容
head 从头部开始查看
head -3 /a.txt
查看a.txt头单3行内容
tail 从尾部开始查看
tail -3 /a.txt
查看a.txt最后3行内容
tail -f 动态显示文本内容
grep过滤关键字
grep c /a.txt
过滤a.txt内容中有c的行内容
9.修改文件内容
1.重定向
ls / >/a.txt
把正确命令的结果输入到文件里面
>
覆盖重定向
>>
追加重定向
2.文件编辑器1
图形文件编辑器 gedit
gedit /a.txt
3.文件编辑器2
vi,vim
vi和vim,后者高亮显示
vim是vi的升级版
vi的三个模式
编辑模式
命令行模式
输入模式
进入其他模式
输入模式
a i o A 都可以,只是光标位置不一样
o换行
esc 退出输入模式,进入命令模式
编辑模式
:进入编辑模式
:wq
保存且退出
:q
退出
:/1,5 s/原内容/新内容/全局
:/1,5 s/111/222/g
s switch替换的意思
/g 全局 不输入/g默认第一个
:w 路径和文件
另存为
:w /tmp/a.txt
:set list
显示控制符
:q!
强制退出
:set nu
显示行数
:set nonu
取消显示行数
命令模式
esc
yy
复制
3yy
复制3行
p
粘贴
dd
删除
5dd
删除5行
esc
退出输入
u
撤销
x
删除一个字
可视化模式
v 进入可视化模式
d 删除
y 复制
扩展命令模式
光标定位
kjhl
上下左右
0 $
行首 行尾
gg G
页首页尾
3G(指定行数)
进入第三行
/string
查找字符
n下一个,可以循坏的
enter 下一行
临时文件
使用vi编辑文件的时候,意外退出,产生的临时文件解决方法
ls -a /
查询所有文件
删除临时文件
rm -rf /.1.txt.swp
3.自我评价
用户管理
1.用户和组的基本概念
概念
用户组信息存储的文件
1.用户的基本信息文件
cat /etc/passwd(冒号分割为7列字段)
每一行一个用户信息
root:x:0:0:root:/root:/bin/bash
用户名:x:uid:gid:描述:home:shell
root:用户名:登陆系统的名字
x:密码占位符,具体内容不再这里
0:uid:用户的身份证号
系统约定:RHEL7
0 特权用户
1-499 系统用户
1000+ 普通用户
0:gid:GROUP组 组号
root:描述:比如经理 manager,默认用户名
/root:家目录:登陆系统时,所在的家目录
普通用户的家目录在哪里? /home/用户名
/bin/bash:登陆shell:命令解释器
/bin/nologin 不能登陆
2.用户的密码信息文件
cat /etc/shadow
root: $6$9cE.6herKKvOrg3TCXzo4Nm9ON: :0 :99999 :7 : : :
用户名:密码加密值:最后一次修改密码时间:最小间隔:最大间隔:警告间隔
1.用户名 与/etc/passwd文件中的登陆名相一致的用户账户
2.密码加密值
密码为空,对应的账号没有口令
* 账号锁定
!! 密码过期
$1 MD5加密
$2 Blowfish加密
$5 SHA-256加密
$6 SHA-512加密
3.最后修改时间 修改密码的时间与1970年1月1日间隔了多少天
4.最小间隔 两次密码修改的最小天数 0 当天可以修改 1 修改完密码过一天才能修改密码
5.最大间隔 密码有效期 99999永久
6.警告时间间隔(7) 密码到期前多少天提示
7.不活动时间(28) 用户不登录系统多少天禁用账户
8.失效时间 (30) 账号到了多少天后就不能用了
9.保留
3.组信息文件
cat /etc/group
zixiang.liang:x:1000:zixiang.liang
组名:组密码:组id:组成员
2.用户/组管理
用户
创建用户 未指定选项
useradd user01 添加用户
创建用户的时候会在 /var/spool/mail/user01创建一个文件,专门装邮件的
创建用户时,未指定任何选项,系统会创建一个和用户名相同的的组作为用户的主要组
id user01 展示用户详细信息
whoami 当前用户
创建用户 指定选项
-u 1053 用户id
-d /aaa/aaa 用户家目录
删除用户
userdel -r user11 删除用户(-r删除主目录和邮件池)
用户密码
passwd user01
登陆user01用户,输入passwd修改
组成员管理
gpasswd -d user01 root把用户user01从root组删除
其他选项管理
usermod修改用户属性
usermod -s /sbin/nologin user02 修改登陆shell
用户组
操作
创建用户组
groupadd
groupadd hr 创建hr用户组
查询创建的用户组
groups user01
grep hr /ect/group
tail -1 /etc/group 查询自己创建的组
groupadd hr1 -g 2000 创建用户组,并且指定gid
删除用户组
groupdel hr01 删除hr用户组
修改用户组
groupmod (推荐使用) G附加组 g基本组
用户组删除用户
groupmems -g root -d user01 把用户user01从附件组root删除
分类
基本组:
随用户创建,组名同用户名,基本组只能有一个
用户的基本组在/etc/passwd
附加组:
相比用户,1个用户加入到别的组,别的组就是附加组,附加组可以多个
用户的附加组在/etc/group
3.提权
永久提权 switching user with su
su - root 切换用户
尽量少用root
普通用户没有特权
临时提权running commands as root with sudo
sudo
使用普通用户登陆服务器时
完成部分特权指令
语法
user machime = commands
用户 登陆的主机 = 可执行的目录
配置文件位置
vim /etc/sudoers
:set nu 显示行数
107G 第107行
案例1
把用户加入到附加组wheel中(3种添加方法)
gpasswd -a zixiang.liang wheel
groupmems -a zixiang.liang -g wheel
usermod -a zixiang.liang -G wheel
用户的权限
概念
权限的三类对象
属主 u
属组 g
其他 o
特殊对象:所有人:a(u+g+o)
特殊位
suid sgid soid
rwsrwsrwt s临时拥有属主的权限 第二个s临时拥有属组的权限
chmod u+s /file.txt
权限的三种类型
读:r=4
写:w=2
执行:x=1
基本权限UGO
设置权限
更改权限
使用符号
语法:chmod 对象(u/g/o/a)赋值符(+/-/=)权限类型(r/w/x) 文件目录
chmod u+x /1.txt 给用户授权1.txt文件执行的权限
chmod o+rwx /1.txt 给其他授予对文件1.txt读写执行的权限
chmod o-rwx /1.txt 给其他取消对文件1.txt读写执行的权限
chmod o=r-x /1.txt 给其他授予对文件1.txt读和执行的权限
chmod -R o+rwx /1 更改文件夹权限
chmod a=--- /1.txt 取消1.txt所有权限
chmod ug=rw /file.txt 授予属主属组读写的权限
chmod +x 等于 chmod a+x
使用数字
chmod 777 /1.txt 所有权限
chmod 000 /1.txt 取消所有权限
chmod -R 文件 给文件里所有的文件授权
4=r 5=rx 6=rw 7=rwx
测试执行
touch /tmp/file.txt
cat /tmp/file.txt
./file.txt 执行
chmod u-x file1.txt
更改属主/属组
chown
设置一个文件属于谁,属主
chown mysql.mysql file1.txt 修改文件的属主和属组
chown .mysql file1.txt 修改属组
chown mysql file1.txt 修稿属主
- R 递归操作文件和目录
chogrp
只改属组
chogrp zixiang.liang /file1.txt 修改属组
基本权限ACL access control list 访问控制列表
1.一个文件多个属主属组都可以操作?使用setfacl设置权限
概念
限制用户对文件的访问
ACL是对UGO的补充
区别
ACL文件权限管理:设置不同的用户,不同的基本权限(r,w,x)。对象数量不同
UGO设置基本权限:只能一个用户,一个组,其他人
语法
增加 -m
setfacl -m u:jack:rwx /test.txt 给属主jacK添加对test.txt文件的读写执行
setfacl -m g:hr:rwx /file1.txt 给属组hr添加对test.txt文件的读写执行
setfacl -m o::rw /file.txt 修改其他人的权限 修改other对文件的权限 类似 chomd o=rw /file.txt
删除 -x
setfacl -x u:alic /tmp/test.txt 删除alic用户对test.txt权限
setfacl -x g:hr /tmp/test.txt 删除属组hr对test.txt权限
移除到所有的扩展权限 -b
setfacl -d /tmp/test.txt
查询权限
getfacl /tmp/text.txt 查询文件的权限
特殊权限
问题:
1.如果有一个文件很重要,被超管删除了怎么办?靠特殊的 ! 权限
2.rwsrwxrwx s 临时提权。特别的命令
3.文件初始化权限 644 ? 文件夹755?
特殊位 suid
高级权限的类型
suid,(sgid)针对文件/程序时,具备临时的提升的权限
当一个用户调配1个文件时,如果有suid位,就会临时具有属主能力
chmod u+s /usr/bin/cat 禁止使用
文件属性chattr
用途
操作符`+‘用来在文件已有属性的基础上增加选定的属性; `-‘用来去掉文件上的选定的属性;而`=‘用来指定该文件的唯一属性.
字符`ASacdisu‘用作文件新属性的选项: 不更新atime(A),同步更新(S),只能添加(a), 压缩(c),不可变(i),不可转移(d),删除保护(s)以及不可删除(u).
用法
chattr + i /1.txt
分类
A 这个属性不允许更新文件的访问时间
a 文件只能追加内容
c 文件在磁盘上自动更新
d 不能使用dump命令备份文件
D 更改会同步保存在磁盘上
e 该文件使用磁盘上块的映射扩展
i 文件不能进行修改:你既不能删除它, 也不能给它重新命名,你不能对该文件创建链接, 而且也不能对该文件写入任何数据.
s 保密性删除文件或目录。
S 即时更新文件或目录。
u 预防意外删除
进程掩码 umask
概述
新建文件、目录的默认权限会受到umask的影响,umask表示要减到的权限
观察系统umask
umask
创建文件夹权限 0777-0022 =755
创建文件权限
0777-0111=644
临时修改
umask 0000
小知识
watch -n1 'ls -l test.txt' 每隔1s打印test.txt的详细信息
watch -n1 'lsattr test.txt' 列出文件的属性,展示特别位
进程管理
1.进程管理
概念
程序
具有执行代码和执行权限的文本
进程
运行起来的程序,获得计算机各方面的资源
进程的生命周期
由系统程序fork出来的子程序具备一定付的资源(权利,内存空间,pid),直到运行完毕,退出系统
进程的状态
R-run 运行
T-stop 暂停 T
S-sleep 睡眠
Z-zombie 无响应
进程的管理
静态查看进程 ps
一个进程为例
ps aux | head -2
user:运行进程的用户
pid:进程的id
%CPU:cpu占用率
%MEM:内存占用率
VSZ:占用虚拟内存 swap
RSS:占用实际内存
TIY:进程运行的终端 ? 本地 pts 命令行
STAT:进程的状态
S R T Z
START:进程启动的时间
TIME:占用CPU时间
COMMAND:所执行的指令
进程的父子关系
语法 ps -ef
ps -ef | head -2
-e 显示所有
-f 完整的格式
进程排序
语法 ps aux --sort -%cpu
ps aux --sort -%cpu | head -5
gnome 图形界面
自定义显示字段
ps axo
ps axo user,pid,ppid,%mem,%cpu,command | head -3
ps axo user,pid,ppid,%mem,%cpu,command | head -3
命令参数说明
ps a 显示终端下所有的程序 all
ps u 以用户为主格式来显示程序状况
ps x 不以终端来区分
ps o 自定义显示列
动态查看进程 top
上半部分
示例
说明
第1行 程序名
top - 17:57:06 up 32 min, 2 users, load average: 0.00, 0.01, 0.05
程序名 - 系统时间 运行时间 登陆用户 cpu负载 以三个时间段分别展示 1分钟 5分钟 15分钟
第2行 任务数
Tasks: 151 total, 2 running, 149 sleeping, 0 stopped, 0 zombie
总进程数 运行数1 睡眠数149 停止数0 僵死数0
第3行 cpu占用率
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
cpu占用率 us用户 sy系统 ni优先级 id空闲 wa等待 hi硬件 si软件 st虚拟机
第4行 内存空间
KiB Mem : 16247560 total, 15649252 free, 363932 used, 234376 buff/cache
物理内存 total总共16G free剩余15G used使用1G 读写缓存内存
内存空间 k-m-g
free -m 查看内存大小
df -Ht 查看磁盘大小
第5行 交换分区(磁盘的一部分空间,存放的常用数据)
KiB Swap: 8258556 total, 8258556 free, 0 used. 15591224 avail Mem
虚拟内存 total总共8G free剩余8G used使用0G 还可以被应用程序使用的物理内存
下半部分 类似ps
top 常用内部指令
h|? 帮助
M 按内存的使用排序
P 按cpu的排序使用
N 以PID的大小排序
shift+< 向前
shift+> 向后
Z 彩色
top小技巧
top -d 3 每三秒刷新一次
top -d 3 -p 1 查看指定的进程动态信息
top -d 3 -p 1,2 查看指定的多个进程动态信息
使用信号控制进程
kill -l 列出所有支持的信号
1.SIGHUP 重新加载配置
2.SIGINT 键盘中断 Ctrl+C
3.SIGQUIT 键盘退出Ctrl+\,类似SIGINT
9.SIGKILL 强制终止,无条件 zombile使用kill -9强制终止
15.SIGTERM 终止(正常结束),缺省信号 默认 正常情况使用15
18.SIGCONT 继续
19.SIGSTOP 暂停
20.SIGTSTP 键盘暂停Ctrl+Z
进程优先级nice
简介
每个cpu在一个时间点只能处理一个进程,通过时间片技术,同时运用多个程序
优先级的范围和特征
优先级图示
我们只能调试小部分,自己调试的值系统会自动给加20
系统中的两种优先级
在top中显示的优先级有两个,PR值和nice值
NI:实际的nice值
PR(+20):将nice级别显示映射到更大的优先级队列,-20映射到0,+19映射到39
优先级特征
nice的值越大:表示的优先级越低,例如:+19
nice的值越小:表示的优先级越高,例如:-20
查看进程的nice级别
ps axo pid,command,nice --sort -nice | head -10
启动具有不同的nice级别的进程
示例
默认情况
启动程序时,通常会继承父进程的nice级别,默认0
sleep 倒计时程序
sleep 3 等待3秒
sleep 6000 &
& 代表后台运行
手动启动不同的nice
nice -n - 5 sleep 7000 &
更改现有进程的nice级别
已启动的程序的优先级
renice -20 5361
ps axo pid,command,nice --sort -nice | grep sleep
查看系统的优先级
top -d 1 -p 5310,5350,5361 值越大,优先级越低
2.作业控制jobs(了解)
简介
作业控制是一个命令行功能,也叫后台运行
关键词介绍
foreground
fg
前台进程:是在终端运行的命令,占领终端
background
bg
后台进程:没有控制终端,他不需要终端交互。看不见,但是运行
后台控制程序 示例
1.观察占领前台现场
sleep 2000
Ctrl+c Kill -2 2 .SIGINT 键盘中断 Ctrl+C
sleep 35000 & sleep 45000 &
2.查询后台进程
通过进程查看
ps aux | grep sleep
jobs查看
jobs 仅仅是后台的进程,不包括前台的进程
+ 最新 - 最早的信息
3.把后台进程调为前台
fg 2
4.停止前台程序 Ctrl+Z
20.SIGTSTP 键盘暂停Ctrl+Z
5.运行后台停止的jobs
bg 2
6.消灭后台进程
kill %2
小知识
kill 2 和kill %2 %代表后台进程
3.虚拟文件系统proc(了解)
简介
虚拟文件系统:采用服务器自身的内核、进程、运行的状态信息
ls /proc
大多数是数字 代表进程的信息
CPU
/proc/cpuinfo
存放的cpu的各种参数
cat /proc/cpuinfo
内存
/proc/meminfo
cat /proc/meminfo
内核
/proc/cmdline
cat /proc/cmdline
ls /boot
管道和重定向
重定向
标准输入、标准输出、标准错误
FD简介
file descriptors,FD,文件描述符,也叫文件句柄
进程使用文件描述符来管理打开的文件
FD图示
0 stdin 标准输入
1 stdout显示器(终端)有关系,代表输出文件 pts代表终端 在/dev下面
2 stderr输出错误文件
3+ 是人让程序打开其他文件。可读可写
总结:FD 是访问文件的标识,即链接文件,省去了冗长的路径
示例
1.打开 vim ,查看vim 进程pid
ls /proc
ls /proc 20448
ls /proc/20448/fd
l 链接文件
ln -s ./123.txt 333 访问333还是123.txt的内容,类型windows的快捷方式
ll /proc/20448/fd
echo 123 > /dev/pts/0
重定向
输出重定向案例 进程产生的信息,存放到文件
正确输出
1>等价于> 覆盖
1>调用程序的FD 1输入重定向在本身程序想当于stdout 标准输出
1>>等价于>> 追加
错误输出
2> 覆盖
2>调用程序的FD 2 stdout
2>> 追加
同时收集正确和错误输出信息
&> &>>
分开收集正确和错误输出信息
mkdir -v 1 2 3 1>ok.txt 2>eer.txt
不想查询信息
$>/dev/null /dev/null代表回收站
输入重定向案例
0< 等于<
发邮件案例
mail -s "这是主题" zixiang.liang 换行输入内容.
. 点代表邮件编辑完成
查看邮件
su - zixiang.liang
mial 按邮件编号即可查看邮件 q 退出
使用重定向发送邮件
mail -s "my.cnf" zixiang.liang </etc/my.cnf
原理:利用输入重定向,把文件内容代替人为的输入
管道
管道 |
进程管道Piping
概念: 管道命令可以将多条命令组合起来,一次性完成复杂的处理任务
语法: command1| command2|command3|......
指令1的输出是指令2的输入
案例:
cat /etc/passwd | tail -3
cat /etc/passwd | grep "root"
ps aux | grep sshd
tee管道
概念:三通管道,即交给另一个程序处理,又保存一份副本
语法:cat /etc/passwd | tee a.txt |tail -3
参数传递 Xargs 转换,把输出和输入进行文件转换
cp rm一些特殊命令,就是不服其他的程序
案例1
创建部分文件
touch /home/file{1..5}.txt 创建多个文件
接到消息,删除部分文件
cat file.txt | rm -rvf
貌似不行,下面加上xargs
存储管理1
基本分区
磁盘简介
作用:
普通用户:存储数据。音乐文件、视屏文件、文本文件、游戏、目录等
工程师:负责储存企业的数据,用户的账号,用户的头像,用户的视屏,用户的信息
学习目标
在Linux系统中,管理存储设备和资源
掌握知识点
1.磁盘长什么样
2.磁盘有哪些
3.什么是好磁盘,什么是次磁盘?
4.把磁盘的软件操作(分区格式化)
5.写入输入数据到磁盘
磁盘类型
机械硬盘:盘片,马达,磁头,磁臂,数据转换器,接口,缓存等几个部分组成的机械结构存储器。
固态硬盘:由芯片和集成电路组成。
图例
磁盘尺寸 磁盘的对角线
2.5英寸
3.5英寸
接口
早期IDE,现在SATA 1 11 111
转速
每分钟旋转的速度 速度越大,噪音越大,笔记本大多数5400转,服务器7200-15000
5400转
7200转
10000转
15000转
厂商
西部数据(WD)
希捷
术语
盘片
一块硬盘有若干盘片,每个盘片可以存储数据的上下两盘面(side)
柱面
所有盘面上的同一磁道构成的一个圆柱,称作柱面
扇区
将一个盘面划分为若干内角相同的扇形,这样的盘面上每个磁道就分为若干段圆弧,每段圆弧叫做一个扇区
磁道
每个盘面被换分成许多同心圆,这些同心圆轨迹叫做磁道;磁道从外向内从0开始顺序编号
图示 磁盘上的磁道 、扇面、 扇区 和簇
命名
微软 磁盘0 磁盘1
kernel(内核)对不同接口的磁盘命名方式
RHEL7/CentOS7
IDE(并口)
/dev/hda
/dev/hdb
IDE(并口)
SATA(串口)
/dev/sda
/dev 设备文件目录
s代表 sat就是串口
d代表disk,磁盘
a代表第一块磁盘
sda是一个文件
/dev/sdb
分区方式
MBR
MBR
主引导启动记录(MBR, Master Boot Record)是位于磁盘最前边的一段引导
MBR支持最大的磁盘容量是<2TB。设计时分配4个分区
如果系统超过4个分区,需要放弃主分区,改为扩展分区和逻辑分区
GPT
全局唯一标识分区表(GUIDPartittion Table,缩写:GPT)是一个实体硬盘的分区表的结构布局的标准
GPT支持大于2T的硬盘,支持128个分区
磁盘管理
添加磁盘
VM添加磁盘
管理磁盘流程三部曲
分区(MBR或者GPT)-格式化/文件系统 Filesystem-挂载mount
1.查看磁盘信息
方法1
ll /dev/sd*
方法2
lsblk
名称 设备类型 序号 是否可移动设备 大小 是否只读 磁盘类型 挂载点
2.创建分区
启动分区工具
fdisk /dev/sdb
进入会话模式
提示1
命令(输入m获取帮助)
操作
敲击字母 “n” 键,划分分区
说明
欢迎界面,输入帮助指令或者操作指令
提示2
命令:n
操作
p
说明 p主分区 e逻辑分区
提示3
命令 p
操作
敲击数字“1”键
说明
选择分区号
提示4
命令 1
操作
敲击回车键
说明
选择磁盘的开始分区
5G*1024=5120M*1024=5242880K*1024=5368709120B/512=10485760单位 单位叫扇区
在计算机里面 0也是一个单位 所以为10485759
为啥从2048开始
0-2048扇区存储的分区表
提示5
命令
操作
输入分区的大小 “+2G” 后回车
实际坏境根据磁盘划分,如4T磁盘,可以500G一个分区
说明
选择磁盘分区结束的扇区,即分区的大小
提示6
命令:
说明
已经完成2G大小分区记录。但未生效
提示7
输入 w
输入w保存分区信息
自动退出分区工具
刷新分区表
partprobe /dev/sdb
查看分区结果
fdisk -l /dev/sdb
lsblk也可查看
3.创建文件系统
格式化
mkfs.ext4 /dev/sdb1
mkfs -t ext4 /dev/sdb2
mkfs
make 创建
file 文件
system 系统
extend4 扩展 ext4文件类型
/dev/sdb1 第二块串口硬盘的第一个分区。准备格式化
4.挂载mount
手动挂载
mkdir /mnt/disk1
mount -t ext4 /dev/sdb1 /mnt/disk1
-t 指定文件类型
卸载
umont /mnt/disk8
自动挂载
配置文件/etc/fstab
5.查看挂载信息
df -hT
逻辑卷LVM
目的:管理磁盘的一种方式,性质与基本磁盘无异
特点:随意扩张大小
术语
PV:物理卷(Physical Volume)
VG:卷组(Volume Group)
LV:逻辑卷(Logical Volume)
1、创建LVN
准备物理磁盘
lsblk
1.将物理磁盘转成物理卷 pv
pvcreate /dev/sdf
2.创建卷组 VG
vgcreate vg1 /dev/sdf
3.创建逻辑卷 LV
lvcreate -L 200M -n lv1 vg1
4.创建文件系统并挂载
格式化
mkfs.ext4 /dev/vg1/lv1
创建挂载点
mkdir /mnt/lv1
挂载
mount /dev/vg1/lv1 /mnt/lv1
2、VG管理
==扩大VG vgextend==
坏境 /dev/vg1 容量200M,扩容到10G
步骤1 创建PV,而后使用第二步将pv增加到VG卷组
pvcreate /dev/sdg
pvs 查询物理卷
步骤2 扩展VG
vgextend vg1 /dev/sdg
查询卷组 vgs
3、LV扩容
lvextend -L +7G /dev/vg1/lv1 扩容
刷新文件
resize2fs 针对的是ext2、ext3、ext4文件系统
resize2fs /dev/vg1/lv1 刷新文件
xfs_growfsz针对的是xfs文件系统
xfs_growfs /dev/mapper/centos-root
查询逻辑卷
lvs
剩余的空间 扩容到lv
lvextend -L 100%FREE /dev/vg1/lv1
交换分区管理 Swap
简介
作用:提升‘内存’的容量,防止OOM(Out Of Memory)
swap大小
推荐大小
设置交换分区大小为内存的2倍
生产
16>内存>4 最少需要4G交换空间 建议2倍
64>内存>16 最少需要8G交换空间 建议10G
256>内存>64 最少需要16G交换空间 建议20G
查看当前的交换分区
free -m
lsblk
增加交换分区
准备分区
将/dev/sde磁盘划分2G为例
划分分区后将类型设置为82 t设置类型 L列出所有代码
刷新分区表
partprobe /dev/sde
格式化
mkswap /dev/sde1
挂载
swapon /dev/sde1
swapoff /dev/sde1 卸载
查询
free -m
开机自动挂载磁盘
fdisk /dev/sdb
n 1 2048 +100G w
partprobe /dev/sdb
mkfs.xfs /dev/sdb1
mkdir -p /mnt/packages
blkid
vi /etc/fstab
UUID=b233dbea-e4ef-4213-ab1c-4772829269fb /mnt/packages xfs defaults 0 0
/dev/sdb1 /mnt/packages xfs defaults 0 0
案例
案例1:生产坏境中,/root容量不足,如何进行扩展,扩展后如何删除,请举例
扩容
fdisk -l 所挂硬盘个数及分区情况
df -hT 查看磁盘大小
lsblk 列出所有可用块设备的信息
fdisk /dev/sdb
n -1-回车-+10G-T-8E-W
partprobe /dev/sdb
pvcreate /dev/sbd1
vgextend centos /dev/sbd1
lvextend -L +100%FREE /dev/mapper/centos-root
xfs_growfs /dev/mapper/centos-root
df -hT 或者 lsblk
取消扩容
lvreduce -L -10G /dev/mapper/centos-root
vgreduce centos /dev/sdb1
fdisk /dev/sbd
d -1
partprobe /dev/sdb
存储管理2
文件系统详解
文件系统
类型
索引(index)文件系统
索引:目录,字典的前几十页
系统限制
EXT3:系统文件最大16TB
EXT4:系统文件最大16TB
xfs:系统文件最大100TB
图示
名词
inode
记录文件的属性(文件的元数据metadata) 类似显示器 扫描器 快速找到block
元数据(128字节)
文件的属性,大小,权限,属主,属组,连接数,块数量,块的编号
inode大小为128bytes
一个文件占用一个inode,同时记录文件数据所在的block number
block 块
存储文件的实际数据
实际存储文件的内容,若文件较大,会占用多个block
block大小默认为4k
superblock
block和inode的总量
未使用与已使用的inode/block数量
示例1:inode
创建一个文件,观察inode信息
ll -i 11.txt
问题1 分区中,文件数量和什么有关系
1 观察某个分区中的inode
df -i /dev/sdb1
2 继续创建文件,观察分区中的inode信息
3 查询磁盘的inode df -i /dev/sdb1
4 批量创建文本 touch file{1..655525}.txt
最后还能创建文件吗
不能创建
但是可以已向存在的文件中写入数据
结论:inode 觉得文件的数量
示例2:block
向文件写内容,写满后可以继续写吗
总结:磁盘空间限制根据inode和block两方面,inode决定文件的数量,block决定大小
文件链接
符号链接
名词解释
软链接 类型window的快捷方式
示例
创建1个文件 echo 1111 > /1.txt
创建一个软链接
ln -s /1.txt /root
观察软链接
观察软链接文件的inode
查看两个文件夹,内容一致
删除源文件,软链接闪烁,不可以用
总结
软链接像快捷方式,可以对文件和目录做软连接
软链接记录的只是源文件的绝对路径
软链接失去源文件不可用
硬链接
创建同分区硬链接成功,但是创建不同分区硬链接失败
硬链接的inode号相同,但是不占用block。使用df -k观察硬链接数量无变化
不允许将硬链接指向目录
总结
硬链接只能只能针对文件。不能对目录做
硬链接只能在同分区做
示例
创建1个文件,创建n个硬链接
删除源文件,查看连接数
查询内容 cat /333-h1
RAID(了解)
简介
Raid:廉价的磁盘冗余阵列(Readundant Array Of Independt Disks)
作用:容错,提升读写速率
类型
RAID0
RAID0 条带集 2块磁盘以上,读写速率快100%*N,单不容错
RAID1
RAID1 镜像集或者镜像卷 必须2块磁盘,容量50%。读写速率一般,容错
RAID5
RAID5 带奇偶校验条带集 3块磁盘以上,利用率(n-1),读写速率快,容错
不同场景RAID的使用
硬RAID
需要RAID卡,有自己的cpu,处理速度快,有电池和无电池
软RAID
通过操作系统实现,比如windows、linux
软RAID示例
准备4块硬盘
ls /dev/sd*
4块盘 做RAID5 2块数据盘 1块校验盘 1块热备磁盘
创建raid
mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{e,f,g,h}
-C 创建raid -15 RAID5 -n RAID成员数 -x热备的磁盘数
格式化,挂载
mkfs.ext4 /dev/md0
mkdir /mnt/raid5
mount /dev/md0 /mnt/raid5/
cp -rf /etc/mnt/raid5
查看RAID信息
rdadm -D /dev/md0
模拟一块硬盘损坏,并移除
mdadm /dev/md0 -f /dev/sde -r /dev/sde
文件查找和压缩
文件查找
which 主要找命令
which ls 或者whereis
alias ls= 'ls --color=auto' 别名
alias zixiang= 'ls --color=auto' 自定义一个别名
locate 文件查找,依赖数据库
locate mysqld.log
find 文件查找,针对文件名
语法
find [path..] [options] [expression] [action]
find /etc -name 'mysqld.log'
按文件名
-name
-i 忽略大小写
按文件大小
-size +5M 大于5M
-size -5M 少于5M
-size 5M 等于5M
指定查找的目深度
find / -maxdepth 4 -name 'ifcfg-en*'
按文件属主、属组找
find /home -user zixiang.liang
find /home -group zixiang.liang
按文件类型 linux不以文件后缀作区分,以文件类型区分
find /etc -type f
f 文件 b 设备 l链接
按文件权限
find . -perm 664 -ls
找到后处理的动作 ACTION
删除 -delete
复制 ok cp -rvf {} /tmp \;
打印 -print(默认)
显示权限 -ls
文件压缩和解压
概念
tar命令是unix和linux备份文件的最可靠方法,几乎可以工作于任何坏境,他的使用权限是所有用户。建议针对目录
压缩
语法
tar 选项 压缩包名称 源文件
tar -cvf etc.tar /etc
tar -czvf etc_gzip.tar.gz /etc
tar -cjvf etc_bzip.tar.bz /etc
tar -cJvf etc_xzip.tar.xz /etc
总结:由上往下,时间越慢,文件容量越来越小
解压
tar -xf etc.tar 简单粗暴
tar -xjvf etc_bzip.tar.bz -C /tmp -C重定向tmp
查看
tar -ft etc.tar 查看压缩包里的文件
软件安装
概述
RPM包
RPM Package Manager (原Red Hat Package Manager,现在是一个递归缩写)
由Red Hat公司提出,被众多Linux发行版采用
也称二进制(Binary code),无需编译,可以直接使用
无法设定个人设置,开关功能
软件包示例(注意后缀):mysql-community-server-5.7.39-1.el7.x86_64.rpm
认识RPM包
mysql-community-libs-5.7.39-1.el7.x86_64.rpm
mysql-community-common-5.7.39-1.el7.x86_64.rpm
注释
mysql-community-server-5.7.39-1.el7.x86_64.rpm
软件包名
mysql-community-server
版本
5.7.39-1
发布版本(Release5/6/7)
el7
系统平台(32/64位)
x86_64
文件后缀
rpm
源码包
source code,需要经过gcc,c++编译坏境编译才能运行
可以设定个人设置,开关功能
缺点:配置复杂
软件包示例:nginx-1.8.1.tar.gz
认识源码包
nginx-1.8.1.tar.gz
注释
nginx-1.8.1.tar.gz
软件包名
nginx
版本
1.8.1
文件后缀
tar.gz
RPM包管理
YUM工具
简介
yum(全称Yellow Dog Update, Modified)
是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器
基于RPM包管理,能够从指定的服务器自动下载RPM包,并且安装
可以自动处理依赖关系,并且一次安装所有依赖的软件包,无须繁琐的一次次下载安装
YUM本地源:系统光盘安装
目的
通知Linux服务器,通过本机的系统光盘获得软件包,并且安装
0观察YUM核心配置目录
记住这个目录 /ect/yum.repos.d/
打开一个*.repo
cat /etc/yum.repos.d/CentOS-Base.repo
cat /etc/yum.repos.d/CentOS-Base.repo
观察国外的地址
1删除官方YUM库
建议拷贝到服务器另外一个目录进行保存
tar -cf repo.back.tar *.repo
mkdir backup
mv repo.back.tar backup
rm -rf *.repo
2编写本地YUM库配置文件
重新创建一个repo文件
3挂载安装光盘
ls /dev/cdrom
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
开机自动挂载
vim /root/.bashrc 把命令mount /dev/cdrom /mnt/cdrom加入进去,开机自动运行命令
4使用YUM安装
安装httpd服务 yum install httpd
5模拟客户机访问
启动httpd服务
systemctl start httpd
查询httpd状态
systemctl status httpd
关闭防火墙
systemctl stop firewalld
客户机输入ip模拟访问
http://192.168.79.131/
使用YUM管理RPM包
安装
全新安装
yum insatll -y httpd vsftpd
yum 主命令
install 安装
-y 确认安装
htppd vsftpd 软件包
重新安装
yum reinstall httpd vsftpd
升级
yum update httpd vsftpd
yum update 升级系统 ,小心操作
卸载
yum remove httpd
查询
yum list httpd
YUM阿里云源配置
阿里云开发者社区
https://developer.aliyun.com/mirror/
Cent0S 7
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
Epel 镜像
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
清理
yum clean all
刷新
yum makecache
查询
yum repolist
RPM工具
简介
RedHat/CentOS系统自带的管理RPM包的基本工具
YUM功能基本相同
需要手动处理依赖
安装
rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm
查询
rpm -qa wget
rpm -qa 查询所有安装的软件
rpm -ql 相关的文件
rpm -qc 相关的配置文件
卸载
rpm -evh wget
源码包管理
获得源码包
官方网站,获得最新的源码包
Apche:www.apche.org
Nginx:www.nginx.org
Tengine:tengine.taobao.org
案例
下载Tengine
wget http://tengine.taobao.org/download/tengine-2.2.0.tar.gz
部署Tengine
准备编译工具 gcc make zlib-devel pcre pcre-devel openssl-devel
yum install gcc make zlib-devel pcre pcre-devel openssl-devel
解压
tar -xvf tengine-2.2.0.tar.gz
useradd www
cd tengine-2.2.0
配置
./configure --user=www --group=www --prefix=/usr/local/tengine
编译
make
安装
make install
启动测试
./usr/local/tengine/sbin/nginx
任务计划
一次性调度执行 at
概念
定时任务,简要说明就是在指定时间内触发执行某个动作。类似于我们今天晚上12要买个东西,然后你需要定一个闹钟提醒你,告诉你12点你需要买个东西,这个闹钟定时提醒你,就是一种定时任务
语法格式
at <Timespec>
now+5min
teatime tomorrow(teatime is 16:00)
noon +4 days
5pm august 3 2029
4:00 2022-11-27
例1
at now +5min
useradd test1
结束任务 Ctrl+D
查询定时任务 atq
循环调度执行 cron
简介
cron的概念和crontab是不可分割的
cron是一个命令,常见于Uninx和Linux操作系统中
用于设置周期性被执行的指令
该命令从标准输入设备读取指令,并将其存放于crontab文件中,以供之后读取和执行
查看进程状态
systemctl status crond
ps aux | grep crond
cron 示例
计划任务存储位置
ls /var/spool/cron/
管理方式
创建计划
crontab -e Edit jobs for the current user
查询计划
crontab -l List the jobs for current user
crontab -u zixiang.liang List the jobs for current user
删除计划
crontab -r Remove all jobs for the current user
语法格式 job format
crontab -e
* * * * * command
第一个*
minute 0-59
第二个*
hour 0-23
第三个*
day of month 1-31
第四个*
month(1-12)0r jan feb mar apr
第五个*
day of week(0-6)(sunday=0 or 7) OR sum mon tue web thu fri sat
说明
分 时 日 月 周 命令或者脚本程序
6个部分用空格隔开
示例
5 1 15 3 * /mysql_back.sh
每年的3月15号执行
*/5 * * * * /mysql_back.sh
每隔5分钟执行
0 2 1,4,6 * * /mysql_back.sh
每月的1,4,6 2点执行
0 2 5-9 * * /mysql_back.sh
每月的5至9号2点执行
0 * * * * /mysql_back.sh
每月每日整点执行任务
0 2 * * * /mysql_back.sh
每天2点执行
0 2 12 * * /mysql_back.sh
每月的12号2点执行
0 2 12 4 * /mysql_back.sh
每年的4月12号2点执行
0 2 * * 5 /mysql_back.sh
不写日月,仅仅是周执行 星期五的2点执行
0 2 2 6 5 /mysql_back.sh
每年的6月2号2点执行一次,并且6月的每周的周5 2点执行
00 02 * * * ls
每天的2点执行
00 02 1 * * ls
每月的1号2点执行
00 02 1 1 * ls
每年的1月1日2点执行
00 02 * * 7 ls
星期天的2点执行
00 02 * 6 5 ls
6月的星期五2点执行
00 02 14 * 7 ls
每月14号和每月的星期天2点执行
日志管理
简介
日志总体来说是来记录历史事件的,记录在过去一段事件系统的行为。将过去一段时间所发生的时间按时间序列记录到指定的存储结构中,记录的主要内容有事件的来源、发生的时间、内容、事件的关键程度(日志级别)。例如:在操作系统中安装和卸载过什么软件,这些操作会记录下来。记录日志的主要目的是在发生问题的时候,是解决问题的重合依据之一。
处理日志的进程
第一类
rsyslogd:系统专职日志的程序
处理大部分日志记录
系统操作的有关信息,如登陆信息,程序启动关闭信息,错误信息
第二类
httpd mysqld nginx 各类应用程序,可以以自己的方法记录日志
观察rsyslogd程序的进程
ps aux | grep rsyslogd
日志进程rsyslog
常见的日志文件(系统、进程、应用程序)
tail -10 /var/log/messages
系统主日志文件
tail -f /var/log/messages
动态查询主日志文件尾部
tail /var/log/yum
yum安装日志
tail /var/log/secure
认证安全
tail /var/log/maillog
邮件postfix相关
tail /var/log/cron
cron at任务计划相关
tail /var/log/demsg
和系统启动相关
了解
tail /var/log/audit/audit.log
系统审计
tar /var/log/mysqld.log
mysql
tar /var/log/xfer.log
和访问FTP服务相关
tar /var/log/wtmp.log
当前登录的用户 (命令w)
tar /var/log/btmp.log
最近登录的用户 (命令last)
tar /var/log/last.log
所有用户登录的情况 (命令lastlog)
rsyslogd配置
相关程序
yum install rsyslog logrotate
程序出现异常,可以使用上面命令尝试安装
查询rsyslog相关的配置文件
rpm -qc rsyslog
/etc/rsyslog.conf
主要配置文件
/etc/logrotate.d/syslog
日志轮转
/etc/sysconfig/rsyslog
rsyslogd主要配置文件
RULES 规则
RULES
RULSE:即规则,是一套生产日志,以及存储日志的策略
组成: 设备 +级别+位置
facility+level+file
cron.* /var/log/cron
cron 设备 * 日志的级别 /var/log.cron 日志路径
mail.* /var/log/maillog “-”表示是使用异步的方式记录日志
同步 立即刷新
异步 等会刷新
*.info;mail.none;authpriv.none;cron.none /var/log/messages
收集所有设备info日志,排除mail,authpriv,cron的日志
facility&level
facility设备
facility
是系统对某种类型app事件的定义,如AUTHPRIV是安全事件,CRON是计划任务事件,用来收集同类程序日志的
设备类型展示
grep Facility /etc/ssh/sshd_config
设备类型
LOG_SYSLOG rsyslog自身产生的日志
LOG_AUTHPRIV 安全认证
LOG_CRON 调度程序(cron and at)
LOG_MAIL 邮件系统
LOG_USER(DEFAULT) 用户相关
LOG_DAEMON 后台进程
LOG_FTP 文件服务器
LOG_KERN 内核设备
LOG_LPR 打印机设备
LOG_LOCAL0 through LOCAL7 用户自定义设备
level级别
LOG_EMERG 紧急,致命,服务器无法继续运行,如配置文件丢失
LOG_ALTER 报警,需要及时处理,如磁盘空间使用95%
LOG_CRIT 致命行为
LOG_ERP 错误行为
LOG_WARNING 警告行为
LOG_NOTICE 普通,重要的标准信息
LOG_INFO 标准信息
LOG_DEBUG 调试信息,排错所需,不建议开启
LOG_NONE 排除
级别图例
日志轮转logrodate
简介
日志 记录了程序的运行的各种信息
通过日志可以分析用户的行为,记录运行轨迹,查找程序的问题
可惜磁盘的空间是有限的
日志轮转就像飞机的黑匣子,记录的信息在重要,也只能记录最后一段发生的事
为了节省空间和整理方便,日志文件经常按时间或大小等维度分成多份,删除久远的日志文件
工作原理
按照配置进行轮转
/etc/logrotate.d/syslog
配置文件种类
主配置文件 /etc/logrotate.conf
子配置文件/etc/logrotate.d/*
观察主文件和子文件
主要配置文件介绍
vi /etc/logrotate.conf
rotate log files weekly
weekly 轮转的周期,一周轮转 monthly 月 daily天
keep 4 weeks worth of backlogs
rotate 4 保留4份
create new (empty) log files after rotating old ones
crate 轮转后创建新的文件
use date as a suffix of the rotated file
dateext 使用日期作为文件后缀
uncomment this if you want your log files compressed
compress 以压缩形式对日志进行轮转
RPM packages drop log rotation information into this directory
include /etc/logrotate.d 包含该目录的下的子配置文件
/var/log/wtmp
/var/log/wtmp {
对某日志文件设置轮转的方法
monthly
1月进行一次轮转
create 0664 root utmp
轮转后创建新文件,并设置权限
minsize 1M
最小达到1M才轮转,Monthly and minsize
rotate 1
保留一份
}
配置范围
/var/log/btmp {
/var/log/btmp {
missingok
丢失不提示
monthly
1月进行一次轮转
create 0600 root utmp
轮转后创建新文件,并设置权限
rotate 1
保留一份
}
yum日志轮转示例
/var/log/yum.log {
轮转的文件对象
missingok
文件丢了不执行
notifempty
空文件不轮转
maxsize 30k
文件最大30k or dayily
daily
天
create 0600 root root
轮转后创建新文件,并设置权限
rotate 3
保留3份
}
测试
/usr/sbin/logrotate -s /var/lib/logrotate.status /etc/logrotate.conf
网络管理
简介
网络接口名称
CentOS6
eth0 eth1
CentOS7
en以太网接口
eno 板载
ens 热插播槽
enp pcl地理位置
wl WLAN接口
ww WWAN接口
NetworkManager服务
网络管理器是一个动态网络的控制器与配置系统,它用于当网络设备可用时保持设备和连接开启并激活
默认情况下,Centos/RHEL7已安装网络管理器,并处于启动状态
查看网络管理程序状态
systemctl status NetworkManger
查看网络子管理程序状态
systemctl status network
配置网络的工具
命令
vim
图形
nm-connection-editor
nmtui
配置网络参数
TYPE="Ethernet"
类型
PROXY_METHOD="none"
代理方式
BROWSER_ONLY="no"
只是浏览
BOOTPROTO="none"
手动(none,static) 自动dhcp
DEFROUTE="yes"
将该接口设置为默认路由
IPV4_FAILURE_FATAL="no"
是不开启ipv致命错误检测
NAME="ens33"
网卡名称
UUID="da696229-ff5c-40c2-8a23-9e24080f5dc9"
网卡id
DEVICE="ens33"
设备名称
ONBOOT="yes"
是否启动用设备
IPADDR="10.30.0.250"
ip地址
PREFIX="22"
子网掩码 类似NETMASK=255.255.252.0
GATEWAY="10.30.0.254"
网关
DNS1="10.30.0.10"
dns
DNS2="10.30.0.11"
主机名
查看主机名
hostname
临时修改主机名 hostname zixiang.liang
永久配置主机名
hostnamectl set -hostname zixiang.liang
查看主机名配置文件
cat /etc/hostname
网络测试工具
测试工具
ip a 查询所有ip
ip route 查看路由
ip neigh 查看那邻居(和本机通讯过设备)
show tcp sockets
ss -tnl 查询开发端口
初始化一台服务器
设置root密码
配置ip地址
配置yum源
关闭防火墙
systemctl disable firewalld
selinux
临时关闭 setenforce 0
永久关闭 vim /etc/sysconfig/swlinux
SELINUX=disabled
安装常用工具
yum install lrzsz systat elinks wegt net-tools bash-completion
快照
网络实战1
OSI简介
简介
OSI
Open System Interconnection 开放系统互联模型
开放式系统互联
国际标准化组织(ISO)制定
定义了不同计算机互联的标准
设计和描述,计算机网络通信的框架
全世界网络通信的工作分为7层
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
制定IOS的优势
开放
厂商兼容
易于理解学习
模块化工程
故障排除
OSI:7层结构/功能
应用层
应用程序/原始数据 QQ等
表示层
会话层
传输层
网络层
数据链路层
物理层
TCP/IP:4层结构功能