坚持#第235天~哎呀,最近培训云计算忙得都把写博客的大事给忘了,赶快捡起来

培训云计算

从2017年11月14日开始,我就在尚观培训云计算啦

大半个月的概括、总结、学习体会、知识点(很杂,因为刚想起来要写博客,就把上课做过的笔记全写上去了,没整理):

慕课学习方式!

在尚观这里的生活每天都过得很充实很开心很快乐

linux桌面上的home是里面的root文件夹

云计算结束进程的时候要慎重,不然就会导致浪费很多时间

 

 

虚拟机里面和魔兽一样不能宽屏了:关机(虚拟机),显示器的分辨率,开机

 

必考:修改主机名(暂时)

hostname litao

永久:hostnametclset-hostname litao

如何修改系统的时间date112315182017.00 月日时分年.秒 表示2017.11.2315:18:00

查du是显示占用的大小包括子目录里的占用大小;和df -hT是磁盘分区使用情况有使用率;还有fdisk -l 分区路径和parted分区路径 print都是显示分区占用大小的

看能不能head -8/etc/passwd /etc/group | tail -1 >> /test/user.txt (head不能一起将两个文件重定向给文件内容,只能一个一个的弄)

如何查看进程的pid?

pidof进程名
pgrep -l 进程名的关键字
ps -ef
ps aux&>


pstree -p

查看系统中所有设置了suid权限的文件,并统计有多少个?
find / -type f -perm -4000
find / -type f -perm -4000 | wc -l

vim的三种模式是?答:命令模式、插入模式、尾行模式

 

 

 

 

 

 

查看所有用户!

cat /etc/passwd

修改用户的家目录(提示usermod)!

在root用户下,输入usermod -d /tmp/lbxtmp/lbxdir 用户名

修改bin与sbin!(bin存放的是系统命令,sbin则是管理命令)

在root用户下,输入usermod -s /sbin/nologin 用户名

 

修改密码:passwd name

--stdin是一步设置密码的选项:echo 123456| passwd --stdin 用户名

密码存放在head -1/etc/shadow里面

$6$是sha512的加密格式

$1$是MD5

修改用户:usermod name

删除用户:userdel name

添加组:groupadd name

删除组:groupdel name

修改组:groupmod name

查看是否存在etc/passwd

验证密码etc/shadow

/etc/passwd:保存用户信息的文件

/etc/shadow:保存用户密码相关信息的文件

/etc/group:保存组信息的文件

/etc/gshadow:保存组密码相关信息的文件

-d是目录

3位一体:所有者、所属组、其他人

 

回顾重命名

 

3、chmod  —— 修改或者设置文件的权限的change mode

    1)数字权限   最常用的方式(*****)

        权限对应的数字

            r     4

            w   2

            x     1

            -      0

            例如:rw- r-- r-- : 644

    # chmod 777 passwd

    # ll passwd

    -rwxrwxrwx 1 priv3 priv1 1578 Jul 28 09:58passwd

 

为什么有的文件有读的权限,但就是读不了?因为那个文件的目录没有可读的权限。

 

目录可以一对一减,文件不能一对一减

 

libanxian能编辑,lbx只能看,怎么搞?

FACL权限的使用!

setfacl -m u:libanxian:rw/acl/test.txt

setfacl -m u:lbx:r/acl/test.txt

 

ctrl+c停止

 

pidof firefox是显示firefox的进程号码,强制杀死进程:kill -9 进程号码

 

 

 

用户和组管理里面有练习:

 

 

umask专题栏目:

umask的目录部分

    $ umask

        0002如何得来?这是默认的权限;

        0000代表rwx rwx rwx

        0001代表rwx rwx rw-       

        0002代表rwx rwx r-x

        0003代表rwx rwx r--

        0007代表rwx rwx ---

        注意没有0008,会出现8进制数越界

        0010代表rwx rw- rwx,利用777-010=767(结论:目录777可以一对一减,文件一对一减偶数,若为奇数要退1)

        0022代表rwx r-x r-x,利用777-022=755

       

        文件的尝试:

        0000代表rw- rw- rw-,利用666-000=666(结论:文件666一对一减偶数,若为奇数要退1)

        0001代表rw- rw- rw-,利用666-000=666

        0002代表rw- rw- r--,利用666-002=664

        0003代表rw- rw- r--,利用666-002=664

        0004代表rw- rw- -w-,利用666-004=662

        0005代表rw- rw- -w-,利用666-004=662

        0006代表rw- rw- ---,利用666-006=660

umask习题:

计算:当umask分别为0003和0020的时候用户创建文件和目录的默认权限(文件666一对一减偶数,若为奇数要退1)

0003的时候创建文件:666-002=664,权限为:-rw-rw-r--(别忘记了第一个位置写-还是d)

0003的时候创建目录:777-003=774,权限为:drwxrwxr--

0020的时候创建目录:777-020=757,权限为:drwxr-xrwx

0020的时候创建文件:666-020=646,权限为:-rw-r--rw-

当一个用户的umask是033,他所建立目录的权限是什么?

033就是0033,创建目录是吧,用777-033=744,权限为:drwxr--r--

 

 

 

先把主机镜像初始化做好:就是关闭防火墙、安装yum包之类的:

systemctl stop firewalld

systemctl disable firewalld

getenforce

setenforce 0

cd /etc/yum.repos.d切换到etc下的yum.repos.d文件夹

mkdir CentOS/  创建CentOS文件夹

mv CentOS* CentOS/  将yum.repos.d文件夹下的以CentOS开头的文件移动到刚才创建的CentOS文件夹

vim centos7里面写

[centos]

name=centos7.3  这个是版本

baseurl=file:///mnt/cdrom  这个是路径

enable=1

gpgcheck=0上面这些

 

mkdir -p /mnt/cdrom绝对路径,在mnt里面创建一个cdrom文件夹

vim /etc/rc.local里面写,绝对路径,进入/etc下面的rc.local的vim页面

#!/bin/bash

# THIS FILE IS ADDED FORCOMPATIBILITY PURPOSES

#

# It is highly advisable tocreate own systemd services or udev rules

# to run scripts during bootinstead of using this file.

#

# In contrast to previousversions due to parallel execution during boot

# this script will NOT berun after all other services.

#

# Please note that you mustrun 'chmod +x /etc/rc.d/rc.local' to ensure

# that this script will beexecuted during boot.

上面以#开头的是注释

touch /var/lock/subsys/local绝对路径,创建一个local文件

mount /dev/sr0 /mnt/cdrom上面这些,sr0是光驱的设备名

 

mount /dev/sr0 /mnt/cdrom

lsblk与df一样

df -h

yum clean all清除下载包

yum repolist

mv /etc/yum.repos.d/centos7cenos7.repo

yum clean all(使用yum repolist之前要清除yum缓存)

yum repolist

ifconfig

vim/etc/sysconfig/network-scripts/ifcfg-ens33网卡配置文件里面写

TYPE=Ethernet

BOOTPROTO=static

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

NAME=ens33

UUID=70ad347a-6d95-4c04-be3e-7349a2f8d78b

DEVICE=ens33

ONBOOT=yes

IPADDR=192.168.189.10

PREFIX=24

上面这些prefix子网掩码

 

ifdown ens33

ifup ens33

ifconfig

vim/etc/sysconfig/network-scripts/ifcfg-ens33

ifdown ens33

ifup ens33

shutdown -h now

 

 

祁飞

KVM虚拟机

用XShell去写Linux终端代码

Shell脚本

飞哥视频

郭老师在吴老师的办公室!!!

 

2017/11/20

平台分为LAMP 和LNMP平台

 

L是linux,

A是Apache

M是Mysql

P是PHP

P是Python

P是Perl

N是Nginx

 

为什么不用Window而用Linux学习云计算?

收费和开源的区别

查看OS的网站:www.netcraft.com

 

unix与linux,最先开始出现的是unix,非常贵,而且不公开源码,后来有人想,代码应该是人类共享的资源,应该开放啊,于是自己就写了一个Minix系统,后来和别人一起发展成了Linux

 

技师和工程师考证费用8000元,一天考完,没有考,不过这些知识我都会

 

下载centos的网站:centos.org

下载redhat的网站:redhat.com/zh

 

top: M -- 根据驻留内存大小进行排序。
P -- 根据CPU使用百分比大小进行排序

test.txt o:r--

        jim     tom

now :r--      r--

want:rw-     ---

how?

ACL!

getfacl 文件或目录   是查看

user::rw-

group::r--

other::r--

setfacl -m(modify) u:jim:rwtest.txt

再用ll查看,会发现权限后面有个+号是使用了ACL,这个时候的ll是个错误的显示

 

setfacl -d不是删除ACL啊

setfacl -x u:jim test.txt才是删除ACL啊,这个要一个个的取消

setfacl -b test.txt是全部删除

 

设置默认权限 d(d表示default默认的意思,后面的不是固定目录),和ugid一样的,该目录下的东西(包括子目录)会继承目录的ACL权限

setfacl -d -m u:jim:rw-  test.txt

setfacl -d -mg:libanxian9527:rw-   test.txt

setfacl -d -k  test.txt

 

chown -R是递归

 

文件系统权限(针对root):避免误删除文件或目录

lsattr查看   lsattr test.txt

chattr修改

chattr +i test.txt除了看,什么都做不了,使用lsattrtest.txt会出现i

chattr +a test.txt除了看,追加(vim不能追加),什么都做不了,使用lsattr test.txt会出现a

 

创不了东西的原因:父母录没有设x,

 

ug+s命令的所属者的权限,命令的所属组的权限

 

 

进程(听讲)

查看进程PID:

pidof 程序名

pgrep -l 程序名的关键字(适用于模糊查询)

 

静态查看:ps,pstree

ps的用法:

ps -ef,C是CPU使用率,TTY是终端或开机自启的,问号就是开机自启的,不是问号的话就是终端的名字

可以看终端:tty回车,注意tty0是第一个,会给出一个路径,cd到那个路径,然后ll就能查看所有已经打开的终端了,包括卡的终端和xshell里面的终端

倒数第二个是运行了多久,最后一个是进程名称

 

ps aux里面可以看状态来区分相同名的进程

运行暂停僵尸休眠状态

 

pstree -a 可以显示参数

pstree -p 可以显示pid

 

动态查看:top

load average是负载的平均值,有三个,一般不超过1,越大负载过高,过小就浪费了资源,始终最好

top下面的操作

M按内存使用率排序

P按CPU使用率排序

top -p pid或ps -l pid可以查看指定的某个进程的top状态

 

进程的前后台调度:

终端前台如果开启一个程序进程,例如开启眼睛xeyes,那个终端就不能再使用了,必须要放到后台去,开始就放入后台:xeyes &,运行时放入后台:ctrl+z,这种是放在后台并停止状态,想让他在后台运行的话,bg 中括号里的号就能在后台运行了,放到前台:fg 1,前台又不能使用了。

不管在前台还是后台,关闭终端就关闭了进程:nohupxeyes &就行了。

 

如何终止呢?

常用的信号:

     -1 SIGHUP:重置进程的配置,即不停止服务的情况下,重新读取配置文件

            kill -1 PID 或者kill -HUP PID

     -2 SIGINT:中断(interrupt),ctrl+c           

     -9 SIGKILL:强制杀死进程          

     -15 SIGTERM:正常终止进程,此信号为kill默认

     -18 SIGCONT: 继续,和20相反,fg/bg

     -19 SIGTSTOP:暂停,ctrl+z

ctrl+c,kill pid采用的是-15

信号的使用:查pid,  kill -tstop pid       kill -cont pid      kill -19暂停pid       kill -18继续 pid

 

不用pid,接名字即可:

pkill -信号 名字   暂停的要强制杀死-9

用户杀死:pkill -U -9(信号) 用户名

 

nice:PR是优先级,NI是nice好心级,调nice可以控制优先级

nice用法:

xeyes &

top看一下xeyes在哪,NI是0,PR默认是20

ps aux 里面可以看状态来区分相同名的进程

renice 数字(调NI,可以调为负数,越小越优先)   PID

nice -n -10 xeyes(名字而不是PID,因为还没产生PID)

可以使用top来查看效果

 

安装眼睛的步骤:

df -h

mkdir /mnt/centos7u3

cd /mnt/centos7u3

mount /dev/sr0/mnt/centos7u3

ls好坑啊,在xshell里面看不到,在卡的终端里看的到

cd Packages

cd /etc/yum.repos.d

ls

pwd

vim localyum.repo

[localyum]

name=centos7u3

baseurl=file:///mnt/centos7u3

gpgcheck=0

enabled=1

:wq

cat localyum.repo

pwd

yum repolist

yum install xeyes -y

xeyes打开眼睛

(注意:在卡的终端里打开后在Xshell里面可以操作,mount /dev/sr0 /mnt/centos7u3只是临时生效,重启的时候在输入一遍这个即可)

 

 

高级文件管理及命令:

stat hell.txt比ll更详细,

时间:ll是最后一次修改文件内容的时间;stat里面的第三个时间是属性修改的时间

 

find 不写路径就是在当前目录下查找

哇,还可以按所有者、所属组来查找呀:find/ -user jim

一个?表示任意一个字符的意思(注意是一个字符啊,不是多个,??才是两个字符)

一个[]只匹配里面的一个字符:例如:ls [123].txt,会显示1.txt,2.txt,3.txt,又例如:ls [12][34]会显示:13.txt,14.txt,23.txt,24.txt,其中[123]还可以这样写[1-3]。

 

       -atime访问时间      -mtime修改内容时间  -ctime修改文件属性时间 

find  /tmp -atime +3          //查找/tmp目录下3天前访问过内容的文件

find  /tmp -ctime +3          //查找/tmp目录下3天前修改过属性的文件

find  /tmp -mtime +3          //查找/tmp目录下3天前修改过内容的文件

+2 表示2天以前(以前就是钱,加钱啊),-2表示2天以内

查找系统3天以内1天之前被访问的文件?

find / -type f -atime +1-atime -3

注意:修改了内容,文件大小也会发生变化

 

+10M 普通文件

find / -size +10M -type f

 

删除30天之后的:

 

 

 

保存7天以内访问的.conf文件

find /etc -name "*.conf"-type f -atime -7 -exec cp {} /tmp/test \;

还有个-exec

 

find /etc -name"*.conf" -ok cp {} /tmp/test \;这里有分号,\;是结束标志,-ok是互动是否删除

 

 

vim 编辑一个已存在的文件,访问时间不会改变,修改内容的时间和修改属性的时间会变化。

 

2017/11/24高级文件之file、du、grep听讲:

file /tmp/zht.rpm会发现该普通文件的类型是RPM的软件包

 

du -h /etc可以查看etc目录及里面的目录大小

ll -d /etc可以查看空目录的大小单位是字节

 

只想要root开头的用户信息

grep “^root” /etc/passwd

-i是忽略大小写,-c是统计个数

grep -n “root” /etc/passwd 是显示root账户及显示原本所在的行号

查看用户的代码:grep"/bin/bash$" /etc/passwd

注意grep的对象是文件的内容,而不是目录

 

