云计算 python(零基础2)

[root@localhost /]# umask
0022
[root@localhost /]# umask
0022
[root@localhost /]# mkdir 22
[root@localhost /]# ls -ld 22
drwxr-xr-x. 2 root root 6 7月  26 09:08 22
[root@localhost /]# touch 33
[root@localhost /]# ls -l 33
-rw-r--r--. 1 root root 0 7月  26 09:09 33
[root@localhost /]# umask 0255
[root@localhost /]# mkdir 44
[root@localhost /]# ls -ld 44
dr-x-w--w-. 2 root root 6 7月  26 09:10 44
[root@localhost /]# touch 55
[root@localhost /]# ls -l 55
-r---w--w-. 1 root root 0 7月  26 09:10 55
[root@localhost /]# umask 0022
rwxrwxrwx
777
022    w   w
755   
rw-rw-rw-
666
255    w   rx  rx
r---w--w-
系统:
window   下载安装包---安装
内核+应用程序
linux上也可以安装应用程序
linux安装包  .rpm--二进制文件 ---直接安装---命令安装
                    .tar.gz   tar.bz2(源码包)---  二进制文件---安装
rpm包    
管理rpm包的工具       rpm
1.查询   系统中安装的应用程序
查询以安装的程序信息
rpm  -q[子选项]  [软件名]
-qa     查看所有的安装程序     1300程序
[root@localhost ~]# rpm -qa
[root@localhost ~]# rpm -qa | wc -l
1422
-qi   查看程序的信息
[root@localhost ~]# rpm -qi postfix 
Name        : postfix
Epoch       : 2
Version     : 2.10.1
Release     : 6.el7
Architecture: x86_64
-ql     列出程序的所有内容
[root@localhost ~]# rpm -ql postfix 
-qc   查看配置  
-qd  查看文档类的文件
[root@localhost ~]# rpm -qc postfix 
/etc/pam.d/smtp.postfix
[root@localhost ~]# rpm -qd postfix 
-qf   查看文件属于哪一个程序
[root@localhost ~]# rpm -qf /etc/sasl2/smtpd.conf
postfix-2.10.1-6.el7.x86_64
-q  也可以单独使用   可以查看程序是否安装
[root@localhost ~]# rpm -q postfix   程序名
postfix-2.10.1-6.el7.x86_64
[root@localhost ~]# rpm -qa | grep -i "^a"
查看未安装包的信息
rpm  - qp[子选项]  RPM包文件
挂载:
光盘  /dev/sr0  /dev/cdrom
[root@localhost ~]# mkdir /mnt/mount
[root@localhost ~]# mount /dev/sr0 /mnt/mount/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# cd /mnt/mount/
[root@localhost mount]# ls
CentOS_BuildTag  images    repodata
EFI              isolinux  RPM-GPG-KEY-CentOS-7
EULA             LiveOS    RPM-GPG-KEY-CentOS-Testing-7
GPL              Packages  TRANS.TBL
[root@localhost mount]# mount 
/dev/sr0 on /mnt/mount type iso9660 (ro,relatime,uid=0,gid=0,iocharset=utf8,mode=0400,dmode=0500)
卸载    不能在光盘目录中    否则会提示被占用
[root@localhost mount]# cd
[root@localhost ~]# umount /dev/sr0 
[root@localhost ~]# ls /mnt/mount/
一个光盘可以挂载在多个地方
但是一个目录不能挂载多个光盘
[root@localhost ~]# cd /mnt/mount/
[root@localhost mount]# cd Packages/
[root@localhost Packages]# ls | wc -l
3972
-i信息
[root@localhost Packages]# rpm -qpi zziplib-0.13.62-5.el7.x86_64.rpm 
-c 配置文件
[root@localhost Packages]# rpm -qpc ypserv-2.31-10.el7.x86_64.rpm 
-d文档文件
[root@localhost Packages]# rpm -qpd ypserv-2.31-10.el7.x86_64.rpm 
-l  所有的内容
[root@localhost Packages]# rpm -qpl ypserv-2.31-10.el7.x86_64.rpm 

2.安装
安装或升级RPM软件
常用选项
 -i、 -U、 -F    --force、--nodeps、
安装:  安装 要有安装包
挂载点下    /mnt/mount/Package
rpm 
[root@localhost Packages]# pwd
/mnt/mount/Packages
-i安装
[root@localhost Packages]# rpm -ivh postfix-2.10.1-6.el7.x86_64.rpm 
警告:postfix-2.10.1-6.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                                                  ################################# [100%]
正在升级/安装...
   1:postfix-2:2.10.1-6.el7                                ################################# [100%]
[root@localhost Packages]# rpm -q postfix
postfix-2.10.1-6.el7.x86_64
-U   升级程序    当前程序未安装    会把这个程序直接安装
[root@localhost Packages]# rpm -evh postfix
[root@localhost Packages]# rpm -Uvh postfix-2.10.1-6.el7.x86_64.rpm 
-F    升级程序   当前程序未安装     放弃升级
[root@localhost Packages]# rpm -evh postfix
[root@localhost Packages]# rpm -Fvh postfix-2.10.1-6.el7.x86_64.rpm 
--force   强制安装     安装的程序一般都不能使用
--nodeps   忽略依赖关系
[root@localhost Packages]# rpm -ivh postfix-2.10.1-6.el7.x86_64.rpm --force
[root@localhost Packages]# rpm -ivh postfix-2.10.1-6.el7.x86_64.rpm --nodeps
3.卸载   程序名
evh  
e卸载
v显示详情
h带#号
[root@localhost Packages]# rpm -evh postfix
准备中...                                                  ################################# [100%]
正在清理/删除...
   1:postfix-2:2.10.1-6.el7                                ################################# [100%]
