计划任务的用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务 计划任务所需安装的软件包:cronie、crontabs(默认自动安装) 计划任务软件包所对应的服务(程序):crond(开启自启动) 记录周期性计划任务的日志文件:/var/log/cron
格式: 编辑:crontab -e -u 用户名 查看:crontab -l -u 用户名 清除:crontab -r -u 用户名 注:如果没有加 -u 的话代表以当前身份来写计划任务
配置格式可参考/etc/crontab文件 分 时 日 月 周 任务命令行(绝对路径)
执行周期 配置说明
分钟 从0到59之间的整数 小时 从0到23之间的整数 日期 从1到31之间的整数 月份 从1到12之间的整数 星期 0~7之间的整数,0或7代表星期日
符号说明: * :匹配范围内任意时间 , :分隔多个不连续的时间点 - :指定连续时间范围 /n :指定时间频率,每n …示例:
分 时 日 月 周 说明
* * * * * 每分钟运行一次 30 8 * * * 每天早上8:30 执行一次 30 23 * * * 每天晚上23:30 执行一次 30 23 * * 5 每周的周五23:30 执行一次 30 23 * * 1-5 每周的周一至周五23:30 执行一次 30 23 * * 1,3,6 每周的周一周三周六23:30 执行一次 30 23 1 * 1 每月的1号或每周一晚上23:30 执行一次 1 */2 * * * 每隔2小时运行一次 */5 * * * * 每隔5分钟运行一次
2.1.1 基本权限及其表示方式
基本权限有: 读取、写入和可执行表示方式: (1)字符型:r、w、x 读取:允许查看内容- - - r ead 写入:允许修改内容- - - w rite 可执行:允许运行和切换- - - e xcute (2)数字型:权限位的8进制数表示(r、w、x分别对应4、2、1,后3组分别求和)
分组 User权限 Group权限 Other权限
字符 r w x r - x r - x 数字 4 2 1 4 0 1 4 0 1 求和 7 5 5
2.1.2 文件及目录基本权限的所包含的操作
文本文件的基本权限操作: 读取权限(r):cat、less、grep、head、tail 写入权限(w):vim、> 、 >> 可执行权限(x):Shell与Python目录的基本权限操作:(对目录里的内容进行操作,对目录本身没有权限) 读取权限(r):查看目录内容 写入权限(w):能够创建、删除、修改等目录的内容 执行权限(x):能够cd切换到此目录下
2.1.3 文件及目录归属关系的判断
归属关系: 所有者(属主):拥有此文件/目录的用户- - - u ser 所属组(属组):拥有此文件/目录的组- - -g roup 其他用户:除所有者、所属组以外的用户- - -o ther 所有人:a ll
2.1.4 查看文件/目录权限及对应权限位解析
查看文件/目录权限的命令: ls -l 可查看文件的权限 ls -ld 可查看目录的权限 权限位字段解析: 共10个字符,分为4组 类型 - :文本文件 类型 d :目录 类型 l :快捷方式
类型 User权限 Group权限 Other权限
- r w x r - x r - x d r w - r - - r - -
补充说明1:/temp 目录 /temp 目录默认有特殊权限(t)。该目录存放用户、服务等所产生的临时文件,该目录有绿色的背景颜色,当其他用户都有执行权限(w)时,目录的背景颜色就会为绿色。补充说明2:Linux中判断用户具备的权限 1、查看用户,对于该数据所处的身份,顺序所有者>所属组>其他人,原则是匹配即停止 2、查看相应身份的权限位
格式: chmod u/g/o/a +/-/= r/w/x 文件或目录 chmod -R u/g/o/a +/-/= r/w/x 目录 递归修改权限
格式: chown 属主 文件…修改文件的属主 chown 属主:属组 文件…修改文件的属主和属组 chown :属组 文件…修改文件的属组 chown -R 属主/属主:属组/:属组 文件…递归修改文件的属主/属主和属组/属组
2.4.1 Sticky Bit 权限(中文:粘滞位)
占用其他人(Other)的执行权限(x) 位 显示为 t 或 T,取决于其他人是否有 x 权限,如果有显示为 t,如果没有显示为 T 适用于目录,用来限制用户滥用写入权 在设置了 t 权限的文件夹下,即使用户有写入权限,也不能删除或改名其他用户文档 未设置 t 权限的文件夹下,普通用户有写入权限时,可任意删除或改名其他用户文档
2.4.2 Set GID权限(SGID)
占用属组(Group)的执行权限(x) 位 显示为 s 或 S,取决于属组是否有 x 权限,如果有显示为 s,如果没有显示为 S 对目录有效 在一个具有SGID权限的目录下,新建的文档或目录会自动继承此目录的属组身份 在一个未设置SGID权限的目录下,对于新建文档或目录的属组是谁创建,谁拥有
2.4.3 Set UID权限(SUID)
占用属主(User)的执行权限(x) 位 显示为 s 或 S,取决于属主是否有 x 权限,如果有显示为 s,如果没有显示为 S 仅对可执行的程序有意义 当其他用户执行带SUID标记的程序时,具有此程序属主的身份和相应权限
2.4.4 特殊权限的数字表示形式
类别 字符表示 数字表示 叠加位置
Set UID s 4 User的x位 Set GID s 2 Group的x位 Sticky Bit t 1 Other的×位
2.4.5 补充说明:umask(权限掩码)
其他取决于 umask(权限掩码) 设置 新建目录默认权限为755(最高权限减去系统的权限掩码,即:777 - 022) 新建文件默认权限为644,因为一般文件默认均不给 x 执行权限
2.5.1 ACL策略管理的原因和作用
ACL策略管理的原因:文档归属存在局限性 任何人只属于三种角色:属主、属组、其他人 针对特殊的人实现更精细的控制ACL策略管理作用: 能够对个别用户、个别组设置独立的权限 大多数挂载的EXT3/4、XFS文件系统默认已支持
2.5.2 setfacl命令:定义ACL控制策略
格式: setfacl [选项] u:用户名:权限 文件…对用户定义ACL setfacl [选项] g:组名:权限 文件…对组定义ACL 常用命令选项: -m:修改ACL策略 -x:清除指定的ACL策略 -b:清除所有已设置的ACL策略 -R:递归设置ACL策略补充命令:getfacl getfacl 文件 查看文件的ACL策略 注:判断用户或组拥有什么权限时,先看有没有特殊权限再看属于属主,属组,其他人中的哪一类然后再判定有什么权限。
补充内容:ACL策略-黑名单的使用(单独拒绝某些用户)
前提准备: 真机为Windows机器,VMware虚拟机的话需要添加一块新的硬盘(磁盘),添加步骤:编辑虚拟机设置---->添加---->一路下一步直至完成,这样新的硬盘便添加成功。基础知识: 扇区默认的大小:512字节(早先磁盘的存储是按照扇区来划分存储空间的) 计算机容量单位: 一般用B,KB,MB,GB,TB,PB,EB,ZB,YB,BB来表示,它们之间的关系是: 1KB (Kilobyte 千字节)=1024B, 1MB (Megabyte 兆字节 简称“兆”)=1024KB, 1GB (Gigabyte 吉字节 又称“千兆”)=1024MB, 1TB (Terabyte 万亿字节 太字节)=1024GB, 1PB (Petabyte 千万亿字节 拍字节)=1024TB, 1EB (Exabyte 百亿亿字节 艾字节)=1024PB, 1ZB (Zettabyte 十万亿亿字节 泽字节)= 1024 EB, 1YB (Yottabyte 一亿亿亿字节 尧字节)= 1024 ZB, 1BB (Brontobyte 一千亿亿亿字节)= 1024 YB.
步骤:识别硬盘 => 分区规划 => 格式化 => 挂载使用
3.2.1 识别硬盘:使用命令 llk
3.2.2 分区规划
分区方案(分区模式)有两种,为MBR与GPT。
3.2.2.1 MBR分区模式
概念: 分区类型:主分区、扩展分区(占用所有剩余空间)、逻辑分区 最多只能有4个主分区 扩展分区可以没有,至多有一个 1~4个主分区,或者 3个主分区+1个扩展分区(n个逻辑分区) 最大支持容量为 2.2TB 的磁盘 扩展分区不能格式化,空间不能直接存储数据 可以用于存储数据的分区:主分区与逻辑分区分区的命令:fdisk 输入 fdisk /dev/sdb 之后: m 列出指令帮助 p 查看现有的分区表(存放分区信息的表格) n 新建分区 d 删除分区 q 放弃更改并退出 w 保存更改并退出 分区过程示例: n 创建新的分区----->分区类型 回车 ----->分区编号 回车 ---->起始扇区 回车 ----->在last结束时 +2G p 查看分区表 n 创建新的分区----->分区类型 回车 ----->分区编号 回车 ---->起始扇区 回车 ----->在last结束时 +1G w 保存并退出 查看分区结果:
综合分区示例:分了主分区、扩展分区和逻辑分区 p 查看分区表 n 创建主分区 —>回车 —>回车 —>回车 —>在last结束时 +2G p 查看分区表 n 创建扩展分区 —>回车 —>起始回车 —>结束回车 将所有剩余空间给扩展分区 p 查看分区表 n 创建逻辑分区 ----->起始回车 ------>结束+2G n 创建逻辑分区 ----->起始回车 ------>结束+2G p 查看分区表 w 保存并退出补充命令: partprobe 分区之后linux没有识别出新的分区表,此时就应该用partprobe命令来刷新分区表
3.2.2.1 GPT分区模式
概念: GPT,GUID Partition Table 全局唯一标识分区表 突破固定大小64字节的分区表限制 最多可支持128个主分区 ,最大支持18EB容量 (1 EB = 1024 PB = 1024 x 1024 TB )分区的命令:parted ,既可以分MBR也可以分GBT,但一般用来分GBT 输入 parted /dev/sdd 之后: mktable gpt 指定分区模式 mkpart 划分新的分区 print 查看分区表信息 unit GB 使用GB作为单位,分完区之后使用print命令之后默认采用的是单位M来显示,输入这行命令之后会以单位GB来显示 quit 退出交互环境
3.2.3 格式化:赋予空间文件系统的过程
文件系统: 数据在空间中存放的规则Windows常见的文件系统:NTFS FAT(兼容性强) Linux常见的文件系统:ext4(RHEL6) xfs(RHEL7) FAT 格式化的命令: mkfs. 查看所有类型的文件系统 mkfs.ext4 格式化文件系统ext4 mkfs.xfs 格式化文件系统xfs blkid 查看格式化后文件系统类型
3.2.4 挂载使用
此时的挂载是临时挂载,当虚拟机重启之后挂载就不存在了。
使用的命令: mount df -h 显示正在挂载的设备信息 注:直接输入mount也可以显示正在挂载的设备信息,不过df -h更常使用,可以显示易读单位
3.2.5 开机自动挂载
/etc/fstab 记录开机自动挂载的配置文件/etc/fstab 文件的写入格式如下: 设备路径 挂载点 文件系统类型 参数 备份标记 检测顺序 注:修改这个文件时应谨慎,如果修改错误虚拟机将无常开机。 用到的命令: mount -a 检测/etc/fstab开机自动挂载配置文件,格式是否正确 检测/etc/fstab中,书写完成,但当前没有挂载的设备,进行挂载操作示例:
如果/etc/fstab文件有误,则在开机时无常开机,修复办法如下: 第一步:在开机时,经历较长赶时间加载后,会让输入root的密码 第二步:vim /etc/fstab,进入/etc/fstab文件修改错误的内容
概念: (1)利用硬盘的空间,充当内存的空间 (2)当物理内存占满了,CPU可以将内存的中数据,暂时放入交换空间中,缓解真实物理内存的压力 (3)交换空间最好为内存的2倍,交换空间最大不会超过16G命令: mkswap 硬盘路径 将作为交换空间的硬盘分区的文件系统格式化为swap类型 swapon 查看交换空间组成的成员信息 swapon 硬盘路径 启用交换分区 swapoff 硬盘路径 停用交换分区 free -m 查看交换空间的大小 交换空间的实现方式一:利用硬盘分区制作交换空间
交换空间的实现方式二:利用文件方式 命令:dd ,生成一个大文件 格式: dd if=数据的源头 of=生成的文件(该文件不用自己创建,执行命令之后会自动创建) bs=每次读写数据的大小 count=次数 示例: 以生成一个2G的文件为例,其中 /dev/zero 拥有无限的数据,不断的在生成数字0
开机自动启用交换分区 在文件 /etc/fstab 中记录需要开机自动启用的交换分区,格式如下:
设备路径 挂载点 文件系统类型 参数 备份标记 检测顺序
/dev/sdd2 swap swap defaults 0 0
4.1.1 概念
逻辑卷的作用: 1、整合分散的空间 2、空间支持扩大 术语介绍: 物理卷(PV,Physical Volume): 零散的空闲存储,指没有使用过的(没有格式化过的)硬盘分区或硬盘。 卷组(VG,Volume Group): 整合的虚拟磁盘,由若干个物理卷组成。 逻辑卷(LV,Volume Group): 虚拟的分区,从卷组中划分出。 逻辑卷制作过程: 将众多的物理卷(PV)组建成卷组(VG),再从卷组中划分出逻辑卷(LV)
4.1.2 命令集
功能 物理卷管理 卷组管理 逻辑卷管理
Scan 扫描 pvs vgs lvs Create 创建 pvcreate vgcreate lvcreate Display 显示 pvdisplay vgdisplay lvdisplay Remove 删除 pvremove vgremove lvremove Extend 扩展 / vgextend lvextend
第一步:建立卷组(VG) 格式: vgcreate 卷组名 设备路径 示例: vgcreate systemvg /dev/sdb[1-2]
第二步:建立卷组(VG) 格式: lvcreate -L 大小G -n 逻辑卷名字 卷组名 示例: lvcreate -L 16G -n vo systemvg
(1)逻辑卷的表示: 在liunx中以文件表示逻辑卷设备,会自动在目录 /dev下,以卷组名和逻辑卷名制作出一个快捷方式(例如:/dev/systemvg/vo),此快捷方式的实际指向的名字为 dm-2(逻辑卷的实际名字是 dm-数字)。
(2)格式化逻辑卷:
(3)设置开机自动挂载逻辑卷:
4.3.1 卷组有足够的剩余空间
第一步:扩展逻辑卷的空间 格式: lvextend -L 要扩展到的大小 逻辑卷的绝对路径 示例: lvextend -L 18G /dev/systemvg/vo
第一步补充说明:文件系统大小和空间大小 文件系统大小: 逻辑卷格式化时的大小是多少,文件系统的大小就是多少。 空间大小: 逻辑卷的大小。 在第一步对逻辑卷进行扩展之后,只扩展了逻辑卷的空间大小,但是文件系统的大小还是逻辑卷上次格式化时的大小并没有同步扩展。所以在用命令 lvs 查看逻辑卷时显示大小为18G,但是用命令 df -h 查看时逻辑卷时大小显示为16G。此时就需要刷新文件系统,使文件系统的大小也同步扩展至同等大小。
第二步:扩展逻辑卷的文件系统(刷新文件系统) 命令: xfs_growfs 逻辑卷绝对路径 刷新xfs文件系统 例如:xfs_growfs /dev/systemvg/vo resize2fs 逻辑卷绝对路径 刷新ext4文件系统 例如:resize2fs /dev/systemvg/vo
4.3.2 卷组没有足够的剩余空间
第一步:扩展卷组的空间 格式: vgextend 卷组名 硬盘分区(支持多个) 示例: vgextend systemvg /dev/sdb3 /dev/sdb[5-6]
逻辑卷支持缩减 xfs文件系统:不支持缩减 ext4文件系统:支持缩减卷组划分空间的单位 PE
默认1个PE的大小为4M
题目: 请创建一个大小为250M的逻辑卷名字为 lvredhat 分析: 卷组的单位为 PE ,一 PE 为4M,所以没法给250M会直接给252M,若想实现250M需要修改卷组的 PE 大小
创建逻辑卷的时候可以指定PE个数 格式: lvcreate -l PE个数 -n 逻辑卷名 卷组名 示例: lvcreate -l 108 -n lvhaha systemvg
删除卷组的前提:基于此卷组创建的所有逻辑卷,要全部删除 删除逻辑卷的前提:不能删除正在挂载使用的逻辑卷 格式: lvremove 逻辑卷绝对路径 示例: lvremove /dev/systemvg/vo
廉价冗余磁盘阵列(Redundant Arrays of Inexpensive Disks ) 通过硬件/软件技术(用硬件技术的比较多),将多个较小/低速的磁盘整合成一个大磁盘 阵列的价值:提升I/O效率、硬件级别的数据冗余 不同RAID级别的功能、特性各不相同 需要服务器硬件RAID卡
RAID 0,条带模式 同一个文档分散存放在不同磁盘 并行写入以提高效率 至少需要两块磁盘组成,磁盘利用率100%
RAID 1,镜像模式 一个文档成多份,分别写入不同磁盘 多份拷贝提高可靠性,效率无提升 至少需要两块磁盘组成,磁盘利用率50%
RAID 5,高性价比模式 相当于RAID0和RAID1的折中方案 需要至少一块磁盘的容量来存放校验数据 至少需要三块磁盘组成,磁盘利用率n-1/n
RAID 6,高性价比/可靠模式 相当于扩展的RAID5阵列,提供2份独立校验方案 需要至少两块磁盘的容量来存放校验数据 至少需要四块磁盘组成,磁盘利用率n-2/n
RAID 0+1/RAID 1+0(RAID 10) 整合RAID 0、RAID 1的优势 并行存取提高效率、镜像写入提高可靠性 至少需要四块磁盘组成,磁盘利用率50%
对比项 RAID 0 RAID 1 RAID 10 RAID 5 RAID 6
磁盘数 ≥2 ≥2 ≥4 ≥3 ≥4 存储利用率 100% ≤50% ≤50% n-1/n n-2/n 校验盘 无 无 无 1 2 容错性 无 有 有 有 有 IO性能 高 低 中 较高 较高
程序:静态没有执行的代码,在硬盘空间。 进程:动态执行的代码,在CPU与内存资源中。 父进程与子进程:两者以树型结构表示 进程编号:PID
6.2.1 pstree命令:查看进程树
格式: pstree 显示所有的进程 pstree -a 用户名 显示该用户所执行的完整的命令行 pstree -p 用户名 显示该用户进程的PID编号 pstree -ap 用户名 显示该用户所执行的完整的命令行和对应的PID号 注:systemd(PID永远为1):所有进程的父进程(上帝进程)
6.2.2 ps命令:查看进程快照
格式: ps aux 列出正在运行的所有进程,显示进程信息非常详细 ps -elf 列出正在运行的所有进程,显示进程父进程信息
6.2.3 top命令:交互式(动态)查看进程排名
格式: top -d 刷新秒数 按大写P进行CPU排序 按大写M进行内存排序
6.2.4 pgrep命令:检索进程
格式: pgrep -l 字符串 查找包括该字符串的进程 pgrep -lU 用户名 查找该用户开启的进程 pgrep -lx 进程名 精确匹配完整的进程名 注:如果不加 -l 则只会显示PID号。
6.3.1 进程的前后台调度
格式: & 符号:正在运行的状态放入后台 Ctrl + z 组合键:挂起当前进程(暂停并转入后台) jobs 命令:查看后台任务列表 fg 命令:将后台任务恢复到前台运行 bg 命令:激活后台被挂起的任务
6.3.2 杀掉进程
格式: Ctrl+c 组合键:中断当前命令程序 kill -9 PID… 、kill -9 %后台任务编号 按照进程PID号、后台任务编号杀死进程 killall -9 进程名 按照进程名杀死进程 pkill -9 查找条件 模糊匹配,满足查找条件就杀死 注:不加 -9 也能杀死进程,加上 -9 是强制杀的意思,有的进程必须要强制杀,比如僵尸进程。
7.1.1 修改主机名
7.1.2 修改网卡命名规则
主流的网卡命名规则为:eth0、eth1、eth2…… 本机的网卡名为 ens33
将本机的网卡名由 ens33 修改为 eth0 第一步:vim /etc/default/grub ,在该文件内写网卡命名的规则:net.ifnames=0 biosdevname=0 。 第二步: grub2-mkconfig -o /boot/grub2/grub.cfg ,重新生成网卡命名规则配置文件。 第三步:reboot 重启虚拟机,然后 ifconfig 会发现网卡命已修改为 eth0。
7.1.3 nmcli:命令
7.1.3.1 nmcli 删除自己命名及错误的网卡名
nmcli 会为网卡再起一个名字 网卡名本来为 ens33 后修改为 eth0 ,但是 nmcli 依然记录了原来了原来的网卡名 ens33 查看以上两种名字的命令: nmcli connection show 删除自己命名及错误的网卡名:
7.1.3.2 nmcli 添加网卡命名
如果要使用 numcli 来设置IP地址,那必须使用这个命令所起的网卡名字,所以要用这个命令添加一个网卡名字。
7.1.3 修改IP地址、子网掩码、地址
7.1.3.1 方法一:使用 nmcli
修改的命令: nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.7/24 ipv4.gateway 192.168.4.254 connection.autoconnect yes 解释: nmcli connection 修改 网卡名(用nmcli命令起的名) ipv4.方法 手工配置 ipv4.地址 192.168.4.7/24 ipv4. 192.168.4.254 每次开机自动启用以上所有参数
修改后要激活才能生效: 激活之后用 ifconfig 命令进行查看,或者直接查看网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0,会发现IP都已成功变成修改的IP。
7.1.3.2 方法二:使用 vim 修改网卡配置文件
7.1.4 配置DNS服务器地址
DNS服务器:负责域名解析的机器,将域名解析为IP地址 /etc/resolv.conf :最终有效DNS配置文件
为了日后Web服务器的学习,清空此文件所有内容,原因是搭建Web服务器时,Web服务会读取/etc/resolv.conf文件内容,进行寻找DNS服务器(如果再没有配置DNS服务器的情况下,Web服务去找DNS的配置会影响Web服务启动速度)。清空命令如下:
7.1.5 模板机器的修改
输入vim /etc/fstab后,将里面的UUID换成它所对应的真实设备路径: 修改命令:
7.1.6 真机与虚拟机的通信
克隆出来一台B虚拟机,所有的配置都和A虚拟机一致
7.1.7 常用的网络命令
7.1.7.1 ip命令:查看、添加和删除ip地址
查看IP地址: ip address show(可缩写为ip a s)添加IP地址: ip address add IP地址 dev eth0 (一张网卡可有多个IP)删除添加的IP地址: ip address del IP地址 dev eth0
7.1.7.2 ping 命令:测网络连接
虚拟机 A 的 IP:192.168.4.7 虚拟机 B 的 IP:192.168.4.27
7.2.1 实现远程管理要安装的软件包
openssh-7.4p1-16.el7.x86_64 openssh-server-7.4p1-16.el7.x86_64 openssh-clients-7.4p1-16.el7.x86_64
可通过命令( rpm -qa | grep openssh)来查询系统上有没有安装这三个软件包。
7.2.2 远程登录工具 ssh
命令: ssh root@192.168.4.207 (以root身份登录到192.168.4.207) 注:命令敲回车之后需要输入对方的账户密码
-文件: /root/.ssh/known_hosts ,记录自己曾经远程管理的机器
7.2.3 安全工具 scp(=ssh+cp)
用于支持本机数据传递给别外一台机器,或者将另外一台机器的数据下载到本地。
格式: 下载:scp -r 用户名@服务器:路径 本地路径 上传:scp -r 本地路径 用户名@服务器:路径 注:上传下载目录时需要加上 -r ;命令敲回车之后需要输入对方的账户密码。
7.2.4 实现ssh远程管理无密码验证
场景: 虚拟机A远程虚拟机B时无需密码验证
第一步: ssh-keygen 虚拟机A生成公钥(锁)与私钥(钥匙)进行验证。
第二步: ssh-copy-id 将公钥(锁)传递给虚拟机B。