必考3. 显示/etc目录下所有的目录文件,不要显示子目录下的目录????待解答!

ls /etc → ll /etc | grep"^d"(提示:grep "^d"是只显示属性开头是d的行,也就是目录)

 

统计进程个数:ps -ef | wc -l

 

将用户按照UID排序:

sort /test.txt按第一个字符顺序排序

sort -n /test.txt按数值大小(阿拉伯)进行排序

sort -u /test.txt去掉重复的行只保留一个

sort -t”:” -k5(不计算分隔符) /test.txt

sort的对象是文件的内容,不能是目录

sort 文件名 可以排序并显示文件内容

将所有可登录用户的用户名,UID,shell打印出来,并按UID排序:

grep "/bin/bash$"/etc/passwd | sort -t":" -k3

 

uniq /test.txt是去掉连续重复的行缩成一行

uniq -c /test.txt是去掉连续重复的行缩成一行并打印重叠数-c

uniq -d /test.txt只打印连续重复的行

uniq -i是忽略大小写,去掉连续重复的行缩成一行

 

统计一个文件的内容里有多少重复的行?

解法套路:先sort 文件,排序,然后用uniq -c可以重叠并显示重叠数

 

只打印用户的名字:

cut -d”:” -f1 /etc/passwd

只打印用户的名字和UID

cut -d”:” -f1,3 /etc/passwd

注意分隔符还可以为英文字母,但只能为一个字符

 

cat > /tmp/new.txt可以写内容,按ctrl + d退出

 

tr “a” “A” /etc/passwd是错的,因为tr后面不能加目录,还要注意,替换的字符个数要一致,注意这个不会对原文见进行修改

应该为:cat /etc/passwd |tr “a” “A”或

tr “a” “A” < /test.txt

tr -d是删除

tr -d “a” < /test.txt

tr -s 是将多个缩减成一个

tr -s “a” < /test.txt

tr -s “a” “A” < /test.txt这是缩减成一个并替换

管道的用法:| tr -s “要缩减的内容”

必考:案例:只想要ifconfigens33里面的ip地址?

ifconfig ens33 | grep"inet "不会了

ifconfig ens33 | grep"inet " | tr -s “ ” | cut -d” ” -f3没有想到tr -s “ ”是将连续的空格给缩减成一个空格啊

 

split切割文件(可以拆散文件,不会对原文见产生影响):

split -l按行数切割 2两行一个文件-d以数字作为切割 -a 3(后缀是几位数) a.txt

 

tree /etc查看目录及子目录的树形结构

tree / -L 1查看根下面的第一层,大写-L

 

需要注意的知识点:

-exec后面不能接缩写,比如ll必须要写成ls -l才行

 

磁盘管理听讲:

加一个硬盘不能直接使用,还需要给这个硬盘进行分区操作

第一块硬盘叫/dev/sda,第一块硬盘的第一块分区叫/dev/sda1

分区的好处:C盘坏掉了,对其他盘不会有影响,还方便管理

分区完了还要格式化,格式化是制作文件系统,磁盘组织结构,规划了存放多少文件

FAT32格式的U盘不支持拷贝单个文件超过4G

格式化完了还要挂载,就像U盘一样,要插入电脑才能使用,挂载就是提供一个接入口,与文件系统进行绑定,就可以进行访问了

 

磁道、扇区1个512Byte,柱面13个100M,磁盘容量=512byte*扇区数量*柱面个数*磁头个数

影响磁盘读写速度的因素:寻道时间,旋转时间,数据传输时间

机械硬盘不能接触空气的灰尘,所以不能拆

 

2017/11/27

分区表的类型:

MBR只能分4个主分区,第一个扇区512byte,分为446引导,64分区表,2魔法分隔符;64/16=4个分区

4个分区任选一个作为扩展分区,这是为了突破主分区为4的限制

逻辑分区是从5开始,最多到15,一块硬盘里只能有一个扩展分区(功能是包含逻辑分区),最多2TB,fdisk -l查出来时候磁盘标签类型是MSDOS或dos的形式

而GPT可以有128个分区,大于2TB的也能分

fdisk针对MBR(小于2TB),可以分4个主分区

fdisk -l可以查看磁盘大小、root和swap分区

 

需要写入火影笔记的:

 

必考:- d b c l s p类型

先要添加磁盘并重启才能识别新添加的磁盘

fdisk分区:看一下这个硬盘设备是否存在(添加成功了没):df -hT可以查看已经挂载到系统上的信息,所以查不出来,ll /dev/sd

终端就是字符类型的,ll/dev/pts/0,搜索:find / -type p,ll文件名管道文件,进程与进程之间用来通信的;还有一种就是套接字文件s开头 :find / -type s,ll 文件名套接字文件,两台计算机之间用到ip地址,ftp是共享20和21端口,ssh是进入终端的22端口。

查看第一、第二块硬盘的信息:fdisk -l

只看第二块硬盘的信息:fdisk -l/dev/sdb

start:

给MBR分区

fdisk /dev/sdb

m查看帮助{

d是删除一个分区

m查看菜单

n添加一个分区

p打印分区表

q是不保存退出,w才是保存退出

w写表到磁盘中并退出(一开始是写到内存里,内存里保存的东西重启就没有了)

}

n回车

p回车

1回车

起始扇区需要写开始的位置么?不需要,默认就行了

回车

+1G回车,此时第一个分区就好了

p可以打印分区表

开始第二个:

n

p

回车

回车

+2G

开始第三个:

n

p

回车

回车

+2G

开始第四个:

n

p

回车

回车

+2G

删除第四个

d

4

p

开始第四个

n

e

回车

回车

开始第五个

n

回车

+3G

p查看一下

w

ll /dev/sd

ll /dev/sdb或如果不存在通知内核重读

partx -a /dev/sdb后面有1-5就已经被内核、操作系统识别了

 

练习:

第一个分区1G

2-3:2G

4:扩展分区

5:3G

解:

fdisk /dev/sdb

n

p回车

1回车

默认起始回车

+1G

开始第二个:

n

p

2

起始回车

+2G

开始第三个:

n

p

3

起始回车

+2G

开始第4个扩展分区:

n

e

4

起始回车

大小回车

开始第4个里面的第一个逻辑分区

n

回车

+3G

w保存

 

格式化:

mkfs(make files)制作文件系统

start:

mkfs.xfs /dev/sdb1(xfs、vfat)

查看格式化后的类型:blkid/dev/sdb1

 

挂载:

start:

mkdir /mnt/sdb1

mount /dev/sdb1 /mnt/sdb1

df -hT查看挂载

思考:在/mnt/sdb1里面创建东西,然后再将/dev/sdb1格式化,之前的东西会怎么样(格式化之前要卸载已经挂载的,卸载之前要退出那个目录)?

东西会消失,并且多出来一个lost+found文件夹

找不找得回来?rescue是在parted  sdb里面用的,由于是格式化,所以找不回来。

那我把这个分区删掉能不能找回来呢?(删除分区的时候不用卸载,但格式化之前要卸载,删除分区有fdisk和parted呀,不要搞错了,注意要保存w)

 

 

rescue总结:

①用fdisk/dev/sdb(注意不要写成了sdb1)分的:

格式化(需要卸载):找不回来;

删除分区(不需卸载):找不回来;

②用parted分的(分区之前要卸载分区号umount sdb1而不是umount sdb,查看挂载的命令是df -hT;mklabel gpt(磁盘类型,不是文件系统类型)这个是parted分区固定的第一步格式;parted里分区的口令就是mkpart primary 1(从1开始) 1G(从哪里结束,设置大小为1G);mkpartprimary 1G  3G(设置大小为2G)):

格式化(需要卸载;mkfs.ext4-f是将文件系统类型强制转换为ext4):找不回来

删除分区(在parted里面用rm 分区号删除分区,之前要卸载):可以找回来

 

思考:如何查看磁盘类型(不是查看文件系统类型blkid)?

答:parted里面按p有个Partition Table就是磁盘类型或fdisk里面按p

思考:如何将磁盘类型gpt改为dos(原始的是dos)?

答:试试mklabel msdos(只有msdos和gpt两种,msdos就是dos)

 

 

parted分区:

parted -l查所有的

parted 磁盘 parted查指定的

GTP类型:

parted -l查看分区大小、类型

start:

因为在挂载sdb1,所以要卸载(删不删无所谓,但一定要卸载):

删除分区(删除之前要卸载):fdisk;d;1;w保存退出,查看是否成功删除分区:ll /dev/sd,如果没有成功删除,就要重读分区表:partx -d/dev/sdb删除分区使用-f 添加分区用-a

umount /dev/sdb1

df -h查看一下是否真的卸载了

parted /dev/sdb

help是帮助{

mklabel,MBR转为 GPT

print可以打印分区表

mkpart part-type可以制作一个分区

quit保存并退出,可以写q

rm 分区号码 可以删除分区

}

mklabel gpt   //这个是parted分区固定的第一步格式

y

p查看一下分区表

开始第一个分区:

mkpart primary 1(从1开始)  2G(从哪里结束,若是2G)

p

开始第二个:

mkpart primary 2G 5G

mkpart primary 5G 7G

mkpart primary 7G -1(-1就是剩下的空间)

删除第四个:

rm 4

mkpart primary 7G 10G

 

格式化:

mkfs.xft -f(强制格式化)

mount /dev/sdb1 /mnt/sdb1

 

非交互式(可以写到脚本里面):

parted /dev/sdb mklabel gpty是否转

parted /dev/sdb p

parted /dev/sdb mkpartprimary 1 2G(第一个分区分2G)

交互式的时候-1不需要用单引号,而非交互式需要用单引号

非交互式要转为MBR不能直接写MBR,要写msdos

 

 

 

 

找回分区里的数据:

强制格式化

挂载

写一个txt文件

删除分区:parted /dev/sdb

sdb1是第一个分区,删除用的号码就用1,试试删除的非交互式如何写

rm 1

q

rescue 1 2G

Y

试试格式化找不找得回来(格式化的找不回来了)

 

新添加的硬盘直接使用parted是不能分区的,要提前转换成gpt类型才行

parted /dev/sdb mklabel gpt

 

dd if=/dev/zero of=a.txtbs=1M count=100制作文件为100M

 

 

文件系统听讲:

对分区格式化,就是划分为一个一个的块

数据块:超级块(记录文件系统的整体信息)、inode(记载文件属性,不记载文件名,文件名在目录里面,目录怎么找到的?查看目录的索引号:ls -d -i / )

一个文件a.txt 15kb占用4个数据块(4kb一个数据块);

inode->数据块,如果没有了inode,就没有了文件

 

mkfs.xfs -b size=8192/dev/sdb2(blocksize)数据块变大了,数量变小了,浪费一个块里剩余的空间

 

1TB,700G已使用,创建不了文件的原因:可能是inode用完了

如何知道inode还剩多少:答:df -i

 

软链接听讲:

创建了软连接文件,再移动mv,就会失效;试试能不能对目录做。

硬链接听讲:

a.txt,b.txt的inode都是1100,输出是文件名和inode删掉

主要是做备份的,删除一个对另外的不会有影响

不用加-s,索引号不变

ll第3个参数就是硬链接的个数,只能对文件做,不能对目录做;

/etc和/boot是两个不同的文件系统,不能跨文件系统

 

ll -i查看inode

find / -inum 索引号

查到了可以去删除硬链接的两个东西,删除了两个才有效

 

挂载听讲:

asyncc异步写入;sync同步写入

挂载是临时生效的,开机生效:auto /noauto是否支持开机挂载

使所有用户可以使用mount命令:user(普通用户)/nouser

start:

df -h

mount

cd /mnt/sdb1

touch a.txt

mount -o remount,ro/mnt/sdb1改为只读

mount -o remount,rw/mnt/sdb1改为读写

mount | tail -1查看

 

开机挂载听讲:

vim /etc/fstab

/dev/sdb1   /mnt/sdb1 文件系统类型xfs   属性default,_netdev(找得到就挂载上去,找不到就跳过去,避免开机卡死)   开机是否做磁带机备份(0代表否)0    是否检查文件系统0

卸载之前要退出挂载点

 

blkid 查看所有设备的uuid

blkid  /dev/sda1查看指定设备的uuid

vim /etc/fstab

UUID=

卸载

mount -a是重读,重读了会挂载上去

 

第二种开机挂载听讲:

vim /etc/rc.local

将挂载的命令写到这个里面去

mount 设备 挂载点

vim /etc/rc.d/rc.local(需要给这个+x)

 

 

交换分区听讲:

free -m

top

swapon -s

swapon -d

 

交换分区的做法:

mkswap /dev/sdb2格式化成swap分区

激活: swapon /dev/sdb2

挂载swap

start:

parted /dev/sdb p查看格式

mkswap dev/sdb3

swapon /dev/sdb3激活

swapon -s查看 /dev/sdb3

swapon -d查看

想永久生效:

vim /etc/fstab

/dev/sdb3  swap swap defaults 0 0

第二种方法:

/dev/zero无限0资源,可以从里面提取

/dev/null 黑洞

start:

dd if(源地址)=/dev/zero of(目标地址)=/tmp/a.swap bs=500M count=1很卡

dd if=/dev/zeroof=/tmp/a.swap bs=1M count=500 很快

mkswap /tmp/a.swap

swapon /tmp/a.swap

chmod 600 /tmp/a.swap

swapon -s

swapoff是停止

swapon -s查看

 

 

多个部门之间共享文件听讲:

ftp服务器,通过ip地址来访问共享资源

位置-浏览网络-链接到服务器

ftp://192.168.1.250

文件夹空间满了怎么办,做限制每人的文件个数、空间大小

哈哈,文件个数用inode限制,空间大小用block限制

限制对象:普通用户和组

soft软限制:到了期限给警告,但还能使用

hard硬限制:到了期限不能使用

grace time时间限制:超过软限制开始计时,超过时间限制变成硬限制

查看是否支持磁盘配额属性:(设置了配额想重新分区就要删除配额了)

 

限制jim只能创建10个文件

start:

文件系统属性支不支持quota:

mount | tail -1

没有uquota gquota就是不支持配额;

卸载umount /mnt/sdb3

设置为支持mount -ouquota,gquota /dev/sdb1 /mnt/sdb1

 

可以设置分区开机挂载

    # vim /etc/fstab

    /dev/sdb1 /mnt/sdb1  xfs  defaults,uquota,gquota  0 0

 

添加用户和组(组的话,组成员创建的文件之和最多创建10个文件)

xfs_quota -x -c "report(列出) -ubih' /mnt/sdb3固定格式

7.限制的操作:

xfs_quota -x -c 'limit isoft=8(inode软限,8个文件出现警告centos7里面不存在警告bsoft是block的软限,限制文件大小的) ihard=10(硬限,最多只能创建10个文件) -u(用户) quota1(用户名)' /mnt/sdb3

查看xfs_quota -x -c "report(列出)-ubih' /mnt/sdb3

验证:切换普通用户去那个磁盘里面创建文件(目录的其他人没有w的权限就要o+w),创建10个文件后再创第11个文件时会出现超过磁盘配额

 

 