4.维护rpm包
重新建立仓库
[root@localhost ~]# rpm --rebuilddb
[root@localhost ~]# rpm --initdb
[root@localhost ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 yum安装    yum应用程序  
[root@localhost ~]# rpm -qa | grep yum
最小化安装     yum程序     使用rpm把yum程序安装好
yum-3.4.3-158.el7.centos.noarch
yum 类似于 手机上的应用商店   
yum安装程序  抓包的
yum分为两种
一种是本地yum     连接的是挂载点     
还有一种网络yum     连接是网络上的仓库  
也就是   yum可以安装本地的包
                     也可以直接去网上下载包进行安装  (虚拟的联网)
yum  应用程序   
/etc/   如果想要更改应用程序的配置  需要修改其配置文件
[root@localhost ~]# cd /etc/yum.repos.d/
yum  自带网络yum的  
本地yum和网络yum是冲突的  
网络yum
[root@localhost yum.repos.d]# mkdir data
[root@localhost yum.repos.d]# mv C* data/
[root@localhost yum.repos.d]# ls
data
[root@localhost yum.repos.d]# mount /dev/sr0 /mnt/mount/
[root@localhost yum.repos.d]# vim aa.repo
[aa]
name=this is local repo
baseurl=file:///mnt/mount
enabled=1
gpgcheck=0
[root@localhost yum.repos.d]# yum list
安装vsftpd应用程序
[root@localhost yum.repos.d]# yum -y install vsftpd
[root@localhost yum.repos.d]# rpm -q vsftpd
vsftpd-3.0.2-22.el7.x86_64
卸载
[root@localhost yum.repos.d]# yum -y remove vsftpd
查看命令属于属于哪一个安装包
[root@localhost yum.repos.d]# yum provides finger
finger-0.17-52.el7.x86_64 : The finger client
[root@localhost yum.repos.d]# yum -y install finger
[root@localhost yum.repos.d]# finger
制作缓存   抓包     网络下    
相当于把包临时保留在yum程序当中(加速)
[root@localhost yum.repos.d]# yum makecache
清空缓存
[root@localhost yum.repos.d]# yum clean all
自己配置一个本地yum源   名称为自己的名字
挂载点为/自己的名字
制作缓存
安装samba服务

源码安装
虚拟机和物理机是互联的    所以文件之间可以直接复制
把安装包复制到虚拟机的主文件夹中
主文件的位置   如果使用root用户登录  在/root中
如果是普通用户登录    则在/home/普通用户
这里我复制的/root
源码安装      tar.gz
1.解压
2.配置  指定其安装的路径。。。。
3.编译  把其转换为二进制文件   让电脑能识别
4.安装
源码安装httpd
安装编译的程序      gcc   gcc-c++    yum安装
[root@localhost ~]# yum -y install gcc*
解压源码包
[root@localhost ~]# tar -zxf httpd-2.2.17.tar\(1\).gz
[root@localhost ~]# cd httpd-2.2.17/
配置   指定安装目录
使用源代码包中     configure的可执行文件
运行可执行文件     sh   文件名  或  ./文件名
[root@localhost httpd-2.2.17]# ./configure --prefix=/usr/local/httpd
#指定安装目录
编译:
[root@localhost httpd-2.2.17]#  make
安装
[root@localhost httpd-2.2.17]#  make  install
echo   $?    可以检查上一条命令是否成功   如果反馈0   没有没问题    
&&     执行完前一条命令  在执行后一条命令
[root@localhost httpd-2.2.17]# cd /usr/local/httpd/
[root@localhost httpd]# ls
bin    cgi-bin  error   icons    lib   man     modules
build  conf     htdocs  include  logs  manual
   
硬盘 / 磁盘
window   1T    512G   (手机空间)
内存     8G     16G    (运行内存)
linux
硬盘 (scsi)   20G        1G
磁盘的类型
区分接口
类型
PATA/IDE  :  并口
SATA :  串口   主要应用于家用电器  或者比较老的服务器(电脑)
SCSI:  串口      现在主要应用于服务器和小型计算机

并口     一条路     8个车道     数据的阻塞
串口     一条路     1个车道     传输的速度比较快

linux
并口类型    hd
串口类型    sd
SCSI---串口 ----sd
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:42.9 GB

100m    20m   50m   
网卡传输数据的最小单位是b   bit
文件系统的最小存储单位是 B    Byte   100/8   12.5M   50    6M   3-4M
1字节--8bit
1Byte--8bit
1024B--1KB
1024KB--1MB
1024MB--1GB
1024GB--1TB

MBR扇区:磁盘当中的第一个扇区    225字节     64个字节是保存分区信息的(分盘信息  (c盘))    每一个分区16字节  
硬盘只能去划分为4个主分区

串口
sd
sda   sdb    sdc
sda1 c盘  sda2 d盘  sda3  F盘
第三块盘的第三个分区
sdc3
硬盘中的主分区数目只有 4 个   sda1   sda2   sda3   sda4(扩展分区)
因此主分区和扩展分区的序号也就限制在1~4
扩展分区再分为逻辑分区
逻辑分区的序号将始终从 5 开始

分盘  分区  
sda 
添加一块硬盘
设置--添加--硬盘--默认的设置(单个存储)---必须重启(reboot)(在实际环境中需要在服务器关机时添加硬盘)
      1、reboot   普通重启
  2、shutdown -r now 立刻重启(root用户使用)
  3、shutdown -r 10 过10分钟自动重启(root用户使用)
  4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)
  如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启
       5、init 1为重启
 Linux centos关机命令:
  1、halt 立刻关机
  2、poweroff 立刻关机
  3、shutdown -h now 立刻关机(root用户使用)
  4、shutdown -h 10 10分钟后自动关机
       5、init 0为关机   
[root@localhost ~]# fdisk /dev/sdb
命令(输入 m 获取帮助):m
  d   delete a partition
 l   list known partition types
 m   print this menu
   n   add a new partition
 p   print the partition table
  q   quit without saving changes
  w   write table to disk and exit
