培训云计算
从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主配置文件
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
}