2017/11/28

听讲:项目配额对所有人都会有限制,包括root,作用是限制所有人加起来的总和。

 

raid(提高读写速度和安全性)听讲:

电脑的数据存放在磁盘里,磁盘坏了数据就丢了,要备份就需要时间,而且还有可能备份的过程中出错,导致数据也丢失,怎么办,就出现了raid磁盘阵列。

sda和sdb可以有不同的组合方法,就是raid的级别:0,1,5,6,10,50,60。

raid 0:

5G sda和5G sdb组合名叫10G md0

大小平均分配,同时读取,速度快,安全低,一坏都坏。。

raid 1:

5G sda和5G sdb组合名叫5G md1

大小一致,克隆,速度一般,安全高。。

raid 5(>=3块硬盘):

5G sda和5G sdb和5G sdc组合名叫10G md5

每块用来存一部分校验码,校验码的总大小就是一个磁盘的大小,若坏了一块,则能通过校验码计算坏的那块硬盘的大小,同时可以有备盘(替补)。。

4块279G的磁盘制作raid5:

可用大小为279G*(4-1)=837G,就是要-1个校验码所占用的磁盘,raid5最多只能坏一块,因为只能坏一块才能算出坏的那块的大小。

设备数量-n 3加上备盘数量-x 1共需要4块磁盘制作raid5.(S)spares是备盘,备盘不是校验码的盘,区别对待。

name=...:0是root

raid 6(和5差不多)。。

raid 10(>=4块硬盘) 由两组raid 1构成raid 0:

5G sda和5G sdb组合名叫5G raid 1;

5G sdc和5G sdd组合名叫5G raid 1;

5G raid 1和5G raid 1组合名叫10G raid0,也叫md10

最多允许各边同时坏一块

速度快,安全高。。

 

用10块10G的硬盘制作raid 50 有多少可用空间?60g可以同时坏几块硬盘?2(一边坏一块)

解答过程请见火影笔记

 

用10块10G的硬盘制作raid 10有多少可用空间?50g可以同时坏几块硬盘?5(一边坏一块)

raid1 只能a,b一组(两两为一组)

解答过程请见火影笔记

 

6个20G的硬盘创建的raid50有多少可用空间,有没有备盘,可以坏几块?优点和缺点是?

 

 

6个20G的硬盘创建的raid10有多少可用空间,可以坏几块?优点和缺点是?

 

lvm逻辑卷(可以动态对分区进行扩容和缩容)听讲:

由于C盘分得太大了,其他盘又满了,又不想把东西放在C盘里影响系统速度,于是就出现了减小C盘大小以增加其他盘大小的东西了。

 

5个500M的分区sdb1~5,都转换为PV物理卷标识,

然后将他们都加入到卷组vg里去,这个组的大小就是2500M,

从组里取800M做第一个逻辑卷lv,若之后发现800M不够,还可以从组里继续取,如果连组里也不够,就要添硬盘增加分区了

最基础的就是分区的大小

 

start:

parted /dev/sdb先制作分区:gpt的:500M 500M 500M 500M 500M

①转为物理卷:

pvcreate /dev/sdb{1..4}

pvs查看

pvsan扫描(更详细)

pvdisplay是最为详细的

删除物理卷:pvremove/dev/sdb1

pvs查看

创建物理卷:pvcreate/dev/sdb1

创建卷组:vgcreate vgname1/dev/sdb{1..4}(pvPath)

vgs查看(LV是逻辑卷)

vgdisplay里面可以看权限,PE是和之前讲的block块一样,只是每块为4M,所有的块组成物理单元。

创建逻辑卷lvcreate [-n名字 lv0] -l 需要取的大小/4M(不写单位) vgname1(-L大写L可以直接需要取的大小就行了)

lvs查看

mkfs.xfs /dev/vg0/lv0

挂载mkdir /lvol0;mount/dev/vg0/lvol0 /lvol0

cd /lvol0

扩容:

lvextend -l +还需要取的大小/4M(不写单位) /dev/vg0/lvol0(-L大写L可以直接+还需要取的大小就行了)

查看lvs

但df -h查看的时候没有改变,因为分区变大了,但文件系统没有扩容

xfs_growfs /dev/vg0/lvol0d

xfs_growfs /lvol0d

扩容文件系统的命令不一样

        xfs   使用的命令是xfs_growfs

        exte 使用的命令是resize2fs

此时用df -h 就有效果了

 

创建逻辑卷总结:普通磁盘设备/dev/sdc转为物理卷pv,物理卷pv加入到卷组vg,从卷组里取2G用来创建名字叫data的逻辑卷

详情总结(含代码):将硬盘设备转为物理卷:[root@litao~]# pvcreate /dev/sdc{1..4};将物理卷加入到名叫test的卷组:[root@litao ~]# vgcreate test /dev/sdc{1..4};从test卷组里取2G用来创建名字叫data的逻辑卷:[root@litao ~]# lvcreate -n data -L 2G test;

总结/dev:哇哈哈,创建了逻辑卷之后在/dev下面就有了卷组名的目录,卷组名的目录里面还有逻辑卷名的软链接文件

 

 

缩容听讲:

xfs不支持缩容,ext4才能缩容

问陈哲:没有格式化啊

不要挂载的时候缩容

 

快照听讲:

拍照的一瞬间,没有复制到快照空间中,当改动数据时才会将之前的快照复制到快照空间中去。

start:

df -h

lvs

lvremove /dev/vg0/lvol0

lvs

lvcreate -n lv0 -L 500M vg0(从vg0里面取)

mkfs.xfs /dev/卷组名/逻辑卷名

mkdir /mnt/lv0

mount /dev/vg0/lv0 /mnt/lv0

df -h

mapper/vg0-lv0

cd /mnt/lv0

echo “test” > test.txt

head -5 /etc/passwd >pass.txt

lvcreate -n lv0.snap -L500/3M=200M -s /dev/vg0/lv0(最后的这个是要给谁做快照)(.snap就是快照文件,生成在了/dev/卷组目录里面)

lvs

rm -rf pass.txt

lvs此时data发生了变化

echo “1234” > test2.txt

恢复:cd ..

umount /dev/卷组名/逻辑卷名

lvcovert --merge/dev/vg0/lv0.snap

lvs快照卷不见了

mount /dev/vg0/lv0 /mnt/lv0

cd /mnt/lv0

ls

 

 

快照实例(自己一步一步照着上面的方法操作的):

创建一个逻辑卷大小为2G逻辑卷名字叫data,属于卷组test?给这个逻辑卷做一个快照?

将硬盘设备转为物理卷:[root@litao~]# pvcreate /dev/sdc{1..4}

  Physical volume "/dev/sdc1"successfully created.

  Physical volume "/dev/sdc2"successfully created.

  Physical volume "/dev/sdc3" successfullycreated.

  Physical volume "/dev/sdc4"successfully created.

查看物理卷:[root@litao ~]#pvs

  PV        VG Fmt  Attr PSize  PFree

  /dev/sda2 cl lvm2 a--  19.76g 4.00m

  /dev/sdc1    lvm2 ---   1.86g 1.86g

  /dev/sdc2    lvm2 ---   1.86g 1.86g

  /dev/sdc3    lvm2 ---   1.86g 1.86g

  /dev/sdc4    lvm2 ---   1.86g 1.86g

将物理卷加入到名叫test的卷组:[root@litao ~]# vgcreate test /dev/sdc{1..4}

  Volume group "test" successfullycreated

查看卷组:[root@litao ~]#vgs

  VG  #PV #LV #SN Attr   VSize  VFree

  cl    1   2   0 wz--n- 19.76g 4.00m

  test  4   0   0 wz--n- 7.44g 7.44g

从test卷组里取2G用来创建名字叫data的逻辑卷:[root@litao~]# lvcreate -n data -L 2G test

  Logical volume "data" created.

查看逻辑卷:[root@litao ~]#lvs

  LV  VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  root cl  -wi-ao---- 18.00g                                                   

  swap cl  -wi-ao----  1.76g                                                   

  data test -wi-a-----  2.00g

 

给这个data逻辑卷做快照:

格式化名叫data的逻辑卷:[root@litao dev]# mkfs.xfs /dev/test/data

meta-data=/dev/test/data         isize=512    agcount=4, agsize=131072 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=1        finobt=0, sparse=0

data     =                       bsize=4096   blocks=524288, 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

创建挂载点:[root@litaodev]# mkdir -p /mnt/test/data

将逻辑卷进行挂载:[root@litaodev]# mount /dev/test/data /mnt/test/data

进入挂载点随便创几个东西:[root@litaodev]# cd /mnt/test/data

[root@litao data]# echo"litao111" > data1.txt

[root@litao data]# echo"litao222" > data2.txt

给data逻辑卷做一个快照(生成的快照放在了/dev/test卷组目录里面,不是挂载点的test目录,名字叫data.snap,也相当于是一个名字叫data.snap的逻辑卷,大小为源逻辑卷的三分之一):[root@litaodata]# lvcreate -n data.snap -L 700M -s /dev/test/data

  Using default stripesize 64.00 KiB.

  Logical volume "data.snap" created.

查看逻辑卷:[root@litaodata]# lvs

  LV       VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  root     cl   -wi-ao----  18.00g                                                   

  swap     cl   -wi-ao----   1.76g                                                   

  data     test owi-aos---   2.00g                                                   

  data.snap test swi-a-s--- 700.00m      data  0.01

此时还没有将快照复制到快照空间去,需要进行数据改动,比如删除操作:[root@litao data]# rm data1.txt

rm:是否删除普通文件"data1.txt"?y

此时快照已经复制到快照空间去了,查看此时的目录:[root@litao data]# ll

总用量 4

-rw-r--r-- 1 root root 9 11月 29 03:04 data2.txt

想要恢复之前的data1.txt,使用快照卷:先卸载名字叫data的逻辑卷[root@litao data]# cd

[root@litao ~]# umount/dev/test/data

逻辑卷恢复:[root@litao ~]#lvconvert --merge /dev/test/data.snap

  Merging of volume test/data.snap started.

  data:Merged: 100.00%

查看逻辑卷[root@litao ~]#lvs

  LV  VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  root cl  -wi-ao---- 18.00g                                                   

  swap cl  -wi-ao----  1.76g                                                    

  data test -wi-a-----  2.00g

此时data.snap已经不见了,快照用一次就没了,让我想起了一次性碗筷哈哈

再挂载名叫data的逻辑卷并进入它的挂载点查看一下之前删掉的data1.txt恢复了没有:[root@litao ~]# mount/dev/test/data /mnt/test/data

[root@litao ~]# cd/mnt/test/data

[root@litao data]# ll

总用量 8

-rw-r--r-- 1 root root 9 11月 29 03:03 data1.txt

-rw-r--r-- 1 root root 9 11月 29 03:04 data2.txt

[root@litao data]# catdata1.txt

litao111

哈哈,出现了,成功了

 

2017/11/29

有术有字,有表有走

2>>是追加重定向错误信息到指定文件,&>>是追加重定向错误或正确信息到指定文件

 

date -s “2017/11/29 16:55”会改变date时间

BIOS时间是Linux系统里面的真正时间,开机重启date时间就会恢复到BIOS时间

hwclock -s同步成BIOS时间

hwclock -w同步成date时间

hwclock --set --date=”2017/11/2916:55”会改变bios时间

 

进入新班1011,教室从610搬到了614

 

vim 按u撤销

                      

2017/11/30(软件包管理、服务搭建的准备工作)

vsftpd

server  client ftp

61  62

检测物理网卡:mii-tool enp3s0(网卡名ifconfig可查看)

网络的物理连接状态

lo是loop回环

 

vsftpd

1.vsftpd文件共享的服务器

2.samba文件共享的服务器

3.nfs文件共享的服务器

ssh远程管理xshell、Linux里叫openssh

rsyslog日志管理

pxe无人值守自动装机

apache是web服务

以上都是要学习的基础服务

 

服务由什么管理?

systemd工具

管理什么?

启动systemctl start 服务名、关闭 systemctl stop name.service、重启systemctlrestart、重新加载systemctl reload name.service、状态systemctl status name.service、设置为开机不启动systemctldisable name.service、设置为开机启动systemctl enable name.service、查看指定的某个服务开机自启动的状态systemctl is-enabled name.service

 

服务搭建的准备工作

1.关闭防火墙

systemctl status firewalld.service(看Active:inactive是关闭状态,上面的disabled;是开机不启动防火墙,右边的vendor preset:enabled是建议开机启动防火墙;日期时间右边的是主机名)

systemctl startfirewalld.service

查看防火墙是否启动:systemctlis-enabled firewalld.service

systemctl enablefirewalld.service

systemctl disable firewalld.service

注意关闭是stop,开机不启动是disable

查看所有服务开机启动的状态systemctllist-unit-files --type service

查看所有已经激活的服务systemctllist-units --type service

查看指定服务是否已经激活systemctlis-active name.service

stop停止服务:systemctl stopname.service

disable禁止开机自启:systemctl disablename.service

service都是放在最后面的

上面的是我们的el7 

el6则是

init管理工具

/etc/init.d/name start

/etc/init.d/name stop

/etc/init.d/name restart

/etc/init.d/name reload

/etc/init.d/name status

chkconfig name on

chkconfig name off

chkconfig list-unit-files--type service

chkconfig grep 服务名

2.关闭selinux

暂时关闭selinux:setenforce 0(开启是1),selinuxis disabled是开机不启动

查看selinux状态:getenforce

关闭selinux永久生效:vim /etc/selinux/config

SELINUX=disabled

3.配置好固定的IP地址

4.并关闭NetworkManager服务

systemctl stop NetworkManager.service

systemctl disableNetworkManager.service

systemctl statusNetworkManager.service查看状态

5.配置好主机名(容易区分)

hostnamectl set-hostname 主机名(永久生效)

服务器名叫server.名字.com

客户端名叫client.名字.com

start

进入一个虚拟机1的终端

systemctl stop firewalld.service

systemctl disabled firewalld.service

setenforce 0

vim /etc/selinux/config

hostnamectl set-hostname server.lbx.com

进入一个虚拟机2的终端

systemctl stop firewalld.service

systemctl disabled firewalld.service

setenforce 0

vim /etc/selinux/config

hostnamectl set-hostname client.lt.com

以上可以克隆(不用每次都这样操作了)

6.配置好yum

软件包:

windows有直接运行可执行安装包和绿色,直接解压就可以使用

linux:

1.rpm派系,工具是rpm(红毛包管理)、yum

centos、redhat、fedora

2.dpkg(d package)派系,工具是apt

ubuntu、debian、mint

我们现在用的centos软件包有以下3类:

①rpm软件包:

优点:安装简单 rpm -ivh 软件包名

缺点:可制定性差,一台服务器只能安装一个软件

②二进制包(例如VMware,VMware-Workstation-Full-12.1.1以.bundle,.sh,.pl,.py,.bin结尾的是二进制包):

优点:安装简单,解压即可使用,一台服务器可安装多个软件

缺点:可定制性不如源码包