命令(输入 m 获取帮助):n 
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB
命令(输入 m 获取帮助):d
分区号 (1-4,默认 4):4
分区 4 已删除
3个主分区
Select (default e): e
已选择分区 4
起始 扇区 (12584960-41943039,默认为 12584960):
将使用默认值 12584960
Last 扇区, +扇区 or +size{K,M,G} (12584960-41943039,默认为 41943039):
将使用默认值 41943039
分区 4 已设置为 Extended 类型,大小设为 14 GiB
命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (12587008-41943039,默认为 12587008):
将使用默认值 12587008
Last 扇区, +扇区 or +size{K,M,G} (12587008-41943039,默认为 41943039):+2G
分区 5 已设置为 Linux 类型,大小设为 2 GiB
q直接退出不保存
w保存并退出
[root@localhost ~]# fdisk -l | grep sdb
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    12584959     2097152   83  Linux
/dev/sdb4        12584960    41943039    14679040    5  Extended
/dev/sdb5        12587008    16781311     2097152   83  Linux
使用分区盘
首先需要把它格式化   设置系统文件类型
centos默认的文件类型  xfs
文件系统EXT3,EXT4和XFS的区别:
1. EXT3
(1)最多只能支持32TB的文件系统和2TB的文件,实际只能容纳2TB的文件系统和16GB的文件
(2)Ext3目前只支持32000个子目录
(3)Ext3文件系统使用32位空间记录块数量和i-节点数量
(4)当数据写入到Ext3文件系统中时,Ext3的数据块分配器每次只能分配一个4KB的块
2. EXT4
EXT4是Linux系统下的日志文件系统,是EXT3文件系统的后继版本。
(1)Ext4的文件系统容量达到1EB,而文件容量则达到16TB
(2)理论上支持无限数量的子目录
(3)Ext4文件系统使用64位空间记录块数量和i-节点数量
(4)Ext4的多块分配器支持一次调用分配多个数据块
3. XFS
(1)根据所记录的日志在很短的时间内迅速恢复磁盘文件内容
(2)采用优化算法,日志记录对整体文件操作影响非常小
(3) 是一个全64-bit的文件系统,它可以支持上百万T字节的存储空间
(4)能以接近裸设备I/O的性能存储数据
mkfs  -t  文件系统类型  分区设备
[root@localhost ~]# mkfs -t xfs /dev/sdb1
[root@localhost ~]# mkfs -t ext4 /dev/sdb2
[root@localhost ~]# mkfs.
mkfs.btrfs   mkfs.ext3    mkfs.minix   mkfs.xfs
mkfs.cramfs  mkfs.ext4    mkfs.msdos   
mkfs.ext2    mkfs.fat     mkfs.vfat    
[root@localhost ~]# mkfs.xfs /dev/sdb3
更改文件系统类型
[root@localhost ~]# mkfs.xfs -f  /dev/sdb2
挂载:
[root@localhost ~]# mkdir  /sdb2
[root@localhost ~]# mount /dev/sdb2 /sdb2   临时挂载   重启之后挂载会不存在
[root@localhost ~]# cd /sdb2/
分区的步骤
添加硬盘---重启---分区---格式化(文件系统类型  xfs)---挂载
只要在挂载点下存放数据  相当于存放在对应的分区中
自动挂载
[root@localhost ~]# umount /dev/sdb2
[root@localhost ~]# vim /etc/fstab
/dev/sdb2       /sdb2   xfs     defaults  0 0
挂载的设备      挂载点     文件系统类型   使用默认的配置    0   0
[root@localhost ~]# mount -a   #将自动挂载文件中的内容再次挂载
光盘挂载
[root@localhost ~]# vim /etc/fstab
/dev/sr0        /mnt    iso9660   defaults 0 0
查看设备块的uuid和类型
[root@localhost ~]# blkid /dev/sdb2
/dev/sdb2: UUID="b8680c6d-7413-4ade-a356-9848991e53ae" TYPE="xfs" 
把sdc1分区指定文件类型为ext4
挂载点  /sdc1   使用自动挂载
 
交换分区的添加  
[root@localhost ~]# swapon -s
文件名                类型        大小    已用    权限
/dev/dm-1                                  partition    2097148    124672    -1
[root@localhost ~]# fdisk /dev/sdb
sdb5
更改分区的类型
命令(输入 m 获取帮助):t
分区号 (1-5,默认 5):5
Hex 代码(输入 L 列出所有代码):L
Hex 代码(输入 L 列出所有代码):82       
已将分区“Linux”的类型更改为“Linux swap / Solaris”
/dev/sdb5        12587008    16781311     2097152   82  Linux swap / Solaris
命令(输入 m 获取帮助):w
[root@localhost ~]# partprobe /dev/sdb   #再次保存
文件系统类型
[root@localhost ~]# mkswap /dev/sdb5
正在设置交换空间版本 1,大小 = 2097148 KiB
无标签,UUID=e44a8cdc-2703-4b0d-8f5e-0241ebf0e208
[root@localhost ~]# swapon -s   #查看现在交换的分区的大小
文件名                类型        大小    已用    权限
/dev/dm-1                                  partition    2097148    135168    -1
[root@localhost ~]# swapon /dev/sdb5    #添加交换分区
[root@localhost ~]# swapon -s   #查看
/dev/dm-1                                  partition    2097148    135168    -1
/dev/sdb5                                  partition    2097148    0    -2
永久添加
[root@localhost ~]# vim /etc/fstab
/dev/sdb5       swap    swap    defaults 0  0

把sdc盘分出2个主分区    2个逻辑分区
将第一个逻辑分区设定文件系统类型为xfs    挂载/aa   临时挂载
将第二个逻辑分区作为添加到交换分区当中     自动添加

lvm(logical     volume     manager)   逻辑卷管理
普通分区    fdisk  
缺点: 分区的大小是固定的  没有办法增加  或者缩小分区的大小
逻辑卷     分区     
优点:可以自己添加或者缩小分区的大小  
还可以做逻辑卷快照       将当前的硬盘数据保存快照
安装虚拟机    
自动(普通分区)      手动(lvm的分区方式)
逻辑卷分区
硬盘        8G      500         16G   1200
               2个8G
逻辑卷
如何制作逻辑卷
/dev/sdb   /dev/sdc
实验
两个分区
/dev/sdd1   /dev/sdd2
[root@localhost ~]# fdisk -l | grep sdd
磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
分三个主分区   做逻辑卷   更改分区的类型
命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
[root@localhost ~]# fdisk -l | grep sdd
磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/sdd1            2048     4196351     2097152   8e  Linux LVM
/dev/sdd2         4196352     8390655     2097152   8e  Linux LVM
/dev/sdd3         8390656    12584959     2097152   8e  Linux LVM
创建物理卷
[root@localhost ~]# pvcreate /dev/sdd1 /dev/sdd2
  Physical volume "/dev/sdd1" successfully created.
  Physical volume "/dev/sdd2" successfully created.
[root@localhost ~]# pvscan
  PV /dev/sda2   VG centos          lvm2 [<39.00 GiB / 4.00 MiB free]
  PV /dev/sdd1                      lvm2 [2.00 GiB]
  PV /dev/sdd2                      lvm2 [2.00 GiB]
  Total: 3 [<43.00 GiB] / in use: 1 [<39.00 GiB] / in no VG: 2 [4.00 GiB]
[root@localhost ~]# pvdisplay    #详细查看
[root@localhost ~]# pvremove /dev/sdd1
  Labels on physical volume "/dev/sdd1" successfully wiped.