③源码包:

优点:可定制性强,但是安装过程服务,一台服务器可安装多个软件

缺点:

 

怎么装二进制包?

1.给执行权限

2.输入绝对路径可以执行

3.输入相对路径可以执行

start:

拖入桌面

ll 拖入终端,看到无执行权限

要添加x执行权限

 

上面的需要gcc编译器,

 

上面的需要yum

rpm -qa | grep gcc

 

怎么装rpm包?

镜像文件放在哪呀?下面就来讲解:

首先要进入存放很多rpm的目录里面去:

df看到/dev/sr0的挂载点,复制他的挂载点

cd 粘贴他的挂载点,退格到CentOS的C,然后按tab自动补全,再回车会进入到那个目录,ls可以查看这个目录下有个Packages的文件夹,cd Packages进入,进去之后输入ls可以看到全是rpm的包文件

不能直接使用wc -l,前面要加ll |才行,他是和管道一起用的

软件包名的介绍:

例如:

zsh-5.0.2-25.el7.x86_64.rpm

软件名zsh

主版本号5

次版本号0

修订号2

释放号25

系统版本e17

架构x86_64

rpm

 

架构的话有:

x84_64  64位

noarch  通用

i386    32位

i486    32位

i586    32位

i686    32位

 

安装软件:

rpm -ivh rpm包的名字(加.rpm)

-U升级软件包

--force强制安装

 

卸载软件:

rpm -e 软件名(不加.rpm)

查询软件是否已安装:

rpm -q 软件名(不加.rpm)

rpm -qa | grep “软件名”(模糊查找)

rpm -ql 软件名  查看软件包里包含的文件有什么

rpm -qc 软件名  etc下的目录配置文件

rpm -qi 软件名  软件包的信息information

rpm -qf 文件名(命令加绝对路径)  查看文件属于哪个软件包

查看vim命令属于哪个软件包?

[root@server ~]# rpm -qf/usr/bin/vim

vim-enhanced-7.4.160-1.el7.x86_64

查询未安装的软件包信息-p(前提电脑有这个包),必须接软件包名.rpm

rpm -qip vsftpd.rpm

rpm -qlp vsftpd

rpm -qcp vsftpd

 

怎么使用工具yum去安装包?(挂载好/dev/sr0到/mnt/centos7u3就能安装了)

yum主配置文件:vim/etc/yum.conf里面可以设置缓存

yum子配置文件:cd/etc/yum.repos.d进入里面再ls

可以看到很多文件,vim进去看一下

退出来,到/etc/yum.repos.d

mkdir bak

mv * bak

[centos7.3]

name=centos 7.3 Linux

baseurl=file:///mnt/dvd从哪里获取

cd /mnt/dvd再ls可以看到软件包

enabled=1是启用这个配置

gpgcheck=0是关闭自检

[redhat6]

name= redhat6

baseurl=file:///mnt/dvd从哪里获取

cd /mnt/dvd再ls可以看到软件包

enabled=1

输入yum repolist回车可以查看状态/mnt/dvd/Packages下面有多少个文件

 

yum install 软件名

配置文件是在/etc/yum.repos.d

 

yum clean all(使用yum repolist之前要清除yum缓存)

 

 

挂载仓库

配置yum源

 

 

自动挂载:

vim /etc/fstab

/dev/sr0 /mnt/centos7u3iso9660 defaults,_netdev 0 0

vim /etc/rc.d/rc.local

mount /dev/sr0/mnt/centos7u3

chmod +x /etc/rc.d/rc.local

 

不写_netdev出现问题解决办法:vim /etc/fstab看里面哪里有问题,并加上_netdev,保存退出,reboot重启即可

root用户的密码忘记了怎么破解(删除)密码:

开启的时候有两行选项:选第一个后按e

linux*16,按end定位行尾,空格,init=/bin/sh,敲ctrl+x,

mount -o remount,rw /

vim /etc/passwd删root密码的x保存退出

vim /etc/selinux/config关闭selinux图形化重启(重启命令reboot会失效,就用这个重启命令:exec /sbin/init)

 

虚拟机进入bios,关机-右键-电源,最后一个

安装

修复(选这个)

测试

按1回车

回车

chroot /mnt/sysimage

插U盘

mount /dev/sdb4 /opt^C

拷贝重要的文件到U盘里

reboot

关机

右键-电源,最后一个

 

cd /boot里面很重要的有grub、grub2

 

 

 

总结yum源的配置:

mkdir /mnt/centos7u3先建立一个挂载点

mount /dev/sr0 /mnt/centos7u3将/dev/sr0挂载到挂载点/mnt/centos7u3

cd /etc/yum.repos.d/,进入里面,ls查看里面的文件,vim 修改那个文件以配置yum源

yum clean all清除

yum repolist查看

可以设置自动挂载

 

yum list是列出yum仓库里所有的软件包,最后一列@开头说明是已经安装的

yum provides */vim是查找文件是由哪个包安装的

 

自己做yum仓库:

mkdir /testrepo

查看zsh在哪,靠过去

createrepo /testrepo就行了

 

cd /etc/yum.repos.d,删了*

vim testrepo

[test]

name=test

baseurl=file:///testrepo

gpgcheck=0

yum repolist可以看到有刚才的仓库里面的包了

yum provides */*.repo

yum reinstall centos-release-y(这个要mount/dev/sr0 /mnt/centos7u3挂载并修改yum源仓库地址为baseurl=file:///mnt/centos7u3)

 

李涛61~66 熊老师192.168.1.250

怎么改ip地址:

ifconfig查网卡名字(左上角)

vim/etc/sysconfig/network-scripts/网卡名

删ipv6

最后结果如下:

BOOTPROTO=none

DEVICE=ens33

ONBOOT=yes

IPADDR=192.168.1.61

使之生效:systemctl restartnetwork

 

clone1右键-网络适配器-桥接模式、复制网络物理连接状态

systemctl restart network生效之后就可以ping通老师了,网络不可达表示不在同一个网络段或不是桥接模式并没有输入生效命令

 

如果有多个网卡:

ifdown ens33停掉指定的网卡

ifup ens33启动指定的网卡

 

查看网关:root -n

 

dhclient动态获取ip地址

 

解决网络问题:

mii-tool干嘛的?查看物理连接是否ok

检测ip地址是不是ok的

网卡指示灯

ip地址

ping

网络配置文件

重启网卡,测试ip是否冲突

 

物理机(windows系统我的电脑的)的ip设置为192.168.1.63,

 

连接xshell:

必然的一点:和windows里网络连接里面的VMware回环VMnet网络适配器有关,而这个网络适配器又和虚拟机里面的编辑-虚拟网络编辑器有关,特别注意的就是和windows网络连接里面的本地连接的ip无关,和clone1-右键-网络适配器-桥接模式有关:

分析:

虚拟网络编辑器:

 

网络适配器:

若是设置为NAT模式,并要把已连接打勾和启动时连接打勾,则虚拟网络编辑器对应的子网也要为NAT模式并且都打勾ok,

虚拟网络编辑器若为仅主机模式会怎么样?ok

若为桥接模式会怎么样?no

 

网络适配器若是设置为仅主机模式,虚拟网络编辑器若为NAT模式会怎么样?no

虚拟网络编辑器若为仅主机模式会怎么样?no

若为桥接模式会怎么样?no

 

网络适配器若是设置为桥接模式,虚拟网络编辑器若为NAT模式会怎么样?no

虚拟网络编辑器若为仅主机模式会怎么样?no

若为桥接模式会怎么样?no

 

网络适配器若是设置为自定义模式,虚拟网络编辑器若为NAT模式会怎么样?no

虚拟网络编辑器若为仅主机模式会怎么样?no

若为桥接模式会怎么样?no

 

xshell的连接和ping总结:

去掉自己windows网络连接的DNS地址,并设置windows的ip为192.168.1.66,关闭虚拟机,虚拟网络编辑器还原默认设置,桥接模式(已连接打勾,启动时连接打勾,复制物理网络连接状态不要打勾),重启虚拟机,你就会惊奇的发现xshell能连上去(是桥接的状态也能连上去),你还会发现你居然能ping通别人电脑的虚拟机ip。换了一个地点连不上了就要重新操作了,还是不行就要重插网线。

物理机(cmd)可以ping虚拟机 (xshell是虚拟机,pingwww.baidu.com你就知道了);

虚拟机可以ping虚拟机;

也可以ping物理机(ping物理机要插入网线);

要想在虚拟机里上网,就要dhclient

 

在卡的终端里面输入ssh -X ip可以像xshell里面一样

 

与Xshell相似的是mobaX

 

2017/12/1

进入放软件包.rpm的目录

如何装二进制包?

配yum源,装gcc

装二进制包要加上x执行权限,VMware-Workstation

直接输入目录就能执行了/root/桌面/vmware12\ 7.3/VMware-Workstation选两个no一直下一步

 

学习vsftpd的什么?vsftpd服务搭建的准备工作:和yum一样

1.服务的名字和全称:vsftpd文件共享的服务器

2.服务的功能

3.能和谁结合

4.可有其他同类产品

5.端口和使用的协议:端口?TCPUDP,vsftpd(21),vnc(59001),用的时候:ftp://ip不需要写端口号,它会自动有

配置文件和日志文件,维护服务正常运行

查看vnc里面哪些是被监听:netstat -tulnp(tcp、udp、listen监听、pid) | grep vnc;

记载每个服务对应的端口:vim/etc/services(里面有端口号)

65536对应的是哪个服务?没有65536,端口号最大只有65535

6.配置文件和日志文件,维护服务正常运行

 

服务器是什么?

能对外提供服务的机器,服务是指给用户提供某些资源,响应用户的请求。服务的特点是后台、持续不间断运行的守护进程。服务的组成是程序的源代码、配置文件/etc/vsftpd/*.conf、数据。架构是C/S,客户端是使用服务,服务端是提供服务

 

vsftpd:very secure ftpdaemon非常安全的文件传输协议服务。目的是共享文件,作用是提供个主机之间文件共享服务,可以应用在互联网中,不区分客户端,windows和linux中都可以使用。

linux :

server software:vsftpd

client software:lftp ftp

windows:

client software:FileZilla

默认端口:

tcp20/21 20是数据,21是连接

工作模式:对服务器来说可以是主动模式和被动模式的,默认是被动模式

客户端主动,对于服务器来说是被动模式,就像我爱罗的砂之防御是被动的、毫无意识的。

 

三类用户有

匿名用户:映射成服务上的系统用户ftp

本地用户:服务器上存在的用户去登陆

虚拟用户:映射成不存在的用户

 

环境:

SERVER 192.168.1.251server.xmt.com

CLIENT 192.168.1.252client.xmt.com

 

start:

rpm -q vsftpd查看vsftpd这个软件是否已安装

yum install vsftpd -y安装vsftpd这个软件(别忘了-y)

yum -ql vsftpd查看已安装的vsftpd里面有有什么东西;文件介绍{

 

logrotate.d日志轮转子配置文件的目录

pam.d是pam认证

/etc/vsftpd是配置文件的目录

ftpusers、user_list访问控制

/etc/vsftpd/vsftpd.conf是主配置文件

/usr/sbin/vsftpd是守护进程

/var/ftp是匿名用户的家目录

/var/ftp/pub是默认上传下载的目录

}

这个vsftpd服务 会 默认提供下载功能

systemctl startvsftpd.service启动服务

systemctl enablevsftpd.service设置为开机启动服务

systemctl statusvsftpd.service查看状态

netstart -tulnp | grep vsftpd监听服务的状态服务运行的进程名

提供可被下载的文件:

cd /var/ftp/pub进入默认上传下载的目录

echo “woshilibanxian” >test1.txt

 

查看结果:

使用客户端(另外一个虚拟机的位置-浏览网络-左下角连接到服务器)去ftp://192.168.1.251操作:

“没有到主机的路由”的问题是:ping不通,请见上面有xshell和ping的问题。

上面的方法是图形化

还有使用浏览器的方法:

firebox ftp://192.168.1.251就能成功的像老师一样把东西共享出来了,哈哈哈

使用浏览器下载的时候下载地址在家目录的下载文件夹里面

上传功能能不能做呢?拖入pub里会出错,说明不支持上传功能。

想上传文件,怎么做呢?(注意上传文件不仅能使用图形化的方法,还能使用命令的方法)

/etc/vsftpd里面有一个配置文件/etc/vsftpd/vsftpd.conf

vim /etc/vsftpd/vsftpd.conf编辑

anonymous_enable=YES是允许匿名用户使用vsftpd服务

local_enable=YES是允许本地用户使用vsftpd服务

 

vim/etc/vsftpd/ftpusers黑名单用户不允许访问ftp服务,最黑的那种

vim/etc/vsftpd/user_list白名单用户允许访问ftp服务

 

允许匿名用户上传文件和目录,删除文件和目录:

vim/etc/vsftpd/vsftpd.conf

anon_upload_enable=YES(上传文件)

anon_mkdir_write_enable=YES(上传目录)

anon_other_write_enable=YES(删除文件或目录)

systemctl restartvsftpd

chomod o+w/var/ftp/pub

 

匿名用户上传时修改文件的所有者:

chown_uploads=YES

chown_username=whoever

 

write_enable=YES(本地用户的设置)

                               

公共属性:

idle_session_timeout=600连接后600秒无操作退出(GTA5里面掉线)

data_connection_timeout=120传输超过时间踢出去,禁止大文件传输,下载文件的时间不能超过120秒:

 

进入目录的时候有消息提示

dirmessage_enable=YES

 

local_enable=YES本地用户有一个特殊的,就是可以访问ftp

会有一个问题,可以随意切换目录,没有安全性,怎么办?

限制用户只能在一个目录下活动:

chroot_local_user=YES不开启禁锢功能(只能在一个目录里活动)

allow_writeable_chroot=YES如果不写这句就会导致所有的用户都不能登入lftp

 

用户限制 资源访问

VIP会员

anon_max_rate=0限制匿名用户最大传输速率,单位是字节 默认0 无限制

local_ max_rate=0限制本地用户最大传输速率,单位是字节 默认0 无限制

max_clients=200限制并发客户端连接数

max_per_ip=50限制同一个ip地址的并发连接数

 

anon_upload_enable=YES表示匿名用户能上传,改了服务的配置文件之后不会生效,要输入重启服务才会生效,restart的对象可以是所有的用户,而reload的对象很少。

出错:操作失败出错是第一层出错、文件名出错(/var/ftp/pub其他人没有w权限)是第二层出错,

ll -d /var/ftp/pub可以看到目录本身的其他人的权限没有w,需要chmod o+w /var/ftp/pub,改权限不需要重启;

上传文件夹的时候会出错:操作失败;是因为没有开启anon_mkdir_write_enable=YES

vim /

在共享资源里面删不了文件或文件夹:因为没有开启:anon_other_write_enable=YES

 

所有者、所属组是ftp

匿名用户上传时修改文件的所有者:

chown_uploads=YES

chown_username=whoever

匿名用户上传文件的umask=0077

 

全局配置(进入目录的提示信息)

日志设置(启动什么格式记载):tailf 动态查看文件的倒数行的信息,谁传了什么都知道

连接数、主动端口模式connect_from_port_20=YES

连接后600秒无操作退出(GTA5里面掉线):idle_session_timeout=600

传输超过时间踢出去,禁止大文件传输,下载文件的时间不能超过120秒:

data_connection_timeout=120

 

使用本地用户测试jim和tom

start
ftp://ip进去选已注册用户,对应ip里面已存在的用户

一进去就是/home/jim文件夹里面

cd /home/jim

echo “my name is jim” >jim.txt

用tom去访问/var/home/jim?????还是/home/jim??????哈哈,是/home/jim撒,

不存在/var/home/jim,只存在/var/ftp/pub,这个绝对是匿名root的共享夹

 

 

lftp和ftp两个工具如何使用

rpm -q lftp;rpm -q ftp查看有没有已安装lftp和ftp

yum install lftp ftp安装lftp和ftp(只需要启动vsftpd服务即可,不需启动lftp服务,因为没有lftp服务,使用lftp之前要重启vsftpd服务)

yum -ql lftp查看已安装的lftp里面有有什么东西;文件介绍{

 

lftp是交互式的,加上-c就可以变成非交互式的,原理就是执行命令后退出

/etc/lftp.conf是配置文件

}

使用:

start:

lftp 192.168.1.serverADDR

ls查看pub是tcp是匿名用户,哈哈哈,现在我看到pub就明白是什么意思了

pwd

cd /tmp不行,因为之前自带/

这就是代码化啦:

出现

lftp 192.168.1.251:/pub> 就说明进入了代码化

61root在pub里面创几个东西(创了东西要重新连进去才看得到新东西)

62root的peter lftp192.168.1.251:/pub>输入ls

lftp 192.168.1.251:/pub>cd pub进去

ls

get test.txt下载test.txt文件(不能是目录)

从哪个文件连接进去的就下载到哪里

lftp 192.168.1.251:/pub>put etc/passwd(这个路径是接在连进来目录的后面的):上传本地文件/etc/passwd到61root的pub里面(不能是目录)(之前有个反斜杠了)

lftp 192.168.1.251:/ >mirror pub下载目录

lftp 192.168.1.251:/pub >mirror -R opt上传目录

lftp 192.168.1.251:/pub >rm可以删除

lftp 192.168.1.251:/>exit是退出到用户的界面

 

本地用户操作

lftp -u 61peter,123456192.168.1.61指定用户登陆代码化

jim:1@ip

jim@ip

 

会有一个问题,可以随意切换目录,没有安全性,怎么办?

限制用户只能在一个目录下活动:

chroot_local_user=YES不开启禁锢功能

allow_wirteable_chroot=YES

如果不写这句就会导致所有的用户都不能登入lftp了

 

访问控制

pam认证

黑名单在清单的用户不能

vim /etc/vsftpd/ftpusers服务端61root下设置黑名单

lftp -u 61peter,123456192.168.1.61登的进去但不能执行里面的任何命令

白名单 在清单内的用户可以访问

userlist_enable=YES

userlist_deny=YES

上面两个都为YES就是黑名单了

 

vim /etc/hosts.deny 拒绝

vsftpd:192.168.1.0拒绝1网段的所有人

vim /etc/hosts.allow只允许

 

用户限制 资源访问

VIP会员

anon_max_rate=0限制匿名用户最大传输速率,单位是字节 默认0无限制

local_ max_rate=0限制本地用户最大传输速率,单位是字节 默认0无限制

max_clients=200限制并发客户端连接数

max_per_ip=50限制同一个ip地址的并发连接数

 

ftp(一般使用lftp)

yum install ftp -y

ftp ip

ftp

匿名不写密码

ftp> ls

只能上传下载文件,不能上传下载目录

 

 

 

 

 

 

 

 

配置文件里面

# vim /etc/passwd注释

#vim /etc/passwd可以利用的选项

自己试一下脚本,测试#空格后面的是否能运行若能则得出结论:#后面的都是注释

 

!加命令的开头就能执行最近一次的命令,比如!pin回车。

可以同时将/dev/sr0挂载多处吗?不可以,挂载前要卸载,不然会提示忙。

关于ping百度,要有网才行,有网然后输入dhclient回车再来ping百度。

 

cdrom和sr0有什么区别?

ll /dev/cdrom

lrwxrwxrwx 1 root root 3 11月 30 09:21 /dev/cdrom-> sr0

不能同时挂载同一个光盘在不同地点

总结vsftpd软件:

安装完vsftpd,启动服务,进入/var/ftp/pub共享夹下创建东西

 

 

测试:

61root用户和匿名62root用户

图形化:

61root在/var/tcp/pub创建东西

62root可以在虚拟机的位置-浏览网络-左下角连接到服务器匿名ftp://192.168.1.61

62root可以看到61root共享夹里面的东西,目录是

62root下载61root共享夹的文件和文件夹都可以到桌面;

62root上传文件和文件夹都不可以到61root共享夹里面,除非你改了配置文件/etc/vsftpd/vsftpd.conf;

代码化:

我不知道怎么用客户机进入服务机的共享夹里面去(使用代码化的方法)?就是怎么用代码替代虚拟机的位置-浏览网络-左下角连接到服务器这个操作?

其实就是后面的lftp

 

61root和62本地用户peter的测试

图形化:

发现问题:62root上面的peter不能进入61里面

但62root用61root的61peter可以进入61里面:进入之后显示的路径是

192.168.1.61上的61peter,而且里面是空的,这个实际上就是61root里面的61peter的家目录,绝对路径就是/home/61peter。

62root可以下载61root的/home/61peter共享夹的文件和文件夹都可以到桌面;

62root上传文件和文件夹都可以到61root的/home/61peter共享夹里面。

 

代码化:lftp

 

周五测试:(写完创建一个文本文档写上自己的名字复制粘贴进去,名字)

1.磁盘配额通过什么控制用户创建文件的个数和文件的大小

答:控制用户创建文件的个数:inode数

控制用户创建文件的大小:block大小

 

2.找出系统中jim拥有的文件并拷贝到/home/dir目录

mkdir /home/dir

find / -type f -user "jim" -exec cp {} /home/dir \;

 

3.配置一个用户harry,用户的id为1200,组为root,可以登录系统

useradd harry

usermod -u 1200 -g 0 -s /bin/bash harry

 

4.YUM:http://instructor.example.com/pub/centos7u3/dvd请配置yum

systemctl stop firewalld.service

systemctl stop NetworkManager.service

setenforce 0

dhclient

vim /etc/yum.repos.d/centos7u3

[centos7u3]

name=centos7u3

baseurl=http://instructor.example.com/pub/centos7u3/dvd/mnt/centos7u3

gpgcheck=0

enabled=1

:x

yum clean all

yum repolist

 

YUM:http://instructor.example.com/pub/centos7u3/dvd这个路径上有软件包,软件包仓库的位置

rpm安装的话直接-ivh加网站就行了rpm-ivh http://instructor.example.com/pub/centos7u3/dvd/包的全名.rpm

yum安装的话在baseurl里面写网址就行了,不需要写挂载点

vim /etc/yum.repos.d/centos7u3

baseurl=http://instructor.example.com/pub/centos7u3/dvd写网址不需要有挂载点

 

 

5.系统中没有vim命令,怎么办?写出具体操作?

答:需要安装vim,具体操作如下:

查看vim命令属于哪个软件包?

[root@server ~]# rpm -qf/usr/bin/vim

vim-enhanced-7.4.160-1.el7.x86_64

然后使用yum工具安装这个软件包即可(前提要配置好yum源)

[root@server ~]# yum installvim-enhanced-7.4.160-1.el7.x86_64

 

订正:

which vim

rm -rf /usr/bin/vim

vim a

yum install vim -y不行,必须重新安装reinstall才行

yum reinstall vim -y

rpm -ivh包全名.rpm --force

 

6.配置对ftp服务的访问匿名用户能够在/var/ftp/pub目录中下载文件,且可以上传文件目录

vim /etc/vsftpd/vsftpd.conf里面写:

anon_upload_enable=YES

anon_mkdir_write_enable=YES保存退出

systemctl restart vsftpd.service

chmod o+w /var/ftp/pub

 

7.添加一个交换分区,大小为1G

umount /mnt/sdb1

parted /dev/sdb

mklabel gpt

mkpart primary 1 1G

q保存退出

mkswap /dev/sdb1

swapon /dev/sdb1激活

swapon -s /dev/sdb1

 

交换分区的大小设置为物理内存的1.5倍到两倍

dd if=/dev/zero of=/mnt/ddFilebs=10M count=100用dd创建一个文件ddFile到mnt

vim /etc/fstab挂载

/mnt/ddFileswap swap defaults,_netdev 0 0将那个ddFile挂载到swap分区里去就是添加一个交换分区了

 

备份mbr(mbr是在/tmp/mbr.txt):

dd if=/dev/sda of=/tmp/mbr.txt bs=512 count=1

使用备份:

dd if=/tmp/mbr.txt of=/dev/sda bs=512 count=1

 

8.将root用户和root用户组的信息保存到/tmp/rootuset.txt文件中

cat /etc/passwd | grep "root:x" > /tmp/rootuset.txt

cat /etc/group | grep "root" >> /tmp/rootuset.txt

 

9.现有卷组vg0已经没有剩余空间,这个卷组内有一个逻辑卷为500M,挂载在/lv0,有一个新分区/dev/sdb1大小为500M,调整逻辑卷大小,把逻辑卷lv0调整到1000M,900M和1000M可接受

lvextend -L +500M/dev/vg0/lv0

xfs_growfs /dev/vg0/lv0

df -h

 

订正扩容:

lv0 500M vg0

lv0 到1000M

lvextend -L +500M卷组里面没有空间用不了

物理卷-卷组-逻辑卷

pvcreate /dev/sdb1

vgextend(注意是extend) vg0 /dev/sdb1

lvextend -L +500M /dev/vg0/lv0

lvs查看没有扩容了,但df查看没有,因为没有对文件系统扩容

xfs_growfs /dev/vg0/lv0 (挂载点)

 

 

10.本机无法和其他pc通信的原因可能有哪些?

①本机的ip和对方电脑的ip不在用一个网段

②本机或对方电脑的网络适配器没有设置为桥接模式

③网线坏了

④本机临时设置好了ip地址但是没有重新启动network服务

 

11.7种文件类型分别是?

-普通文件

d目录文件

l软连接文件

c字符型文件

b设备块文件

p管道文件(进程和进程之间进行通信)

s套接字文件(ip+prot端口,通信需要用到二进制文件)

 

拓展题:

1.现有一台hp的服务器,上面配置了8块300M的硬盘,要求做raid,要求提出具体的方案?

方法1:

使用raid50 无备盘的方法:每4个盘为一组,可分为两组raid5,一组raid5有900M,最后合并为raid0,空间为1800M

方法2:

raid 50

    raid0

raid5          raid5

3块1备盘      3块1备盘

剩余空间为1200M,需要计算数据,浪费时间和占内存

方法3:

raid 10

    raid0

raid1  raid1  raid1 raid1

2块   2块   2块    2块

剩余空间为1200M,不需要计算数据,比raid 50更快

 

2.在没有对vsftpd服务做特殊设置的情况下,服务端主动和被动模式的端口分别为?

答:服务端主动为20数据端口,21连接端口;

服务端被动数据为大于1024端口、21连接端口

 

3.写一个脚本

 要求:每隔1小时检测系统中有没有僵尸进程,如果有将僵尸进程的信息记载到/tmp/zombie.txt文件中,并且杀死这个进程(暂停了很久才会变成僵尸进程)

老师分析:

ps -lef | tr -s “ ” | cut -d” ” -f2,4截取状态和进程号 | grep T(状态是暂停的) | cut -d” ” -f2获取是暂停状态的pid

ps -elf | tr -s " " | grep " T " | cut -d"" -f4

ps -elf | grep 5487

ps -elf | grep "5904" | grep -v "color" 可以连续grep

cut d” “ f15-是之后的内容也截取出来

vim killz.txt

#!/bin/bash

#杀死僵尸进程Z

注意杀死僵尸进程要杀死pid右边的一个ppid号码才能杀死,杀死pid没有用

退格键没有效果的时候用ctrl+退格键

stoppid=‘ps -lef | tr -s “ ” | cut -d”” -f2,4截取状态和进程号 | grep T(状态是暂停的)| cut -d” ” -f2’赋值给stoppid(打引号赋值)

ps -elf | grep $stoppid | grep -v grep >> /tmp/zombie.txt

kill -9 $stoppid保存退出

加了x权限后,使用绝对路径去运行脚本

订正:

zpid=‘ps -elf | tr -s " " | cut-d" " -f2,4 | grep "Z" | cut -d" " -f2’取僵尸pid

ps -elf | grep $zpid | grep -v "color" >>/tmp/zombie.txt将僵尸进程的信息存入文件

zppid=‘ps -elf | tr -s " " | cut-d" " -f2,5 | grep "Z" | cut -d" " -f2’取僵尸ppid

kill -9 $zppid

 

mkdir ~/scripts

vim ~/scripts/zshell.sh

zpid=‘ps -elf | tr -s " " | cut -d" " -f2,4 | grep"Z" | cut -d" " -f2’

ps -elf | grep $zpid | grep -v "color" >>/tmp/zombie.txt

zppid=‘ps -elf | tr -s " " | cut-d" " -f2,5 | grep "Z" | cut -d" " -f2’

kill -9 $zppid保存退出

 

 

每隔一段时间执行一次指定的脚本

计划任务:

分为两类:

一次性计划任务:atd这个服务用at命令或batch命令

周期性计划任务:crond这个服务用crond命令

这两个服务默认为开机启动的状态。

 

一次性计划任务

at:到点执行(在后台执行)

batch:在系统负载水平允许的时候执行命令

 

at 18:15回车,创建一次性计划任务

touch a.txt会在当前目录创建文件a,可以写绝对目录

ctrl+d保存退出

atq或at -l查看计划任务

atrm或at -d删除任务

cat /var/spool/mail/root下可以查看到计划任务后台的运行情况

 

at的访问控制:

/etc/at.allow白名单(单独存在是白名单,对root无效)

/etc/at.deny黑名单(单独存在是黑名单,对root无效)

两个都不存在,只有root用户可以使用at

两个文件都存在,只有root和allow文件里面有的用户才能使用

 

trytrytry周期性计划任务(每隔1小时):

crondtab -e回车编辑

 

4.统计有多少pc使用了vsftp服务,使用了多少次,将使用次数最多的前5名及使用次数保存到/tmp/vsftp.txt文件中

cat /var/log/xferlog统计这个里面的ip出现了多少次以:为分隔符第6列

cut -d":" -f6 /var/log/xferlog | cut -d" " -f1 |sort | uniq -c | tr -s " " | sort -t" " -k1 -n -r | head -5

 

2017/12/4

lftp和ftp两个工具如何使用                                                                                                                                                                                           

rpm -q lftp ftp查看有没有已安装lftp和ftp 

yum install lftp ftp安装lftp和ftp(只需要启动vsftpd服务即可,不需启动lftp服务,因为没有lftp服务,使用lftp之前要重启vsftpd服务)

yum -ql lftp查看已安装的lftp里面有有什么东西;文件介绍{

 

lftp是交互式的,加上-c就可以变成非交互式的,原理就是执行命令后退出

/etc/lftp.conf是配置文件

}

使用: 

start:

lftp 192.168.1.serverADDR

ls查看pub是tcp是匿名用户,哈哈哈,现在我看到pub就明白是什么意思了

pwd

cd /tmp不行,因为之前自带/

这就是代码化啦:

出现

lftp 192.168.1.251:/pub> 就说明进入了代码化

61root在pub里面创几个东西(创了东西要重新连进去才看得到新东西)

62root的peter lftp192.168.1.251:/pub>输入ls

lftp 192.168.1.251:/pub>cd pub进去

ls

get test.txt下载test.txt文件(不能是目录)

从哪个文件连接进去的就下载到哪里

lftp 192.168.1.251:/pub>put etc/passwd(这个路径是接在连进来目录的后面的):上传本地文件/etc/passwd到61root的pub里面(不能是目录)(之前有个反斜杠了)

lftp 192.168.1.251:/ >mirror pub下载目录

lftp 192.168.1.251:/pub >mirror -R opt上传目录

lftp 192.168.1.251:/pub >rm可以删除

lftp 192.168.1.251:/>exit是退出到用户的界面

本地用户操作

lftp -u 61peter,123456192.168.1.61指定用户登陆代码化

jim:1@ip

jim@ip

 

点名的太长了命令好麻烦,需要打全部的路径才能执行,用别名解决

alias dianming=“sh/var/ftp/pub/scripts/dianming-3.sh”临时生效(单双引号都行)

echo alias dianming=“sh/var/ftp/pub/scripts/dianming-3.sh” >> ~/.bashrc写到配置文件永久生效,只对当前用户生效

alias 别名=“sh 绝对路径”,自己设置了好了却找不到命令怎么办?需要重新打开终端(小提示:不需要在开头写#!/bin/bash,也不需要加执行权限)

~代表家目录,家目录代表/root根下面的root

 

YUM:http://instructor.example.com/pub/centos7u3/dvd这个路径上有软件包,软件包仓库的位置

rpm安装的话直接-ivh加网站就行了rpm-ivh http://instructor.example.com/pub/centos7u3/dvd/包的全名.rpm

yum安装的话在baseurl里面写网址就行了,不需要写挂载点

vim /etc/yum.repos.d/centos7u3

baseurl=http://instructor.example.com/pub/centos7u3/dvd写网址不需要有挂载点

 

大佬看到12.1考核了

epel.repo yum provides */

 