[root@localhost ~]# pvcreate /dev/sdd1
创建卷组
[root@localhost ~]# vgcreate vg /dev/sdd1 /dev/sdd2
[root@localhost ~]# vgscan
[root@localhost ~]# vgdisplay 
对卷组扩容
[root@localhost ~]# pvcreate /dev/sdd3
[root@localhost ~]# vgextend vg /dev/sdd3
[root@localhost ~]# vgscan
减少
[root@localhost ~]# vgreduce vg /dev/sdd3
Removed "/dev/sdd3" from volume group "vg"
[root@localhost ~]# vgdisplay 
删除
[root@localhost ~]# vgremove vg
  Volume group "vg" successfully removed
指定pe的大小  pe默认是4M   创建必须是pe的整数倍
[root@localhost ~]# vgcreate vg /dev/sdd1 /dev/sdd2 -s 16M
[root@localhost ~]# vgdisplay 
逻辑卷
[root@localhost ~]# lvcreate -L 1G -n lv /dev/vg  -L指定大小
  Logical volume "lv" created.
[root@localhost ~]# lvcreate -l 20 -n lv1 /dev/vg   -l   指定pe的个数
  Logical volume "lv1" created.
[root@localhost ~]# lvscan 
[root@localhost ~]# lvdisplay
逻辑卷的增容和缩容
 [root@localhost ~]# lvextend -L +512M /dev/vg/lv
[root@localhost ~]# lvextend -l +3 /dev/vg/lv1
[root@localhost ~]# lvreduce -L -512M /dev/vg/lv
[root@localhost ~]# lvreduce -l -5 /dev/vg/lv1
删除
[root@localhost ~]# lvremove /dev/vg/lv1
格式化
[root@localhost ~]# mkfs -t xfs /dev/vg/lv
挂载
[root@localhost ~]# mkdir /lv
[root@localhost ~]# mount /dev/vg/lv /lv
[root@localhost ~]# df -hT   查看磁盘的占用率
/dev/vg/lv=/dev/mapper/vg-lv
-h  更易读显示
-T  显示文件系统类型
[root@localhost vg]# vim /etc/fstab 
/dev/vg/lv      /lv     xfs    defaults 0 0
/dev/mapper/vg-lv  /lv   xfs    defaults 0 0 
[root@localhost vg]# mount -a
逻辑卷  
磁盘---普通---物理卷---卷组 ---逻辑卷---格式化---挂载
fdisk  /dev/..    分区类型改8e
pvcreate   普通分区
vgcreate    卷组名    物理卷 
lvcreate     -L/-l      大小/个数    -n  名字    卷组
格式化   
挂载

逻辑卷正在使用   
[root@localhost vg]# lvextend -L +512M /dev/vg/lv
[root@localhost vg]# df -hT
添加空间之后    空间没有添加到使用的空间当中   需要把添加的空间格式化
[root@localhost vg]# xfs_growfs /dev/vg/lv
[root@localhost vg]# df -hT
ext4                      resize2fs /dev/vg/lv
缩容(xfs不支持)
[root@localhost sdb1]# lvcreate -s -n lv1 -L 1G /dev/vg/lv
  Logical volume "lv1" created.
-s  拍摄快照
-n  指定快照名
-L   指定快照的大小
[root@localhost sdb1]# ls /dev/vg
lv  lv1
恢复快照      只能使用一次   在没有挂载的情况下恢复
[root@localhost sdb1]# umount /dev/vg/lv
[root@localhost sdb1]# lvconvert --merge /dev/vg/lv1
  Merging of volume vg/lv1 started.
  vg/lv: Merged: 100.00%
[root@localhost sdb1]# ls /dev/vg
lv
使用sde盘和sdf盘创建逻辑卷
使用的分区/dev/sde1   /dev/sdf2
pe大小为8M    逻辑卷大小512M
逻辑卷和卷组的名称自己自定义
创建完逻辑卷后把其添加容量  增加512M

raid
磁盘阵列
提高硬盘的容量    提高硬盘的读写     保证数据的安全
实际环境当中
raid    磁盘阵列卡     磁盘阵列柜     
软件设定磁盘阵列  
raid        raid0      raid1    raid5    raid01      raid10
raid0
相当于把数据分开存储   最少需要两块硬盘
优点:只是单纯提高了读写的效率   
缺点:数据不安全   如果一块硬盘损坏  将会影响到所有的数据
raid1
相当于把数据复制了一份    最少需要两块硬盘
优点:可以保证数据的安全性   即使一块硬盘坏掉   数据也不会受到 影响
缺点:读写的速率并没有提高   因为还是只有一块硬盘在工作   另一块硬盘负责去复制前一块硬盘的数据    当工作中硬盘坏掉后,才会使用另一块硬盘
raid5  
最少需要3块硬盘    采取的是奇偶校验机制    第一块硬盘中保存一部分数据    第二块硬盘中保留一部分数据    第三块硬盘中保留所有的数据
优点:提高了读写效率     有容错机制   当一块硬盘坏掉后,不影响整个数据    
缺点:不能同时坏掉两块硬盘    费用比较大
raid01:  raid0+1
两块做好的raid0   组成raid1   最少需要4块硬盘
优点:提高了读写效率    保证数据的安全    同时坏掉两块硬盘  不影响数据
同组硬盘可以都坏掉    不同组的不同数据硬盘可以同时坏  但是不同组的同数据硬盘不能都坏掉
raid10:     raid1+0
两块做好的raid1   组成raid2   最少需要4块硬盘
优点:提高了读写效率    保证数据的安全    同时坏掉两块硬盘  不影响数据
同组的硬盘不能都坏掉     不同组的硬盘可以随便坏掉
raid50    6
raid0+1
sdb1  sdb2   sdc1  sdc2
[root@localhost ~]# fdisk /dev/sdb
[root@localhost ~]# fdisk -l | grep sdb
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/sdb1            2048     4196351     2097152   fd  Linux raid autodetect
/dev/sdb2         4196352     8390655     2097152   fd  Linux raid autodetect
[root@localhost ~]# fdisk /dev/sdc
[root@localhost ~]# fdisk -l | grep sdc
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/sdc1            2048     4196351     2097152   fd  Linux raid autodetect
/dev/sdc2         4196352     8390655     2097152   fd  Linux raid autodetect
[root@localhost ~]# rpm -qa | grep mdadm
mdadm-4.0-13.el7.x86_64
创建两个raid1
[root@localhost ~]# mdadm -Cv /dev/md1 -a yes -n2 -l1 /dev/sdb1 /dev/sdc1
Continue creating array? y
-C :创建
-v:  显示详情信息
/dev/md1:  创建raid1的名称
-a yes:  自动创建后端的设备
-n2: 使用的分区个数
-l1 :等级   raid1   1     raid0    0      raid5     5
[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid1] 
md1 : active raid1 sdc1[1] sdb1[0]
      2094080 blocks super 1.2 [2/2] [UU] 