which vim

rm -rf /usr/bin/vim

vim a

yum install vim -y不行,必须重新安装reinstall才行

yum reinstall vim -y

rpm -ivh包全名.rpm --force

 

交换分区的大小设置为物理内存的1.5倍到两倍

dd if=/dev/zeroof=/mnt/ddFile bs=10M count=100用dd创建一个文件ddFile到mnt

vim /etc/fstab挂载

/mnt/ddFileswap swap defaults,_netdev 0 0将那个ddFile挂载到swap分区里去就是添加一个交换分区了

 

备份mbr(mbr是在/tmp/mbr.txt):

dd if=/dev/sda of=/tmp/mbr.txt bs=512 count=1

使用备份:

dd if=/tmp/mbr.txt of=/dev/sda bs=512 count=1

 

现有卷组vg0已经没有剩余空间,这个卷组内有一个逻辑卷为500M,挂载在/lv0,有一个新分区/dev/sdb1大小为500M,调整逻辑卷大小,把逻辑卷lv0调整到1000M,900M和1000M可接受

lvextend -L +500M/dev/vg0/lv0

xfs_growfs /dev/vg0/lv0

df -h

 

订正:

lvextend -L +500M卷组里面没有空间用不了

物理卷-卷组扩容-逻辑卷扩容

pvcreate /dev/sdb1

vgextend vg0 /dev/sdb1

lvextend -L +500M /dev/vg0/lv0

lvs查看没有扩容了,但df查看没有,因为没有对文件系统扩容

xfs_growfs /dev/vg0/lv0 (挂载点)

 

公网上网,私网会被屏蔽

私网192.168.w.0网段,w是网络号

255广播地址

0~254可用地址(主机地址),0代表全网段

子网掩码一般默认为24

前三个数相同就是处于同一网段

公网能连接到互联网,私网称为网关地址

不插入网线不能桥接,不能ping通物理机

 

vmnet8是什么啊?

就是网卡名字啊,ifconfig可以看到vmnet1和vmnet8

 

ldd which显示共享库的依赖情况

 

ftp的访问控制:

vim /etc/hosts.deny

vsftpd:ip地址   被写入的ip地址会被拒绝访问本服务器的ip的lftp

 

vim /etc/hosts.allow需要在拒绝vim /etc/hosts.deny里面写拒绝所有人vsftpd:ALL

然后在hosts.allow里面写vsftpd:ip地址   只有被写入的ip地址才能访问lftp

 

dd if=/dev/zero of=a.txt bs=1M count=1000服务器在pub目录提供一个大文件给客户端下载,当客户端下载的时候使用netstat -taulnp | grep vsftpd监听21号端口,可以查看谁连了我,可以查看哪些ip连接到了我,别人下载的时候再监听会发现服务端的21号端口变成了大于1024的端口

 

sshd服务

ssh是安全的shell连接

功能:实现加密方式的远程连接

useradd tom -p 123创建的时候设置密码为ssh512给“123”加密后的一串字符

linux:opensshh-server

ssh远程连接的软件

linux:openssh-clients

windows:Xshell Xmanager putty SecureCrt MobaX

默认端口:

tcp/udp 22

环境:

SERVER 192.168.1.61 server.lbx.com

CLIENT 192.168.1.62 client.litao.com

start:

rpm -qa | grep ssh查看是否已安装server和clients和openssh-6

rpm -ql openssh-server查看server包有哪些服务(就是查看包里面有哪些东西){

/etc/ssh/sshd_config主配置文件

/etc/sysconfig/sshd脚本配置文件

/usr/sbin/sshd守护进程

}

rpm -ql openssh-clients查看clients包有哪些服务(就是查看包里面有哪些东西){

/etc/ssh/ssh_config客户端配置文件

/usr/bin/scp远程拷贝

/usr/bin/sftp是ftp功能

/usr/bin/ssh远程管理

/usr/bin/ssh-copy-id传递秘钥

/usr/bin/ssh-add传递密钥失败

/usr/bin/ssh-agent传递密钥失败

}

rpm -ql openssh查看openssh包有哪些服务(就是查看包里面有哪些东西){

/usr/bin/ssh-keygen制作密钥

}

systemctl start sshd启动服务

systemctl enable sshd开机自启服务

 

netstat -tulnp | grep sshd

-p是进程名

-n以数字的方法显示,不解析,解析的话就是ssh端口,不解析的话就是ssh端口号22

 

判断服务是否处于监听状态:

lsof -i:22罗斯福,有返回值说明正在被监听

 

ssh的基本使用:客户端对服务器的操作

来到客户端:252

ssh 192.168.1.251使用root用户会问是否保存指纹信息,就是保存密码,保存到客户端这边的/root/.ssh/known_hosts指纹文件(以.开头的是隐藏文件,就像~/.bashrc)

使用exit退出

若发生一圈的@,则说明主机名等信息发生了改变,如何解决:

vim /root/.ssh/known_hosts文件中与该ip相对应的行删掉

或清空文件里面的内容> /root/.ssh/known_hosts,不要删了这个文件,不然就会报错

 

ssh 192.168.1.251 -l jim以jim的身份进入服务器,-l是login

 

date;ssh 192.168.1.251 date查询两个终端的时间

 

lastlog日志可以查看谁登陆了我

 

scp远程拷贝

scp /tmp/test.txt 192.168.1.251:/root/桌面

 

netstat -luantp(乱tp) | grep sshd查看端口查看自己的端口
vim /etc/ssh/sshd_config改服务器的端口

Port 2200重启服务

ssh -p 2000 192.168.1.251进入指定端口ssh的ip地址

端口总结:

sshd的默认端口是22

vsftpd的默认端口是21

 

免密码ssh登陆,密钥请见下面的word笔记

基于密钥的连接,不需要输入密码

1.生成密钥

ssh-keygen

密钥位置cd /root/.ssh

id_rsa是私钥(生成的)

id_rsa.pub是公共钥匙(生成的)

known_hosts是检查出错的,有一圈的@说明出错了,要把这里面的内容清空

 

start:

回到客户端,ssh-keygen制作钥匙

回车,回车,回车

cd /root/.ssh

ssh-copy-id   -i 192.168.1.251

回车

ssh 192.168.1.251不需要密码了

查看哪些钥匙信息发送过来了

cd /root/.ssh/authorized_keys(生成的)可以看到有哪些同学发送了密钥信息

服务器会将客户端的公钥保存在authorized_keys (生成的)文件中

密钥无效就用

在客户端ssh-add

 

 

ssh访问控制:

vim /etc/hosts.deny

sshd:ALL或sshd:*

vim /etc/hosts.allow

sshd:ip

 

 

vim /etc/ssh/sshd_config服务器配置文件

LoginGraceTime 2m不输入密码2分钟会断开(问道)

PermitEmptyPasswords no密码为空不能登陆(主动删了passwd里面的密码x就不能登入)

PasswordAuthentication yes阿里输入对了密码也不能进去,还要扫码

 

指纹保存在客户端上:~/.ssh/known_hosts

不保存指纹:vim /etc/ssh/ssh_config里面写StrictHostKeyCheckingno

(注意:sshd_config是主配置文件 服务器;而ssh_config则是客户端的配置文件)

 

总结查看同学的几条命令:

lastlog | grep “192.168.”

netstat -taulnp | grep vsftpd

netstat -taulnp | grep sshd

 

2017/12/5

大佬好熟练,演技(练到不看笔记就能操作)

 

lftp是传输的

ssh是管理的

find /别忘了在哪find

/etc/hosts.deny别忘了hosts.deny

/etc/hosts.allow

密钥无效就用

在客户端ssh-add

 

本地用户只能在家目录上活动:

在/etc/vsftpd/vsftpd.conf里面添加

chroot_local_user=YES

allow_writeable_chroot=YES

 

rpm使用之前要进入yum挂载点的Packages目录才可以使用

 

 

nfs:

NFS(传输速度最快,局域网) network file system网络文件系统及rpcbind提供(111端口)rpc协议,用来通信(服务器和客户端需要把这两款软件都装上,并且使用nfs之前要把rpcbind这个服务给开启)

挂载到本地目录

给自己增加空间,同时提供性能,存的东西在服务器上

500G硬盘,空间不足,数据不能删

服务器添加硬盘,挂载到服务器,给那个空间不足的客户端使用

UNIX/LINUX和linux之间的资源共享

优点:是局域网共享中速度最快

网络文件系统:是一种将远程主机上的目录经过网络挂载到客户端本地系统的一种机制

 

rpm -qa | grep “nfs”

nfs-utils-1.3.0

rpm -qa | grep “rpcbind”

rpcbind-0.20

 

rpm -ql nfs-utils查看目录里的有什么{

/sbin/mount.nfs是挂载的命令

/sbin/umount.nfs是卸载的命令

/usr/sbin/exportfs后期用到

/usr/sbin/showmount后期用到

}

nfs协议是由谁提供的啊?

yum search nfs也看不出来什么东西

 

配置共享资源

服务器共享/test目录

 

start:

mkdir /test服务器创建目录

echo haha >> /test/f000.txt

mkdir /test2

echo hehe >>/test2/f000.txt

 

配置共享/test目录

rpm -qf /etc/exports查看是否已经安装exports(rpm知识补充:-f是文件,查看是否有这个文件)

共享:

vim /etc/exports(这个是第一步,凡哥说)

怎么共享,共享给谁?

man 5 exports

知道了exports是nfs服务的导出表

怎么做呢?

/EXAMPLE查看例子

共享资源  共享给谁(共享的属性)

配置共享  只读共享

vim /etc/exports

/test(目录的绝对路径)192.168.1.252(ro)只读的意思,共享给谁,写完要重启服务:systemctl reloadnfs-server(这个重启就是用reload了,免得别人在写的时候重启出现问题)

/test2 192.168.1.252(rw)读写的意思(但是会出现一个问题touch不了文件,因为之前的/test目录其他人本来就没有写的权限,解法:在服务器里面给/test目录加写的权限,touch后的文件的所有者和所属组会变成nsfnobody)

 

showmount -e 192.168.1.251查看共享的资源是否成功,有返回值就成功了

客户端使用资源,转到客户端

rpm -qa | grep nfs查看是否有nfs-utils-1.3.0

showmount -e 192.168.1.251查看服务器上的挂载

mount.nfs(客户端远程挂载服务器的共享目录到本地的挂载点) 192.168.1.251:/test /opt 挂载设备 挂载点,一般是客户端使用这条命令

df -h 查看是否成功挂载

cd /opt进入opt

ls查看有没有刚才写的文件

touch f111.txt试试创建文件行不行,验证只读权限

同学们的新问题:

服务器刚开始创建的目录不能在/root里创建,因为没有访问权限

我的新问题啊:

客户端进入到/opt里面却没有任何的东西,因为之前你在服务器端没有创建任何东西

开机自动挂载:

服务器这边

vim /etc/rc.d/rc.local

mount /dev/sdb1 /mnt/sdb1保存退出

chmod +x /etc/rc.d/rc.local

方法二vim /etc/fstab

/dev/sdb1 /mnt/sdb1 xfsdefaults,_netdev 0 0保存退出

客户端这边

vim /etc/rc.d/rc.local

mount.nfs 192.168.1.251:/test/opt保存退出

chmod +x /etc/rc.d/rc.local

方法二vim /etc/fstab

192.168.1.251:/test /opt nfsdefaults,_netdev 0 0保存退出

mount -a是将开机挂载即时生效

 

小技巧:两个机器之间用空格隔开

192.168.1.252某个主机

192.169.1.0/24

192.168.1.0/2255.255.255.0

today.uplook.com主机名

*.uplook.com   某个域   匹配uplook.com的所有主机

*表示任意

 

共享的属性(文件系统的属性,属性之间用逗号隔开)

ro

rw

async

sync

secure小于1024端口连接

insecure

root_squash把客户端使用root操作的文件的所有者和所属组映射为匿名用户nfsnobody

no_root_squash不映射

all_squash把所有用户都映射为nfsnobody

加上上面的属性之后没有改变所有者和所属组了,说明成功了

 

例子:添加5G的硬盘,挂载到本地目录,再把目录挂载到客户端,客户端能使用的空间为5G,客户端能以root身份在里面创建文件(属性之间用逗号隔开)

答:切换到服务器,分区、格式化、挂载到本地(挂载前用df查看有没有正在挂载的就要卸载),添加挂载点的写权限,写/etc/exports文件共享,重加载服务,切换到客户端,挂载.nfs服务器的挂载点到客户端的挂载点(挂载前用df查看有没有正在挂载的就要卸载),切换到客户端的挂载点,可以进行操作了

 

阿里云-注册账号-云服务器ECS立即购买

华东2-安全组(端口放行)vsftpd放行21号端口,CentOS,7.3,不写存储,购买59块

登陆-左边有云计算基础服务-云服务器-实例-ip地址-远程连接-

官网ip地址101.132.111.148

安全组规则可以对端口放行设置

 

限定服务器的随机端口限定到60000~61000

start:

vim /etc/vsftpd/vsftpd.conf设置服务器的vsftpd配置文件

pasv_enable=YES

pasv_min_port=60000

pasv_max_port=61000保存退出

systemctl restart vsftpd重启服务

dd if=/dev/zeroof=/var/ftp/pub/a.txt bs=1M count=5000在公共目录创建一个大文件

转到客户端

lftp 192.168.1.61进入服务器

cd pub进入服务器的公共目录

get a.txt下载大文件

转到服务器

netstat -luantp | grep “vsftpd”查看端口号

 

问老师:我的电脑ftp:右键文件夹-共享-共享中心去开启一些东西-调共享-完成,要在我的电脑使用\\ip去访问才行,ftp://那是要开启这个服务才行的

 

学了3个服务,画图说明之间的关系

vsftpd非常安全的ftp连接

sshd安全的shell连接

nfs网络文件系统

 

2017/12/6

晨练:

vsftpd主动模式是怎么样的?

答:客户端去连接服务器的21号连接端口,客户端会打开一个大于1024的端口等待,然后服务器用20号数据端口把数据传输到客户端

ssh的双方互信是怎么样的?

答:密钥嘛,客户端先制作ssh-keygen密钥,然后把密钥发送给服务器ssh-copy-id -i ip地址,服务器同理。

nfs文件共享是怎么样的?

服务器将要共享的目录挂载到一个挂载点,设置配置文件/etc/export要共享的对象和权限,然后在客户端上远程挂载服务器的挂载点到客户端上的挂载点,就能共享了,需要修改之前共享目录的权限才能写,客户端创建的文件的所有者和所属组默认是nfsnobody

 

周期性计划任务请见下面:

5分 0小时 * * *  每天

15分 14小时 1号 * *  每月

0分 22时  * *  1-5 周一到周五

分    时  日  月  周  动作

取值范围:

minute 0~59

hour 0~23

day of mounth 1~31没有2月31

month 1~12

day of week 0~7

-表示范围

*表示所有

,表示多个具体时间

/表示频率

 

例子:

*/5     2     *    *     *     表示每天的2点整,2点05,2点10 ,2点15每隔5分钟执行动作

0    */2      *    *     *     表示每天0点,2点,4点,6点等等执行动作

*    */2      *    *     *     表示每天0点~1点,2点~3点,4点~5点,6点~7点等等执行动作

5    3    3     *      5  表示每周五的3号3点05分执行动作

0    */1    *     *      *  /root/zshell.sh脚本(动作写绝对路径)表示每隔1小时就执行这个脚本。

周期性计划任务的配置文件:vim /etc/crontab

10   20   *  *   1-5  root shutdown -h now     表示每周1至周5的20:10关机

10   17   *  *    0   root shutdown -h now    表示每周日(0代表sunday)的17:10关机

守护进程   man 8 cron

可不可以直接在cron的配置文件vim /etc/crontab不行,但可以写crontab -e编辑

cat /var/spool/cron/root查看周期性计划任务列表

以下目录内可以存放脚本到定期时间去执行脚本

vim /etc/cron.hourly

vim /etc/cron.daily

vim /etc/cron.weekly

vim /etc/cron.monthly

crontab -u root -e以root用户去编辑

crontab -l查看

crontab -r

黑白名单:

/etc/cron.allow

/etc/cron.deny

等下查看进入里面写的格式是什么,在里面直接写用户名即可

 

samba:

samba服务的功能:linux和windows之间的资源共享 CIFS协议(linux和linux之间不会用samba,而会用nfs)(CIFS协议445端口就是smb协议139端口)

rpm -qa | grep samba-common两个(默认已经装了)

rpm -qa | grep samba还需要一个名字直接叫samba的主程序包(默认没有装上)

yum install samba -y

包介绍:{

libs主程序包

common通用组件包有etc/配置文件

common-libs通用组件库文件相关包

common-tools通用组件库工具包

client客户端软件包

client-libs客户端库文件相关包

 

/usr/sbin/nmbd和/usr/sbin/smbd是samba的进程

/etc/samba/smb.conf配置文件

/usr/bin/pdbedit管理工具,管理samba服务的

/usr/bin/smbpasswd添加samba用户

/usr/bin/testparm语法检测

}

 

start:

mkdir /sambatest

echo “this is a sambatest” >> sambatest.txt

vim /etc/samba/smb.conf配置文件

配置文件介绍{

[global]全局配置

workgroup=SAMBA定义工作组

security=user安全验证的设置

user:需要提供用户名和密码才能访问,验证使用的是本地服务器

share:匿名用户    7已经被废弃

passdb backend=tdbsam用户和密码存放的格式/var/lib/samba/private

printing=cups打印相关内容

printcap name=cups

load printers=yes

cups options=raw

 

[homes]定义一个共享资源、家目录

comment=Home Directories描述信息

valid user=%S,%D%w%S只允许哪些用户使用

browseable=No不能浏览共享资源

read only=No可读写

inherit acls=Yes继承acl权限

}

进入/etc/samba/smb.conf配置文件之后

set nu

:31,36 co 41

中括号写的是共享名,随便起的

 

[test](这个是显示在客户端上的共享目录的名字)

comment=this is a test描述信息

path=/sambatest绝对路径

其余的删掉

read only=Yes

 

还要提供samba用户和密码(注意用户必须是已经存在的)

useradd samba61

echo 123456 | passwd --stdin samba61

smbpasswd samba61

smbpasswd介绍{

smbpasswd -a samba61添加用户

smbpasswd -d samba61禁用用户

smbpasswd -e samba61启用用户

smbpasswd -x samba61删除用户

smbpasswd -n samba61设置没有密码

}

smbpasswd -a samba61将普通用户转换为samba用户,考虑安全,密码最好不要一样(名字不要搞错了)

systemctl start nmb 开启nmb服务,对应的是137、138端口,提供解析功能

systemctl start smb 开启smb服务,对应的是139端口,提供路径功能

转为客户端

smbclient -L \\ip查看共享的资源(不要输入密码直接回车就行,输入密码进不去)

回车

windows客户端使用我的电脑写\\ip

用户名是samba61密码是123456,自己用户对自己用户的目录有所有的权限(samba可以在samba里面上传文件)

转服务器

cd /sambatest

ls

重启smb和nmb服务之后要让Windods断开连接:打开cmd,net use * /delete 回车y回车

为了避免每次输入密码很麻烦,可以右键-我的电脑,驱动器,文件夹:\\ip\test,然后在我的电脑里面可以看到了

samba的访问控制(还是在samba的配置文件/etc/samba/smb.conf)

hosts allow=ip  只允许

hosts deny=ip   只拒绝

重启smb和nmb服务

samba的读写权限设置(还是在samba的配置文件/etc/samba/smb.conf)

read only=No(这就是读写啦)(如果还是不能写,就是之前服务器的目录没有写的权限,要去给之前服务器的目录添加写的权限)

 

vim /etc/samba/smb.conf

valid users=samba61只允许哪些用户使用(注意是users)

invalid users=samba61拒绝哪些用户

 

writable=No表示所有用户只可以读

write list=samba61表示在这个列表里的用户还可以写

read only=No表示所有用户只可以读

read list=samba61表示在这个列表里的用户还可以读

 

setfacl也可以给用户设置权限

 

语法检测:

testparm就是查看配置文件的内容

pdbedit -L列出所有的samba用户

 

案例:

服务器提供一个共享资源/share-test,windows客户端使用\\服务器\hello方式访问,能够在访问的目录内创建文件和目录。只有192.168.1.0网段内的用户可以访问,除了192.168.1.5,同时只有使用samba1用户才能访问?

假设已经存在samba用户叫做samba1

mkdir /share-test

chmod g+w,o+w /share-test

vim /etc/samba/smb.conf

[hello]

comment=this is share-testdir

path=/share-test

read only=No

valid users=samba1

hosts allow=192.168.1. EXCEPT 192.168.1.5(allow和deny如果同时存在的话就看allow)

保存退出

systemctl restart nmb

systemctl restart smb

在客户端中打开运行窗口Win+R,并输入\\192.168.1.61\hello

 

在虚拟机里面也可以连接:连接到:smb://ip

 

ldd ‘which smdb’ |  grep wrap共享库的以来包

 

vim /etc/hosts.deny

smdb:ip

nmdb:ip

上面的没有效果因为这是sshd里面的控制访问啊

 

日志:

vim /etc/rsyslog.conf

第46行:authpriv.*      /var/log/anquan

local5.info    /var/log/ssh重启服务

systemctl restart rsyslog

tail -0f(可以监听这个文件发生的变化) /var/log/anquan

最大连接数是10,在vim /etc/ssh/sshd_config里面可以修改

pkill -9 sshd是结束sshd,就是让学生都断开与服务器的连接,注意会切断xshell和mobax的连接

 

su - jim在别的终端切换用户            

 

想单独存放一个日志文件:

vim /etc/ssh/sshd_config

43行:SyslogFacilitylocal5重启服务sshd

 

中央日志:

/etc/rsyslog.conf

三台服务器

vsftpd    ssh       nfs

所有的信息集中到一台服务器上去就叫中央服务器

其它两台服务器发送给中央服务器,中央服务器接收

Provedes UDP

vim /etc/rsyslog.conf找到Provides UDP和TCP

如果采用TCP就将TCP下面两行的注释去掉,然后重启服务rsyslog

转到那两台服务器其中一个

vim /etc/rsyslog.conf找到### begin forwarding在上面写

local7.* /var/log/boot.

*.*    @@(代表all)192.168.1.250:514保存退出

systemctl restart rsyslog.conf重启服务

测试:

转到中央服务器

tailf /var/log

转到服务器

su - jim

date可以把日志信息都丢到中央服务器

 

2017/12/7

logrotate:日志轮转:

文件过大(比如大于4G),内存会读取不了,然后就出现了日志轮转,日志轮转可以将那个大文件切分为很多的小文件来进行传输

logrotate的服务是rsyslog

rpm -qa | grep logrotate查看是否已经安装日志轮转

man logrotate.conf进入man了解

管理员用的,轮转、压缩、文件,

-f强制

-m发送给谁

-s查看状态

-v显示过程

vim /etc/logrotate.conf进入配置文件了解

{

第一段每周轮转

第二段保留4次,备份文件

轮转之后创建新的日志文件

使用日期作为日志文件的后缀

去掉#可以启动

丢掉日志文件包含/etc/logrotate.d子配置文件的目录,记录属性,会自动加载

不是btmp就有自己的轮转规则:

/var/log/wtmp{

每月轮转一次(满足一个月-条件1)

创建的权限为0664

 minsize 1M最小为1M(大于等于1M-条件2这两个条件会切分)

rotate 1保留一份

}

/var/log/btmp{

同上

权限为0600

}

}

ll -h /var/log/wtmp了解{

一个文件,权限是0644

}

ll -h /var/log/btmp了解{

一个文件,权限是0600

}

cd /etc/logrotate.d里面的子配置文件ls了解{

一周一轮转保留4份旧的cal可以查看日期cal  月  17年

}

vim /etc/vsftpd/vsftpd.conf可以看到ip的日志放到/var/log/xferlog里面

cd /etc/logrotate.d

自己编写:

vim /etc/rsyslog.conf

改/var/log/aq

重启服务

cd /var/log

ls aq

cat aq

cd /etc/logrotate.d不是一个守护进程,不是一个程序

ls

vim aq

/var/log/aq{

    missingok丢失不提示

    create 0644 root jim

    rotate 4

    ifempty是空的也切割

    dattext以日期作为后缀

}保存退出

cd /etc/cron.daily

ls

ll lograte

vim logrotate

#!/bin/sh    

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status/etc/logrotate.conf

EXITVALUE=$?上面一条命令若成功了,就退出,是否退出

if [ $EXIT ]

 

logrotate -f(强制切分) /etc/logrotate.d/aq切分命令

ll /var/log/aq*查看

vim /etc/logrotate.d/aq轮转规则

 

空的默认不切分

ifempty空的也切分

 

自动切分的条件:时间满一周、不是空的;手动切分可以忽视左边条件

systemctl restart rsyslog重启服务会产生新的文件

修改日期是为了新切割出来生成的文件不会重名,因为都是以日期命名的

原理:

计划任务里面有个logrotate脚本,每天会执行这个脚本,脚本里面有一个命令,根据日志轮转规则进行切割

最新的文件永远在原名里面,轮着搞

 

copy复制截断

nocrete不创建新的日志文件

prerotate

    命令

endscript切分之前去掉a

postrotate

    命令

endscript切分之后加上a

chattr +a /etc/log/secure只能追加内容,不能轮转切分,这个权限叫隐藏权限

 

apache:

优点:开源,支持二次开发,稳定好,支持多种操作系统,支持多种编程语言(php,html,jsp,asp.net)

给用户提供网页服务

早期支撑互联网的架构:LAMP

A patchy Server一个充满补丁的服务

tomcat,支持的语言是jsp

ngix  LNMP

进程模式和线程模式:

进程模式:

b-------请求连接--------->s

b<--------响应------------s

进程会占内存

一对一

一个人进来开启一个子进程去管理

优点:安全性较高

缺点:占内存,每个子进程只能有一个线程

 

线程模式:

每一个子进程下面有线程存在

一个线程响应一个请求

优点:高流量,每个子进程可以有多个线程

缺点:若一个子进程坏掉或一个线程坏掉的话,就会认为整个线程坏掉了

一个服务员管理一个厅

 

yum install httpd -y(httpd这个就是apache呀)

/etc/httpd/conf/httpd.conf是主配置文件

url      统一资源定位符 协议

firefox   file:///etc/passwd

          ftp://192.168.1.250/pub访问pub的路径

firefox smb:123456@//ip/test

 

start:

systemctl start httpd

netstat -luantp | grep httpd查看是否被监听

lsof -i:80(端口)

ps -elf | grep httpd

火狐上写上ip地址:

firefox http://192.168.1.251

 

网页html:

start

cd /var/www/html进入html目录,里面可以放网页,名字要为index.html

cp /etc/passwd /var/www/html在html目录里面放几个文件

若html目录里没有.html,会出现欢迎页面

vim /etc/httpd/conf.d子配置目录

welcome.conf注释所有内容,或重命名这个欢迎页面

systemctl restart httpd重启服务

能看到那个文件的超链接,点击会出现forbidden没有任何权限

因为html这个目录里面的shadow这个文件没有任何权限

要添加才行:chmod