unused devices: <none>
[root@localhost ~]# mdadm -Cv /dev/md2 -a yes -n2 -l1 /dev/sdb2 /dev/sdc2
[root@localhost ~]# mdadm -Cv /dev/md0 -a yes -n2 -l0 /dev/md1  /dev/md2
[root@localhost ~]# cat /proc/mdstat Personalities : [raid1] [raid0] 
md0 : active raid0 md2[1] md1[0]
      4184064 blocks super 1.2 512k chunks      
md2 : active raid1 sdc2[1] sdb2[0]
      2094080 blocks super 1.2 [2/2] [UU]
md1 : active raid1 sdc1[1] sdb1[0]
      2094080 blocks super 1.2 [2/2] [UU]      
unused devices: <none>
[root@localhost ~]# mkdir /md0
[root@localhost ~]# mount /dev/md0 /md0
[root@localhost ~]# df -hT
删除raid
因为数据是在硬盘当中的  所以即使阵列不存在   数据也不会队列
[root@localhost ~]# umount /dev/md0
[root@localhost ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
[root@localhost ~]# cat /proc/mdstat 
raid5     
n3     -l5      

/dev/sdb3    /dev/sdc3    /dev/sdc5

0731复习
命令   
shell  是命令解析器      /bin/bash        开发 --- shell脚本(命令的结合)逻辑思维     开发    逻辑     
产品   游戏   登录   用户名   
                              密码
网站--用户访问---日志   
--切割---shell   
第一章:
type   
cd   cd  -    cd      cd..
su
ls    -l    --color     -a   -A   -R   -h    -d
alias      unalias
du    -s   -h    -a
mkdir    -p
touch   
cp    -r    -f     -p    -i
mv     
rm     -r    -f   -i
pwd   
ln   -s   
硬链接    同一个分区当中   
软连接    不在同一个分区   
which   -a
find   -name    -size     
-a    -o
man
--help    外部  
help   命令字   内部
第二章:
/
/boot:
/home:
/etc:
/root:
/dev:
/bin
/sbin:
/usr:
/mnt:
cat       tac
more
less
tail     head
gzip    bzip2     -d    1-9   6
gunzip    bunzip2
tar    目录压缩---目录---归档文件---压缩----归档压缩文件
-c  -x   -p   -v   -f    -z   -j
grep   -v   -i     ^    $
echo   
echo  $PATH
<    >    >>     2>   2>>   &>   &>>
|    
vim    文件编辑器    很重要
第三章    用户和组    权限
普通用户     
程序用户
管理用户 

基本组
附加组
用户必须依赖组
用户--基本组        只能有一个基本组    多个附加组
useradd     创建用户   默认会创建和用户同名的基本组
-u   -g(必须存在)   -G   -e  yyyy-mm--dd      -M   -s    -d   
/etc/passwd   /etc/shadow   /etc/group   /etc/gshadow
passwd      
-l   -u   -S    -d
usermod     
-U   -L    -l     -d    -s    -e   -G   -g   -u
userdel
-r
groupadd
-g
gpasswd    添加用户
-a   -d   -M
查看    id     groups       finger   w   who   users
权限
ls   -l    ls   -ld
访问权限      rwx
归属
chmod     u/g/a/o  +-rwx   文件/目录
数字
421 421  421    777
-R
chown     属主:属组     文件/目录
                属主
              :属组
chgrp    
-R
set   借用属组或者属主的权限          x---s      /usr/bin/passwd
粘滞位    o    t     x     公共目录777  
s u4    g2    t1
7777
setfacl   权限微调    acl控制
针对一个用户设置权限
-m     u:用户名:权限   
          g:组名:权限
-x
getfacl
ls   -l      +
umask     0022
目录 777     755
普通 666      644
可执行777
第四章:
安装程序                           
linux      rpm     源码
rpm     rpm命令
查看     查看安装好      查看未安装的
rpm  -qa     -d     -f     -i     -c     -l
rpm  -qp     -d   -i   -c   -l    
安装
rpm   -ivh      
force    --nodeps      
卸载
evh
重建    --rebuild
yum    一定要会
网络   本地
。。
本地     自己编写
[aa]
name=jjafa
baseurl=file:///mnt
enabled=1
gpgcheck=0    
yum   list
yum makecache   
yum    clean  all
yum  provide    
yum -y   install
yum -y  remove
网络下载rpm   
rpm  -ivh 
yum -y localinstall    安装当前目录下的rpm    
yum  -y   groupinstall     
源码编译安装    公司用的多
归档压缩包
解压
配置
编译
安装
可以规定程序安装在指定目录下   qq
yum安装依赖关系
源码包---程序    
第五章:
分区
普通分区逻辑卷
fdisk  
83   
格式化挂载      xfs    ext4
-l   
fdisk   
n
t
p
d
q
w
partprobe   /dev/
sdb1   挂载
sdb2
逻辑卷分区     
物理卷----卷组   ----逻辑卷
pe   4M整数倍
pvcreate    
vgcreate
lvcreate    -L
-l    pe的个数
增加和缩小
如果逻辑卷使用   如何增加和缩小容量(ext4)
xfs----只支持增容
raid  磁盘阵列  
买硬件   ----  lvm
raid0    raid1    raid5   raid01     raid10
分区
该类型
mdadm   
-C  v      -n  -l     0    1   5     -a   yes
格式化
挂载
磁盘配额       
磁盘  ---  目录  
可以限制    aa---512M     bb---512M
                  aa---10目录    bb--20目录
磁盘配额      文件系统类型必须是xfs
[root@localhost ~]# rpm -qa | grep quota
quota-nls-4.01-17.el7.noarch
quota-4.01-17.el7.x86_64
[root@localhost ~]# fdisk /dev/sdd
[root@localhost ~]# fdisk -l | grep sdd
磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/sdd1            2048     4196351     2097152   83  Linux
[root@localhost ~]# mkfs -t xfs /dev/sdd1
[root@localhost ~]# mkdir /sdd1
[root@localhost ~]# mount /dev/sdd1 /sdd1/
如果直接挂载   是没有办法实现磁盘配额的功能     
需要通过配置让其实现磁盘配额功能
[root@localhost ~]# umount /dev/sdd1
[root@localhost ~]# mount -o usrquota,grpquota /dev/sdd1 /sdd1/
[root@localhost ~]# mount
/dev/sdd1 on /sdd1 type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
创建文件或目录个数进行限额
inode  权限  名字。。。。   block  空间
inode
[root@localhost /]# xfs_quota -x -c 'limit -u isoft=4 ihard=5 aa' /dev/sdd1  
-x  专家模式
-c  执行后面的命令
-limit  限制   
-u  用户    isoft   对inode软限制    ihard   硬限制    aa  用户名 
/dev/sdd1   磁盘     /sdd1  目录也可以写  因为现在是挂载[root@localhost /]# ls -ld /sdd1
drwxr-xr-x. 2 root root 6 8月   2 08:50 /sdd1
[root@localhost /]# chmod 777 /sdd1
[root@localhost /]# su aa
[aa@localhost /]$ cd /sdd1
[aa@localhost sdd1]$ touch {1..7}
touch: 无法创建"6": 超出磁盘限额
touch: 无法创建"7": 超出磁盘限额
[aa@localhost sdd1]$ ls
1  2  3  4  5
对占用的空间进行限额    block
[root@localhost /]# xfs_quota -x -c 'limit -u bsoft=4M bhard=5M aa' /dev/sdd1
[root@localhost /]# su aa
[aa@localhost /]$ cd /sdd1/
[aa@localhost sdd1]$ rm -rf *
[aa@localhost sdd1]$ ls
[aa@localhost sdd1]$ dd if=/dev/zero of=test bs=1M count=6
dd   无限复制
if  读取  /dev/zero    可以无限生成空字节     /dev/random  随机
of    生成文件名    写入文件
bs   一次写入多大的内容
count  次数
dd: 写入"test" 出错: 超出磁盘限额
记录了6+0 的读入
记录了5+0 的写出
5242880字节(5.2 MB)已复制,0.0451467 秒,116 MB/秒
[aa@localhost sdd1]$ ls
test
[aa@localhost sdd1]$ du -sh
5.0M    .
自动挂载
[root@localhost /]# vim /etc/fstab
/dev/sdd1 /sdd1   xfs     defaults,usrquota,grpquota    0  0
[root@localhost /]# mount -a
#如何查看当前的配额 
[root@localhost /]# xfs_quota -x -c 'quota aa' /dev/sdd1
[root@localhost /]# xfs_quota -x -c 'quota -i aa' /dev/sdd1
linux开机的流程
开机自检     检查自己的硬件设备 
加载硬盘---MBR  512字节    64字节    分区表
446个字节   引导程序   
55AA  2个字节       结束符  
引导程序----整个程序
GRUB菜单
加载内核   linux   
[root@localhost /]# uname   -r
3.10.0-862.el7.x86_64
启动第一个进程  
init    PID
0      target    关机状态,使用该级别时将会关闭主机
1      rescue.target    单用户模式,不需要密码验证即可登录系统,多用于系统维护
2   multi-user.target    用户定义/域特定运行级别。默认等同于3
3     multi-user.target    字符界面的完整多用户模式,大多数服务器主机运行在此级别
4    multi-user.target 用户定义/域特定运行级别。默认等同于3
5    graphical.target    图形界面的多用户模式,提供了图形桌面操作环境
6    reboot.target    重新启动,使用该级别时将会重启主机
init  5     图形界面
init  3     字符界面
init  0  关机
init   6  重启
系统服务的控制
程序   
systemctl        start   程序名    启动
systemctl      stop  程序名    关闭
systemctl    restart   程序名    重启
systemctl     reload   程序名  重新加载
systemctl    enabled   程序名   加入到开机自启当中
systemctl    disabled   程序名   从开机自启中移除
systemctl     status    程序名   查看程序的运行状况
systemctl    is-enable   程序名    查看当前程序是否在开机自启当中

进程管理:
程序:存储在硬盘中的代码和数据文件
进程:程序运次那个后会派生进程,进程存在内存中,并且进程还会调用CPU等硬件资源
线程:调用进程资源实现程序的功能
一个进程可以派生多个线程
进程   父进程    子进程
PID   进程的编号
查看进程的信息
查看静态进程的统计信息
ps
a  显示当前终端下所有的进程
u   使用用户为主的形式表现
x    列出详情的所有信息
[root@localhost ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
ps
-e    查看系统当中的所有的进程
-l    是以长格式的形式显示
-f    以完整的形式显示
[root@localhost ~]# ps -elf
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
[root@localhost ~]# ps -elf | grep 程序名
动态查看进程
[root@localhost ~]# top
cpu    使用cpu的空间%
mem   占用内存的%
swap    交换空间的%
空格是刷新
P    按照cpu的占用百分比进行排序
M    按照内存占用的百分比排序
T    安装运次的时间排序
h   查看帮助信息
q    退出
java编写的程序
[root@localhost ~]# jps
pgrep   过滤出指定条件的pid
[root@localhost ~]# pgrep -l "log"   -l   列出程序名
401 xfs-log/dm-0
595 xfs-log/sda1
786 abrt-watch-log
791 abrt-watch-log
805 systemd-logind
1205 rsyslogd
3175 xfs-log/sdd1
-U:指定特定用户
[root@localhost ~]# pgrep -l "log" -U root
-t:指定终端
pgrep -l -U teacher -t tty1
pstree命令
以树形结构列出进程信息
pstree -aup
-a:显示完整信息
-u:列出对应用户名
-p:列出对应PID号
[root@localhost ~]# ls -R / &
pid
[root@localhost ~]# ls -R /etc &
进程的挂起  ctrl  +z
top
[1]+  已停止               top
jobs  查看挂起的程序
运行挂起的程序    
fg  编号
[root@localhost ~]# pgrep -l "log"
401 xfs-log/dm-0
595 xfs-log/sda1
786 abrt-watch-log
791 abrt-watch-log
805 systemd-logind
1205 rsyslogd
3175 xfs-log/sdd1
pkill命令
-U:根据进程所属的用户名终止相应进程
 -t:根据进程所在的终端终止相应进程
kill   pid
[root@localhost ~]# kill 1205
[root@localhost ~]# pgrep -l "log"
-9    kill  强制关闭     kill  -9       kill   -kill    kill和killall的选项通用
-2     INT  中断(ctrl+c)
-3    QUIT   退出
-15   TERM    终止
-18     CONT   持续
-19    STOP    暂停
-1      HUP     重新加载
killall   程序名
[root@localhost ~]# systemctl start rsyslog
[root@localhost ~]# killall rsyslogd
[root@localhost ~]# pgrep -l "log"
ctrl+c   结束

计划任务:
一次性的计划任务:
at命令
[root@localhost ~]# at 12:30 2021-08-04     #先写时间点   回车
at> reboot<EOT>    #ctrl+d提交
job 1 at Wed Aug  4 12:30:00 2021
[root@localhost ~]# atq   #查看一次计划任务的列表
1    Wed Aug  4 12:30:00 2021 a root
[root@localhost ~]# atrm 1   #删除    删除的时候删除的是id
[root@localhost ~]# atq
crontab
进入公司第一步   需要查看计划任务    
按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作
属于周期性计划任务
主要设置文件
 全局配置文件,位于文件:/etc/crontab 
 系统默认的设置,位于目录:/etc/cron.*/
 用户定义的设置,位于文件:/var/spool/cron/用户名
分钟    取值为从0到59之间的任意整数 
小时    取值为从0到23之间的任意整数 
日期    取值为从1到31之间的任意整数
月份    取值为从1到12之间的任意整数
星期    取值为从0到7之间的任意整数,0或7代表星期日
命令    要执行的命令或程序脚本 
*       表示该范围内的任意时间
,       表示间隔的多个不连续时间点
-       表示一个连续的时间范围
/       指定间隔的时间频率
应用示例
0  17  *  *  1-5        周一到周五每天17:00 
30  8  *  *  1,3,5        每周一、三、五的8点30分
0  8-18/2  *  *  *        8点到18点之间每2小时
0  *  */3  *  *        每3天
[root@localhost ~]# crontab -e   #设定
10 8 * * * echo 11111 >> /xixi
[root@localhost ~]# crontab -l   #查看
10 8 * * * echo 11111 >> /xixi
[root@localhost ~]# crontab -r    #清空掉所有的计划任务
[root@localhost ~]# crontab -l
no crontab for root
如果只想删除一条   就需要进入编辑当中直接删除一行
[root@localhost ~]# useradd aa
[root@localhost ~]# crontab -e -u aa
* * * * * echo 111111 >> /home/aa/xixi 
[root@localhost ~]# crontab -l -u aa
* * * * * echo 111111 >> /home/aa/xixi
[root@localhost ~]# crontab -r  -u  aa   #清空掉所有的计划任务

IP
网络中都是通过IP来通信
iPv4    ipv6
iPv4
32位
10101010.10101010.10101010.10101010
二进制--十进制
0-9    192.168.2.1
ip地址5类
A:   0-126       255.0.0.0
B:   128-191    255.255.0.0
C:   192-255     255.255.255.0
D:
E:
127.0.0.1   是本地回环地址  代表的是本机
c类地址
前三位是网络为   后一位为主机位
192.168.2.50------192.168.2.60
网段 
255     254
192.168.2.0---192.168.2.255
网段地址          广播地址     不能使用的
192.168.2.1-192.168.2.254/24
子网掩码      4位     网络为1   主机位为0
255.255.255.0
11111111.1111111.11111111.00000000
24
255个地址
子网掩码     网络位为1   主机位为0
255.255.255.0
网段地址   该网段当中的第一个地址  
广播地址    该网段当中的最后一个地址
ip地址的配置
ip的配置文件
[root@localhost network-scripts]# ifconfig    查看网卡的信息    查看激活的网卡信息
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.50  netmask 255.25
-a   查看所有网卡的信息
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vim ifcfg-ens33 
 BOOTPROTO=none
dhcp  动态获取
static  静态
none   两种都可以
ONBOOT=yes
IPADDR=192.168.2.10
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.10  netmask 255.255.255.0  broadcast 192.168.2.255
使用命令配置
[root@localhost ~]# nmcli connection delete ens33 
成功删除连接 'ens33'(79b5807b-bd17-4c39-a864-dfbc9fb7377b)。
[root@localhost ~]# nmcli connection add type ethernet ifname ens33 con-name ens33
连接“ens33”(e13aecc7-397b-4835-9436-acd8f05cf6cf) 已成功添加。
[root@localhost ~]# nmcli connection modify ens33 ipv4.addresses 192.168.2.20/24
[root@localhost ~]# nmcli connection modify ens33 ipv4.gateway 192.168.2.1
[root@localhost ~]# nmcli connection modify ens33 ipv4.method manual
[root@localhost ~]# systemctl restart network
图形界面
[root@localhost ~]# nmtui

两台主机只能能ping同
两台主机使用的是同一个网络适配器
同一个网段
[root@localhost ~]# ping 192.168.2.50
4 bytes from 192.168.2.50: icmp_seq=1 ttl=64 time=1.01 ms
[root@localhost ~]# ping -c 2 192.168.2.50
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.2.1
killall   kill
计划任务   at
crontab

三种配置ip的方式
一台基础环境     空环境     dhcp服务
dhcp服务
作用:给未配置ip的主机分配ip地址
优点:1.减轻管理人员的压力
           2.避免输入错误的问题
           3.避免ip地址的冲突
           4.提高ip地址的利用效率
流程:1.客户端发送一个广播消息   询问那个服务可以分配IP地址
           2.dhcp服务会返回一个响应   并且告诉客户端可以分配ip地址的范围
           3.客户端选择一个ip
           4.dhcp服务会先确认ip地址没有分配给其他主机,之后dhcp服务就会把这个ip响应给客户端
dhcp服务分配ip地址  不是永久的  是由租约时间的    服务端会规定默认的租约时间
租约是自动续约的   除非客户单不在需要这个ip地址
当租约时间剩余50%    会给客户端一次提醒
当租约时间剩余20%    会给客户端提醒    如果继续需要这个ip,那么会自动续约
模拟公司里向其他主机分配ip
服务端    ip    dhcp    192.168.2.40
client    没有ip
服务端:安装dhcp服务
yum配置好
[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# rpm -qa | grep dhcp
dhcp-common-4.2.5-68.el7.centos.x86_64
dhcp-4.2.5-68.el7.centos.x86_64
dhcp-libs-4.2.5-68.el7.centos.x86_64
更改dhcp服务的配置
[root@localhost ~]# cd /etc/dhcp/
[root@localhost dhcp]# ls
dhclient.d             dhcpd6.conf  scripts
dhclient-exit-hooks.d  dhcpd.conf
[root@localhost dhcp]# vim dhcpd.conf 
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
样例文件
[root@localhost dhcp]# vim /usr/share/doc/dhcp*/dhcpd.conf.example
原来的空配置文件改名
[root@localhost dhcp]# mv dhcpd.conf dhcpd.bak
配置文件的样例文件复制一份到当前目录下   一定是dhcpd.conf这个名字
[root@localhost dhcp]# cp /usr/share/doc/dhcp*/dhcpd.conf.example   dhcpd.conf
[root@localhost dhcp]# ls
dhclient.d             dhcpd6.conf  dhcpd.conf
dhclient-exit-hooks.d  dhcpd.bak    scripts
[root@localhost dhcp]# vim dhcpd.conf 
7 option domain-name "www.aaa.com";   #默认搜索域
  8 option domain-name-servers 192.168.2.40;    #dns地址的ip  本机的ip
10 default-lease-time 21600;    #默认租约时间
 11 max-lease-time 43200;     #最大租约时间
26 subnet 192.168.2.0 netmask 255.255.255.0 {    #声明一个网段  本机的网段
 27     range 192.168.2.50 192.168.2.200;     #地址池的范围
 28     option subnet-mask 255.255.255.0;    #分配的子网掩码
 29     option routers 192.168.2.1;   #分配的网关
 30 }
[root@localhost dhcp]# systemctl restart dhcpd
同一个网络适配器
客户端
dhclient  -d
[root@localhost ~]# ip a
[root@localhost ~]# dhclient -r  删除获取的ip
[root@localhost ~]# dhclient -d
DHCPOFFER from 192.168.2.40
DHCPACK from 192.168.2.40 (xid=0x2b7bca9e)
bound to 192.168.2.130 -- renewal in 10259 seconds.

分配一个固定的ip地址
基于上一个实验
[root@localhost dhcp]# vim /etc/dhcp/dhcpd.conf 
31 host aa {
 32     hardware ethernet 00:0c:29:ac:88:fa;
 33     fixed-address 192.168.2.100;
 34 }
[root@localhost dhcp]# systemctl restart dhcpd
客户端
[root@localhost ~]# dhclient -r
[root@localhost ~]# dhclient -d
DHCPACK from 192.168.2.40 (xid=0x1c4c2ae1)
bound to 192.168.2.100 -- renewal in 10608 seconds.
[root@localhost ~]# ip a
server
192.168.8.10
范围:自己定


ftp服务     能够用来保存数据
提供共享的功能     共享目录
ftp  c/s
ftp有上传和下载的功能
client可以通过用户名和密码登录到ftp主机上   下载或者上传数据
3个实验:
1.匿名登录
共享目录   /var/ftp    vsftp
用户   ftp
server  192.168.2.40   yum
client   192.168.2.50   yum
server
[root@localhost ~]# yum -y install vsftpd
client
[root@localhost ~]# yum -y install ftp
server
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
 12 anonymous_enable=YES   #开启匿名用户登录
16 local_enable=NO   #关闭本地用户登录
 29 anon_upload_enable=YES
33 anon_mkdir_write_enable=YES   #是否让匿名用户有上传和下载的功能
[root@localhost ~]# systemctl restart vsftpd
客户端:
[root@localhost ~]# ftp 192.168.2.40  #服务端的ip
server
[root@localhost ~]# systemctl stop firewalld  #直接关闭防火墙
[root@localhost ~]# firewall-cmd --add-service=ftp --permanent 
success
[root@localhost ~]# firewall-cmd --reload
success
client:
[root@localhost ~]# ftp 192.168.2.40
Connected to 192.168.2.40 (192.168.2.40).
220 (vsFTPd 3.0.2)
Name (192.168.2.40:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 
server   /var/ftp
[root@localhost ~]# cd /var/ftp/
[root@localhost ftp]# ls
pub
[root@localhost ftp]# touch hahahaha
client
ftp> ls
227 Entering Passive Mode (192,168,2,40,21,38).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 Aug 05 01:41 hahahaha

本地用户登录    用户名和密码
共享目录  该用户的家目录
server端
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=NO
16 local_enable=YES
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# useradd user01
[root@localhost ~]# passwd user01
更改用户 user01 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
client:
[root@localhost ~]# ftp 192.168.2.40
Connected to 192.168.2.40 (192.168.2.40).
220 (vsFTPd 3.0.2)
Name (192.168.2.40:root): user01
331 Please specify the password.
Password:
230 Login successful.
使用本地用户登录  共享目录是在登录用户的家目录下
server
[root@localhost ~]# cd /home/user01/
[root@localhost user01]# touch hahahahahahaha
client
-rw-r--r--    1 0        0               0 Aug 05 02:17 hahahahahahaha
虚拟用户登录
为了保证整个系统的安全   虚拟出一些用户作为ftp登录的用户    这些用户用于登录ftp  不能登录整个系统   
server
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
[root@localhost vsftpd]# vim users.list
one
123
two
456
three
789
[root@localhost vsftpd]# db_load -T -t hash -f users.list users.db
把自己编写的文件转换为电脑能识别的二进制文件
-T  转换   -t  类型   hash
-f   要更改的文件
[root@localhost vsftpd]# chmod 600 users*   #基于安全考虑
虚拟用户需要基于本地用户
[root@localhost vsftpd]# mkdir /www
[root@localhost vsftpd]# useradd -d /www/qq -s /sbin/nologin qq
1.需要登录
2.ftp  共享目录     /www/qq
[root@localhost vsftpd]# chmod 755 /www/qq
[root@localhost vsftpd]# chown qq:qq /www/qq
[root@localhost vsftpd]# cd /etc/pam.d/
[root@localhost pam.d]# vim user.vu
#!PAM-1.0
auth  required  pam_userdb.so  db=/etc/vsftpd/users   #登录模块
account  required  pam_userdb.so  db=/etc/vsftpd/users    #登录测试的模块
[root@localhost pam.d]# vim /etc/vsftpd/vsftpd.conf 
125 pam_service_name=user.vu    #pam认证使用的文件名称
126 userlist_enable=YES
127 tcp_wrappers=YES
128 guest_enable=YES    #开启虚拟用户
129 guest_username=qq    #虚拟用户依赖的实际用户
130 allow_writeable_chroot=YES   #虚拟用户有可写的权限
[root@localhost pam.d]# systemctl restart vsftpd
client:
[root@localhost ~]# ftp 192.168.2.40
Connected to 192.168.2.40 (192.168.2.40).
220 (vsFTPd 3.0.2)
Name (192.168.2.40:root): one
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
更改主机名
[root@localhost ~]# hostname xnj0806
[root@localhost ~]# bash
[root@aaa ~]# hostnamectl set-hostname aaa
[root@aaa ~]# bash


      


   


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据库从删库到跑路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值