文本文件可以在html的http里面直接打开

下载:右键超链接-另存为-下载

将镜像文件挂载到html这个目录

mount /dev/sr0 /var/www/html

在本地的下载目录里面

yum源

baseurl=http://ip/

 

 

umount /var/www/html

mkdir localyum

mount /dev/sr0 localyum

 

yum install tree

tree / -L 1查看根下面的第一层

下面一系列的东西都是在/etc/httpd/conf/httpd.conf主配置文件里面

服务的根目录是/etc/httpd,使用相对路径是参考这个的

/etc/httpd/conf.modules.d模块

User apache

Group apache

ps -elf | grep httpd

apache的ppid是root

ServerAdmin root@localhost有问题会发给本机用户

访问apache的时候是ip,想让显示为主机名就设置: ServerName www.litao.com:80,前提条件,主机名对应的ip地址知道了才能访问

    AllowOverride none访问控制没有开

    Require all denied所有人都不能访问根目录

DocumentRoot  “/var/log/www”声名文档目录

根下面的www容器

    Require all granted

Options IndexesFollowSymLinks选项 索引 连接三个单词可以任意去掉

systemctl restart httpd重启服务

去掉Indexes之后会导致出现Forbidden

做软链接的时候不要用.要用绝对路径

去掉FollowSymLinks,在vim里去掉一个单词的快捷键是dw,之后会导致目录无效

    DirectoryIndex index.html(这个是默认主页设置是这个)

   

ErrorLog “logs/error.log”

 

LogLevel warn警告的级别

 

    LogFormat “....”

CustomLog “logs/access”combined

 

LogFormat里面的内容

%h客户端的地址

%l远程登陆的登录名,通常-

%u认证时的远程登陆名,通常-

%t接受请求时的时间

“%r”请求报文的起始行

%>s响应状态吗404

%b字节

 

    ScriptAlias /cgi-bin/ “/....../”客户端只用写上前面的就能访问后面的内容

 

Require all denied拒绝所有人啊

 

EnableMMAP off线程模式

进程模式(默认)

IncludeOptionalconf.d/*.conf

 

题目:(在笔记的apache-配置文件)

一般的话客户端打开就是在/var/www/html里面,输入ip就相当于左边的这个,

客户端输入http://serverip/hello,可以访问服务器的/var/www/hello/index.html,这个里面显示hello,李涛

mkdir /var/www/hello

echo “hello litao” >>/var/www/hello/index.html

vim/etc/httpd/conf/httpd.conf

 

订正:

vim/etc/httpd/conf/httpd.conf

别名呀:可以改变客户端输入的目录(相当于重定向)

Alias /hello /var/www/hello路径,不写文件,当客户端输入http://192.168.1.61/hello,实际上就是/var/www/hello

重启服务

systemctl restart httpd

Example

 

题目:

ip/test   要实现 /abc/bbb/index.html怎么办

别名指:/var/www/下面的东西

存在/var/www的容器,不要拒绝掉了,自己可以做一个容器呀

在主配置文件里面vim/etc/httpd/conf/httpd.conf

添加

131     AllowOverride None

132     # Allow open access:

133     Require all granted表示所有人放行

134

然后再去设置别名Alias /test/abc/bbb即可

403错误是没有权限,是没有设置容器

 

Apache三种MPM模式:

httpd -V查看当前模式

prefork进程模式优点:非常稳定的模式,兼容性高

缺点:占内存,不适用于高流量,需要排队

 

worker线程模式

占内存少,高流量

安全性低、一个线程坏掉了就整个子进程都坏掉了

 

event模式

长连接模式得到了解决

keep-alived

 

改模式、改httpd模式:

/usr/share/doc/httpd-2.4.6/httpd-mpm.conf不会读,这个里面可以改各个工作模式的属性

进入主配置文件/etc/httpd/conf/httpd.conf开启EnableSendfile上面的(把上面off改为on),注释本行的,重启服务

cd /etc/httpd/conf.modules.d会读,ls,vim 00-mpm.conf编辑模块,取消注释、加上注释:加载worker线程模块(第12行),禁用prefork进程模块(第6行)

MPM的中文是进程模式

 

ps -elf | grep httpd可以查看 gip(进程能开5个子进程,线程则3个)

prefork进程模式

    StartServers      5    开启服务的时候创建5个子进程(可以改成10)

    MinSpareServers   5    最小空闲子进程

    MaxSpareServers   10   最大空闲子进程

    MaxRequestWorkers 250  设置了允许同时的最大接入请求数

    MaxConnectionsPerChild 0 设置了每个子进程可处理的请求数(0是无限制)

worker线程模式

            StartServers             3           //开启服务的时候创建3个子进程

            MinSpareThreads         75    //最小空闲数量的工作线程

            MaxSpareThreads        250  //最大空闲数量的工作线程

            ThreadsPerChild         25         //每个子进程产生线程的数量

            MaxRequestWorkers      400   //设置了允许同时的最大接入请求数

            MaxConnectionsPerChild   0   //设置了每个子进程可处理的请求数。

event长连接模式:

Timeout    60超时时间

KeepAlive On 保持长连接(60秒会超时,但长连接会加时,比如65秒)

MaxKeepAliveRequest 100最大保持长连接请求数

KeepAliveTimeout 5   //保持连接的超时时间

 

老师笔记里面的个人主页:

vim /etc/httpd/conf.d/userdir.conf子配置文件之一

注释UserDir disabled

开启 最后一行保存退出

转客户端

su - jim普通用户

mkdir public_html家目录下创建public_html目录,这个是固定死的不能改其他名字,要想改其名,就要去个人主页的配置文件里面去改

echo “jim home index”>> public_html/index.html

exit

cat /home/jim/public_html/index.html

systemctl restart httpd

firefox http://192.168.1.61/~jim

/home/jim/public_html/index.html下面的路径

转服务器

chmod 755(rw) /home/jim

客户端访问不了看什么日志

tail/etc/httpd/logs/error_log(显示出来错误的原因)

tail /etc/httpd/logs/a访问日志tab出来(显示错误代号)

 

vim/etc/httpd/conf/httpd.conf

conf.modules.d里的00-base.conf文件里表示加载的模块

 

容器的那个配置文件/etc/httpd/conf/httpd.conf主配置文件

有一个模块的名字,就像是外嵌的css

 

1.vsftpd、nfs、samba服务各有什么优缺点?

vsftpd优点:非常安全的文件传输协议服务。既可以是Linux和Linux之间,又可以是Linux和Windows之间

vsftpd缺点:需要去/etc/vsftpd/vsftpd.conf配置文件里去设置相关权限和功能

nfs优点:是局域网共享中速度最快的

nfs缺点:适合在局域网中使用,需要向rpc注册传输,端口都是随机的,不能把防火墙的端口全部都开放需要挂载和配置对象及权限

samba优点:既可以是Linux和Linux之间,又可以是Linux和Windows之间,可以映射成网络驱动器

samba缺点:需要有samba用户,并且每次都要访问的时候都要输入用户名和密码

 

2.使用samba服务提供一个共享资源目录/TEST,此目录空间为10G大

    1)windows客户端使用\\server-ip\sharedir  访问能在此目录内创建删除文件

2)现10G空间不够用了,将此空间提升到20G

 

在192.168.1.62上操作

umount/dev/sdb1

parted/dev/sdb

mklable gpt

mkpartprimary 1 10G

mkpartprimary 10G 20G

mkpartprimary 20G 30G

q保存退出

pvcreate/dev/sdb{1..3}

vgcreate vgtest/dev/sdb{1..3}

lvcreate -nlvtest -L 10G vgtest

mkfs.xfs /dev/vgtest/lvtest格式化10G的逻辑卷

mkdir/mnt/sdb1

chmod a+w/mnt/sdb1

mount /dev/vgtest/lvtest/mnt/sdb1

vim/etc/exports

/mnt/sdb1  192.168.1.61(rw,no_root_squash)

systemctlreload nfs-server

 

在192.168.1.61上操作

mkdir /TEST

systemctlstart nfs-server

mount.nfs192.168.1.62:/mnt/sdb1 /TEST

chmod o+w/TEST

vim/etc/samba/smb.conf

[sharedir]

    comment=this is a test

    path=/TEST

    read only=No保存退出

systemctlrestart nmb

systemctlrestart smb

 

在192.168.1.66的物理机Win7上操作

Win+R,\\192.168.1.61\sharedir

 

在192.168.1.62上操作

扩容:

lvextend -L+10G /dev/vgtest/lvtest  给10G的逻辑卷扩容到20G

xfs_growfs/dev/vgtest/lvtest

 

订正:可以直接做一个逻辑卷,逻辑卷的名字叫TEST,然后将逻辑卷共享即可呀,这就学到了还可以将逻辑卷挂载到一个目录,再将这个目录共享出去就可以了

 

3.从第一天的知识点开始往后一一复习:

【ls  cd date】

ls /etc/passwd查看用户信息

cd /tmp切换到根下面的tmp目录

date 查看当前系统时间

【touch cp mkdir rm mvcat more less head】

touch /a.txt在根目录下创建一个叫a.txt的文件

mkdir /testdir 在根目录下创建一个叫testdir的目录

cp /a.txt /testdir/aa.txt将根目录下的a.txt复制到根目录下的testdir目录并改名叫aa.txt

rm /testdir/aa.txt

mv /a.txt /testdir

cat /testdir/a.txt

echo I’m LiTao >>/testdir/a.txt

more /etc/passwd

less /etc/group

head -5 /etc/passwd

tail -5 /etc/group

【帮助】

vim --help

man touch

【用户和组的管理】

gourpadd jim

useradd litao

usermod -u 10 -a -G “jim”litao

userdel -r litao

groupdel jim

【权限、ugo、高级权限】

chmod 777 /testdir

chmod o+t /testdir

kill -9 pid

pkill -9 进程名

【进程】

jobs

bg 进程号

fg 进程号

【文件的高级操作命令】

chattr +i /testdir

lsattr /testdir

【shell】

/bin/bash的用户shell才能登陆系统

/sbin/nologin的用户shell不能登陆系统

【分区、raid、lvm、quota】

fdisk /dev/sdb

parted /dev/sdb

raid 50

pvcreate /dev/sdb{1..4}

vgcreate test /dev/sdb{1..4}

lvcreate -n data -L 2G test

umount /mnt/sdb3

mount -o uquota,gquota/dev/sdb1 /mnt/sdb1

xfs_quota -x -c 'limitisoft=8  ihard=10  -u  quota1' /mnt/sdb3

【rpm、yum】

rpm -q 软件包名.rpm

切换到包的挂载点,rpm -ivh 软件包名.rpm

配置yum源

umount /dev/sdb1

mount /deb/sdb1 /mnt/sdb1

vim /etc/yum.repos.d/centos7u3

[centos7u3]

name=centos7u3

baseurl=file:///mnt/sdb1

gpgcheck=0

enabled=1

:x

yum clean all

yum repolist

yum install 软件包名 -y

【ip的查看与设置】

ifconfig

vim/etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=none

DEVICE=ens33

ONBOOT=yes

IPADDR=192.168.1.61

重启服务:systemctl restartnetwork

【计划任务】

at 18:15

touch /a.txt

crontab -e

*/1 * * * * touch /b.txt

【sshd】

systemctl start sshd

ssh 192.168.1.62

ssh-keygen

ssh-copy-id -i 192.168.1.61

转到服务器

vim /etc/hosts.deny

sshd:*保存退出

vim /etc/hosts.allow

sshd:192.168.1.62

【vsftpd】

rpm -qa | grep vsftpd

yum install vsftpd -y

touch /var/ftp/pub/a.txt

lftp 192.168.1.61

【nfs】

chmod a+w /testdir

vim /etc/exports

/testdir 192.168.1.252(ro)

systemctl reload nfs-server

转到客户端:

mount.nfs 192.168.1.61:/testdir/opt

cd /opt

【samba】

mkdir /sambatest

chmod a+w /sambatest

echo “this is a sambatest”>> sambatest.txt

vim /etc/samba/smb.conf

[test]

comment=this is a test描述信息

path=/sambatest绝对路径

read only=No

useradd samba61

echo 123456 | passwd --stdinsamba61

smbpasswd samba61

smbpasswd -a samba61

systemctl start nmb

systemctl start smb

windows客户端使用我的电脑写\\192.168.1.61

 

每秒刷新监听

watch -n 1 netstat-luantp(watch 不能用管道)

 

4.搭建中央日志服务器,并测试

环境:

中央服务器192.168.1.61

客户端192.168.1.62

[root@server /]# vim/etc/rsyslog.conf

# Provides TCP syslogreception

$ModLoad imtcp

$InputTCPServerRun 514

wq保存退出

[root@server /]# systemctlrestart rsyslog

转到客户端

[root@client ~]# vim/etc/rsyslog.conf

*.* @@192.168.1.61:514

wq保存退出

[root@client /]# systemctlrestart rsyslog

测试:

转到中央服务器

[root@server /]# tail -0f/var/log/secure

转到客户端

[root@client /]# su - jim

此时中央服务器就会显示日志的内容

没有显示/var/log/secure解决方案:

secure里面本来就没有东西

rpm -qf /etc/rsyslog.conf是什么?查询拥有rsyslog文件的包

rpm -e rsyslog卸载掉

yum install rsyslog -y然后用yum安装

systemctl restart rsyslog连包都卸载掉重启会暴露出问题

rm -rf/var/lib/rsyslog/imjournal.state然后删掉一个文件删掉文件

systemctl restart rsyslog重启服务

tailf /var/log/secure &可以放到后台自己检测自己

解决我的mobax问题,不能开61 了:

重新启动虚拟机(先关机再开机)

 

安装了httpd但是开启不了服务,提示找不到,说明你移动了位置

 

 

 

 

 

 

 

 

 

作业:

bilibili的马哥教育

凡哥笔记1看到了4开头

作业:

计划任务、和轮转结合起来用

1.画图计划任务cron+ssh+rsyslog+logrotate服务之间有什么关系

 

 

 

2.ssh里面的信息会存到 /var/log/secure,给这个文件加上隐藏权限(+a),能够正常记录日志并且能够日志轮转,轮转的规则是保留3份,创建的新文件的权限是600,所有者和所属组都是root,空的不轮转

解:

vim /etc/rsyslog.conf进入日志主配置文件

authpriv.*   /var/log/secure设置日志信息会存到/var/log/secure文件中

systemctl restart rsyslog重启rsyslog服务,自动生成/var/log/secure文件

chattr +a /var/log/secure给这个文件加上隐藏权限

vim /etc/logrotate.d/secure编写日志轮转规则

/var/log/secure{

    prerotate

        chattr -a /var/log/secure

endscript

 

missingok丢失不提示

    create 0600 root root创建的新文件的权限是600,所有者和所属组都是root

    rotate 3保留3份

    dattext以日期作为后缀

  daily每天轮转1次

 

postrotate

        chattr +a /var/log/secure

endscript

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


你可能感兴趣的:(坚持#第235天~哎呀,最近培训云计算忙得都把写博客的大事给忘了,赶快捡起来)