第一阶段
1.ls cat dir ll 区别
ls 显示文件和目录列表
cat 顺序显示文本文件内容
dir 显示文件和目录列表,但不带颜色识别
ll 更细显示日期,是否可读写
2.ls wc-l 统计文件个数
3.yum install -y telnet 安装telnet安装包,telnet命令用于远端登入
4.如何开启80端口(
# yum install -y nginx 安装nginx(nginx是代理服务器
# systemctl start nginx
# systemctl stop firewalld(关闭防火墙
# setenforce 0(临时关闭SE Linex防火墙
#systemctl restart network(重启工作)
5.ping 10.36.178.2(判断主机/id是否存活
6.脚本扫描
#vim ping sh
#!/bin/bash (用于指定默认情况下运行指定脚本的解释器,shell语句
7.查看/etc目录大小
[root@server-1 ~]# du -sh /etc
32M /etc
网段扫描
nmap 10.36.178.0/24
扫描整个网段的某些端口
nmap -p 22,6379,9000,5672 10.36.178.0/24
nmap -T5 扫描速度最快
8.用户管理
#创建组 groupadd ..
#删除组 groupdel ...
#查看组详细内容 cat etc/group 组名:代表组密码:gid:组员
#查看家目录 ls /home #查看详细信息 ls -l
#查看账户是否存在的文件 cat /etc/passwd 用户名:密码:uid:gid: 描述信息:家目录:是用户登陆到界面的第一个命令,开启一个shell。登陆shell
C:\Users\徐姊威>ipconfig window查看ip
#ss -tlnp 查看浏览器
9.pwd 查看当前所在位置/目录
10.#ntpdate time.windows.com 将服务器系统时间同步为当前的时间
11.#hwclock 查看硬件时间 #date查看时间hwclock--
12.重命名或者移动文件#mv a b(不需要/)
13.# head -10 蜀道难.txt |tail -1(查看蜀道难文件第10行内容)
14.rm -rf * 删除当前目录下的所有文件,这个命令很危险,应避免使用。
所删除的文件,一般都不能恢复!
15..rm -f 其中的,f参数 (f --force ) 忽略不存在的文件,不显示任何信息
不会提示确认信息。
16.rm 命令删除一个目录中的一个或者多个文件或者目录,只用rm命令不会
删除目录,通常文件通常可以恢。
17.rm -r 删除目录
4.12复习
1.cd -返回上次所在的目录
2.sentforce 0 临时关闭服务器/sentforce 1临时开启服务器
3.mv /opt/l.txt/mail 正确 移动文件到目录
mv /opt/mail/ /tail/ 正确 移动目录到目录
4.查看服务器安装所有包 #rpm -qa
列出压缩中所有文件 # tar -t
5.查看别名 type #
制作别名 aliax # eg:aliax ym="yum install -y"
6.从网络下载文件 wget
7.创建用户a并制定附加组g #useradd -G a g
8.有个用户a,添加到组g #usermod -G a g #gpasswd -G a g
9.chown -R
10.创建计划任务 #30 7 * * * 起床/每天早上七点半起床 30 21* * 1-6 下晚自习/每周一到六晚上九点半下晚自习
11.查看服务器内核版本: ungame -r
12.查看服务器系统版本:cat /etc/rehat-release
13.修改主机名:hostnormectl set-hostname $name
14.以树状结构显示目录下得一级目录tree -l 1
15.远程登录 #ssh -p2022 root@10.36.178.4
16.远程拷贝 #scp -P2022 root@10.36.178.4:/opt/file.txt/tmp
17.打包压缩 tar czvf dirq.tar.gz/opt/tail
LNMP搭建一个博客网站(wordpress) yum源
L(Centos6.5)+N(Nginx1.10.1)+M(Mysql5.7.28)+P(Php7.0.33)+WordPress(wordpress-5.2.4)
初始化过程:
1.永久修改主机名#hostnamectl set-hostname+永久主机名,是对/etc/hostname文件的内容进行修改
hostnamectl 查看linux虚拟机信息
2.关防火墙#systemctl stop firewalld
3.取消关机自启防火墙#systemctl disable firewalld
4.临时关闭SELinux #setenforce 0
配置yum源
1.编辑/etc/selinux/config ,disabled #vim /etc/selinux/config
2.安装工具# wget unzip
3.安装/etc目录下yum源 #wget http://10.36.178.200/yum-servet.sh
安装nginx服务
1.启动nginx服务
安装数据库#yum install mysql-server(# rpm -ivh https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm)
2.启动数据库#systemctl start mysqld
3.过滤数据库初始密码#grep "password" /var/log/mysqld.log
4.修改数据库密码#mysqladmin -uroot -p'不带空格的获取的初始化密码' password ‘新密码’
5.创建数据库:wordpress,#mysql -e "create database wordpress"
#mysql -uroot -p’新密码’
mysql>create database wordpress;(创建wordpress)
Mysql>quit(退出数据库
安装php
1.#yum install php80-php-xsl php80-php php80-php-cli php80-php-devel php80-php-gd php80-php-pdo php80-php-mysql php80-php-fpm -y
2.#ss -ltnp 查看9000(php),80,3306(数据库)端口
3.启动php#systemctl start php80-php-fpm
4.上传wordpress包到服务器,解压上传的wordpress压缩包
unzip wordpress-6.5.2-zh_CN.zip
5.清理nginx网站发布目录下的所有资源
rm -rf /usr/share/nginx/html/*
6.拷贝wordpress目录下所有文件到/usr/share/nginx/html/
cp wordpress/* /usr/share/nginx/html/
7.修改html目录权限777
8.修改nginx配置文件#vim /etc/nginx/nginx.conf
9.重启nginx
10.浏览器访问服务器ip,在浏览器中进行部署
**配置静态IP**
vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR="10.36.178.41"
GATEWAY="10.36.178.1"
NETMASK="255.255.255.0"
DNS1=8.8.8.8
DNS2=4.2.2.2
4.15.2024
1.根据文件名查找文件 find / -iname 文件名,不区分大小写
2.区分大小写查找文件名find / -name 文件名 ,*通配符代表未知
3.find / -size +100M查找大于100m的文件
4.-a并且,-O或
5.ll -h 文件名,查看文件大小
6.#文件名以.logog结尾,文件大于100m,#find /-name ‘*.log’ -a -size +100M -exec(动作) rm -rf {} \;
7.Grep :查找内容关键字
7.Which 目录名:查看任何命令安装位置 whereis 命令
8.按照文件类型:find /路径 -name ‘名字’ -type d(目录)/f(文件)/l(链接)
9.按照时间查找文件:-mtime(内容修改的时间)-atime(访问时间)-ctime(属性修改时间)-a/m/cmin(按分钟,-“..分钟之内”),10天内-10;10天前+10
10.Echo “M命令” >> 文件名 :在文件下输入命令
11.State 文件名 :查看文件详细信息属性
12.!取反
13.;依次执行所有命令,不论成功失败,| |只有前面执行失败执行后面,& &只有前面执行成功还执行后面
14.mv移动不需要加参数 创建文件#touch {1..20}.log
15.find查找后动作 -exec | xargs -i
4.16 Shell
- -v显示版本号-V显示详细信息
- (0)标准输出,标准正确输出(1)标准错误输出(2)
- &>混合输出 2&>1 错误输出当做标准正确输出
- a | b :只有a命令正确才执行b命令,否则不执行
- >:覆盖 >>:输入追加
<<:输入同类项?
- #!解释器 #!/bin/bash--------shebang
执行脚本文件:#sh,文件一定以sh结尾
输入重定向 #!/usr/bin/bash
cat >文件名<<EOF
1234
EOF 用于创建一个名为“文件名”的文件,之后在EOF后输入的任何内容都是写入文件的内容,最后以EOF结尾。cat 追加内容用 >>,覆盖内容用 >
-x 第一次执行 . /最后执行(./脚本.sh # 需要执行权限#chmod +x 脚本.sh)
- alias设置别名 #vim /root/.bashrc ;analias 取消设置别名
- 系统级别文件,对所有用户生效 /etc/profile #配置环境变量文件 #etc/bashrc
- \n 换行符
- 执行脚本方式
- printf打印
- bg前台进程拿到后台进行:一般情况下都是后台启动 fg后台进程拿到前台进行:第一次启动查看日志,调试
- $?执行结果0或1;$$当前进程号;$!最后一个进程号
- 将命令的结果赋予给$字符串a=` ` =>a=$( ) echo $a查看变量a的值
- awk 截取,默认以空格符截取,第几列截取,awk -F ‘/’ ‘{ print $1 }’:截取第一行的/,最后一列$NF;awk ‘NR==2 {print $1}’ 打印第二行第一列
- linux三剑客,grep sed awk
- Free -m 剩余内存 ,以兆m结尾
- df -h 查看磁盘使用率
- Nginx -v 查看版本号;nginx-V 查看版本号及安装包
- ifconfig eth0=ip a
- uptime:cpu的负载
- cut -d, -f3- //-d指定分隔符,-f指定显示区域,3-第三列以后(包括第三列)
- 多少个位置参数$#,列举位置参数$*
- let 运算指令
- 赋予参数:-
a=$1 b=$2 echo((a+b))
- ping -c4 :ping4次;结尾加&放在服务器后台操作;ping-S ip ww.baidu.com指定一个源ip去ping百度;ping -I 指定一个网卡ping
- 没有执行权限去执行shell脚本 bash sprint
- Read -p -s(隐藏回显) ‘请输入新密码’ password ,可交互传参,$password就是变量
- for循环for
do
{
}&(后台进行)
Done:
29.if ;then fi
30.sed -i ‘替换’ 文件位置$ sed -i 's/find/replace/' file 路径
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
- /$转译变量变成字符串
31.read -p -s(取消回显)"text"
打印提示(text),等待输入,并将输入存储在REPLY中。
- yum remove -y 卸载
- $#:位置参数数量 $*:所有的位置参数 $0:文件名
- Port=’ ’端口
- route -n 获取网关信息,截取awk
流程控制
1.测试test条件 -n” ”判断字符串是否为空 test “ ” = ” ”判断字符串是否相等,test “ ” != ” ”判断不相等,[ ]=test ,-z判断是否为空echo $? 0/1
eq等于 ne不等于 ge大于等于 gt大于 le小于等于 lt小于
2.man手册:查看帮助文档
3.- b 判断块设备文件(硬盘文件) - d 存在且是目录; - f存在且是普通文件;- h 符号链接文件;- e 文件存在
4.If ;then else fi(结尾)
5.指定一个返回值:exit 255 ; echo $? ;255
6.Case $ in
;;
Ease
7.systemctl status httpd 判断.....服务是否运行
第一阶段(2.0)
4.23 了解linux
1.硬件:运算器、控住器、存储器、输入、输出设备(5)
2.ipconfig 查看windows ip配置
3.局域网(LAN),计算机组;ipv4广域网(WAN),外网、公网,不等于互联网(0.0.0.0-255.255.255.255);ipv6 交换机 路由器配备公网ip地址
4.公共ip是唯一地址
5.同一个局域网不可能存在相同ip,不同局域网可存在相同ip
6.分时系统
7.IDC机房,互联网数据中心,linux远程操控
8.国内外服务器品牌名字型号配置?CentOS、红帽、乌班图、
9.Timedatectl:查看时区
timedatectl set-timezone Asia/Shanghai 修改时区
10.时间格式化:date + %F年月日;date + %T时分秒;date + %{u | w}星期几
同步系统时间到硬件:hwclock -systohc
11.将硬件时间写到主板:hwclock -
12.服务器重启reboot ;init 6;
13.rz 上传本地文件;sz 文件名, 下载 ;yum install -y lrzsz
14.ls -lt 根据文件修改时间排序;ls -ltr 反转ls -lt时间反转
4.24 touch mkdir cp rm cat mv
- ESC+. 以空格为分隔符打印最后一部分 ;ctrl+a移到最前 ;ctrl+e 移到最后
- \n换行符;\t水平制表符;\a蜂鸣声; \r回车
- tree -L 1 / 树状结构显示根下目录
- -普通文件 ;l软链接(快捷方式) ;d目录文件;s套接字文件,用于实现两个进程进行通信
touch { 1..10 }.txt ;mkdir -p 连级目录 a/b/c/
cp -i 询问拷贝;mv-i; cp -v 显示拷贝过程;cp -f强制覆盖;cp -r 递归处理拷贝目录
- ./代表当前目录
- cat tac 反转查看文件内容 ;cat -n显示行号
- tail -f 动态查看尾部文件内容
- grep ‘^root’ 文件过滤root开头;grep ‘root$’过滤root结尾;grep -r递归
- rm -f filename 强制删除文件 ;rm -r direname 强制删除目录
- 重命名:mv 旧文件名 新文件名;移动文件:mv 源文件1 源文件2 目标路径
**less more 区别**
①less可以按键盘上下方向键显示上下内容,而more不能通过上下方向键控制显示。
②less不必读整个文件,加载速度会比more更快。
③less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容。
④阅读到文件结束时,less不会退出,而more会。
⑤less可用行号或百分比作为书签浏览文件,而more不行。
⑥相比more,less提供更加友好的检索、高亮显示等操作
4.25vim与vi useradd groupadd
- 本地yum源
- vim命令行模式‘光标页首g’’页尾G’ ‘复制光标所在行yy’‘复制到光标所在行下一行p’复制到光标所在行上一行P’ ‘复制三行3yy’’光标所在行复制三次yy3’ ‘删除光标所在行dd’‘删除光标所在三行3dd’‘撤销u’‘恢复ctrl+r’‘替换单个字符r’‘删除光标所在行到页首dgg’ ‘删除光标所在行到页尾dG’’删除光标所在字符x’
- 设置行号:set nu 取消行号:set nonu
转译:s/\/etc\/password/密码/
设置列:set cuc :set nocuc
设置行:set cursorline ; :set nocursorline
3.超级用户(root uid=0),系统用户(伪用户uid<1000),普通用户(uid>=1000)
4.groupadd ;groudmod -g修改GID;groupadd 组名 -g 5000 ;groupdel
5.Groupdel groupname 但不能删除主组
6.useradd usermod userdel
useradd -s /sbin/nologin 名;不让用户登录系统,-M不让用户创建家目录;
useradd -M -s /sbin/nologin 创建允许用户和组 不需要家目录,不登录
useradd 用户名 -G 组1,组2,创建用户并指定附加组
useradd 用户名 -g 组1 指定主组
userdel -r,删除用户并删除家目录:家目录,邮箱
usermod -u uid ,修改uid
usermod -g 组名 用户名‘修改主组’=Usermod username -G groupname指定附加组,覆盖其他附加组
usermod -aG 不覆盖添加已经存在的用户
useradd -c ‘描述信息’ 用户名 ,添加用户描述信息
7. gpasswd
gpasswd -a 用户名 组名,给组单一添加成员(不会覆盖原有成员); gpassd -M 1,2,3 组,多个用户同时添加到某个组(会覆盖组里原有成员)
gpasswd -d 用户 组名 从组删除用户
8.修改密码:password
password
echo "666" | passwd --stdin xiaowang 免交互修改密码
4.26 文件权限高级权限
- chown -R 目录递归修改属主、属组
cat 读权限 ;cd 进入目录,执行权限 ;vim、rm、touch 写权限
3.rx 对目录影响权限
(1)export LANG="zh_CN.UTF-8"更改语言
(2)权限掩码 umask 默认文件权限666 目录权限777
(3)w对目录影响
有w:可以创建删除目录下的文件,与文件权限无关;但是要给目录rx权限,要cd进去
无w:无法在目录下创建删除文件,与文件权限无关;
4.高级权限
suid(二进制命令),给命令提权(普通用户000查看文件内容提高权限)--由chmod控制
suid chmod u+s /usr/bin/cat(命令) 所有普通用户提高权限后跟root用户一样执行命令,比如cat(查看)/rm(删除)
sgid chmod g+s 目录名 继承属组,只用于目录
sticky chmod o+t 目录名 年制位权限,只针对该目录下的文件,只有自己和ROOT用户管理自己文件
5.修改文件提权
Vim /etc/sudoers 加权=visudo -->/搜索root加用户-->
%wheel(轮子组,可以在组加用户:gpasswd -a username wheel) 取消输入密码 NOPASSWD:ALL
6.*目前两种给普通用户提权手段*
suid: 基本针对所有用户,任何用户在执行有suid权限的程序时(例如/usr/bin/rm),都是以root身份在执行。
sudo: 有针对性,例如针对某个用户以能够以root的身份执行某些命令。
访问控制权限setfacl 查看特殊权限,不由chmod控制
** 针对某个普通用户赋予对某个文件的特殊权限setfacl -m u:xiaoli:rx a.txt **
回收权限(针对特定用户):setfacl -x u:xiaoli a.txt
回收权限(针对所有用户):setfacl -b a.txt
查看权限:getfacl username
检查语法:visodo -c
7.查看隐藏权限
要安装这个插件lsattr file ;创建隐藏权限:chattr +i filename ,为了防止root用户删除,不能改不能增加内容; chattr +a filename 可以追加内容不可修改内容,不能删除;chattr +A ,访问时间access不会改变,加‘-’回收权限
4.28 进程管理
1.su -xiaoli 和su xiaoli区别?
2.进程:一个正在进行的程序(主、子) 线程:一个进程由一或多线程组成
区别:进程之间资源独立,切换开销大,启动慢结束慢.一个进程崩溃不会影响其他进程
线程之间资源共享,切换开销小,启动快结束快,一个线程崩溃会影响其他线程
3.并行:同一时间进行
并发:单位时间处理任务多少
4.查看进程:ps -ef
TTY:登录用户使用的终端名;# tty#? 表示这个进程开启的时候没有占用终端
ps a:查看所有终端进程;ps aux:后台进程;ps -e 显示所有进程;ps -ef,更完整,ps -ef | grep = ps aux | grep 查看所有进程
查看指定pid ; pidoff sshd ; pgrep sshd
5.进程优先级Nice值:越大执行越靠后 修改进程优先级:renice -n -10 pid
6.端口(port):http:80 ;https:443 通信更安全;redis:6379 ; tomcat:8080 ;sshd:22远程连接 ;mogo:37037 ;php-fpm /普罗米修斯:9000 mail :25 | 465Ss -nplt 查看监听服务器,nginx :80 ;rabbitmq 5672
7.ss -tnlp | grep 查看端口过滤或pid
安装包yum install -y net-tool;netstat -tnlp 查网络进程和正在监听的端口
安装包yum install -y lsof ;lsof -i:80 #端口号,这能查看带端口的进程(lsof可以查看某一个文件被什么端口所占用)
8.动态查看进程:top / htop
shift P 按CPU内存使用率从高到低排序
Shift M 按内存排序
9.杀死进程:kill
kill -1 不用关机重新加载进程或者重新加载配置文件,PID不变; kill -9 pid 强制杀死;kill -15 正常终止 ;pkill -9 进程名:可以指定进程名字全部杀死
10.僵尸进程,S 可中断睡眠 Sleep ;D 不可中断睡眠
11.cat /etc/redhat-release | cat /etc/centos-release查看操作系统版本
12.查看正在运行的内核版本:uname -a
13.查看内核版本:uname -r
14.ctrl+z 把程序放到后台(这方法会让程序在后台暂停) ;&:让命令或者程序后台运行
sleep 3000-->ctrl z-->bg %工作号(挂到后台运行)-->jobs(查看终端进程) | ps -ef | grep
sleep
sleep 3000 & | bg 直接挂到后台
nohup ssleep 3000 &
fg %工作号(挂到前台运行)
15.查看CPU负载:uptime | top | htop | w
16.查看内存使用情况:free -m(m是内存单位)
17.查看磁盘使用量:df -h
18.背诵Linux启动过程
19.bash 重新开启一个终端
20.last 查看历史登录和重启信息 lastlog
4.29管道和重定向
1.0:标准输入1:标准正确输出2:标准错误输出 &:1跟2,混合输出ls / /hello & >hunhezhuchu.txt
2.systemctl status firewalld && echo "防火墙已开启" || echo "防火墙已关闭"
3.>>追加
4.黑洞文件:/dev/null systemctl status firewalld &>/dev/null && echo "防火墙已开启" || echo "防火墙已关闭"
5.重定向有优先级,从后向前:ls / /hello 1>a.txt 2>b.txt &>c.txt6.2&>1 错误当正确 ;&>不管正确还是错误都输出
7.输入重定向 cat [>|>>] file5 <<EOF,以EOF结尾 覆盖或者追加输入重定向
8.rpm -qa
常用命令
1.sort -t”:” -k3 -n(r) /etc/passwd 以:为分隔符第三列从小到大(从大到小)排序 ;ls -lt(r)
2.awk ‘NF==2 {print $2}’ | awk -F ‘/’ ‘{print $1}’
cut -d’/’ -f1 以/为分隔符截取第一列,默认tab为分隔符 ;
3.xargs -i cp { } 接收并拷贝 ,{ }接收前面传来的参数
4.du -sh /* 查看所有目录占用磁盘空间大小
5.du -sh --max-depth(深度)=2 /usr/ 查看/usr/下一层 查看磁盘空间
6.wc
wc -l 统计行数 wc -w 统计多少个单词 wc -c 统计字节 1个中文占3个字节
7.uniq -c 去重
4.30 磁盘管理
1.512 5400 7200/m 机械硬盘(d)、固态硬盘(ssd)
2.SAS、SATA 速度6Gb/s 接口
3.同一台服务器不会出现两种接口
4.KVM虚拟化 ; 半虚拟化驱动/dev/vd[a-z] ; 全虚拟化驱动/dev/sd[a-z] ; 物理硬盘 /dev/vd[a-z]
5.lsblk查看磁盘分区
磁盘没被挂载也可以被查看磁盘分区
6.*fdisk *
fdisk /dev/sdb 对/dex/sdb进行分区,创建主分区-->扩展分区(没实际作用)-->逻辑分区
m 查看帮助信息
d 删除一个分区
g 转换gptfenqu
n 添加新的分区
o 转换成[MBR |DOS]分区格式
q 退出不保存
p 打印分区表
w 保存并存
- 分区:创建主分区5G创建扩展分区 +10G ; 创建逻辑分区+5G
- 更新磁盘分区表:partprobe /dev/sdb 手动让内核更新分区表不需要重启
- 文件格式化:mkfs .[ext4(主分区) | xfs(扩展分区)] /dev/[sdb1 | sdb5](sdb2没有实际作用)
- 创建挂载目录:mkdir /mnt/[disk1/disk2]
- 挂载mount使用:mount /dev/sdb1 /data1/ 挂载到/data1/
- 查看磁盘挂载与磁盘使用空间:df-Th T:打印文件类型,f:更人性化的,磁盘空间大小
- 自动挂载3种方式
- vim /etc/fstab -->/dev/sdb1 /dev/disk1 ext4 defaults 0 0 --> mount -a
- vim /etc/rc.local --> mount /dev/sdb5 /disk2/ -->chmod +x /etc/rc.d/rc.local
- 使用UUID方式挂载-->获UUID:blkid /dev/sdb1-->vim /etc/fstab-->写入UUID=?
ext4 /dev/disk1 defaults 0 0-->mount -a
- umount /disk2 卸载挂载
6.强制卸载 umaount -l /disk1
fuster /data1 -- kill -9 设备号
7.parted -s转换文件格式
parted -s /dev/sdc mklabel msdos #将/dev/sda(GPT格式)转换成(MBR格式)
parted -s /dev/sdc mklabel gpt #将/dev/sdc(MBR格式)转换成(GPT格式)
8.gdisk
gdisk -l /dev/sdb/
gdisk /dev/sdb/ (分区格式支持gpt,大于2Tb)
步骤:分区--格式化(文件系统类型)--挂载--自动挂载
开机自动挂载 /etc/rc.d/rc.local
9.恢复误删除的文件
lsof | grep masseges
重新挂载文件系统(改为只读)mount -o remount ;ro =
获取到一个pid
cd /proc/pid/fd
cat 文件描述符(数字)>/var/log/masseges
10.blkid /dev/sdb1 #查看uuid和文件系统类型
11.MBR(小于2TB的硬盘)格式fdisk分区(14个分区,最多4个主分区,0个扩展分区;3个主分区,1个扩展分区,n个逻辑分区)
GPT(大于小于2TB都可以的硬盘)格式gdisk分区(128个主分区)
!!!从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失!因为转换格式要格式化硬盘
12.查看indone : stat /etc/hosts
13.查看某文件的inode号码 : stat /etc/hosts或者ls -i
14.删除文件是什么原理?
5.6物理卷 卷组 逻辑卷
-
逻辑卷(lvm)扩容:在有硬盘的基础上
- 创建物理卷(pv):pvcreate /dev/sdb 查看物理卷:pvs | pvsan | pvdiplay(更详细)
- 创建卷组(vg):vgcreate yunjisuan(名字) /dev/sdb 查看卷组:vgs | vgscan | vgdisplay
- 创建逻辑卷(lvm):lvcreate [-L | -l] [10G/10G| pe] -n xian2402(vg名字) yunjisuan(卷组名)
- 查看逻辑卷:lvs | lvscan | lvdisplay
- 步骤:添加磁盘(查看磁盘信息lsblk)--制作物理卷--制作卷组--制作逻辑卷--格式化系统文件,制作文件系统类型xfs(mkfs.xfs /dev/yunjisuan/xian2402)--创建挂载目录data1--挂载(mount /dev/yunjisuan/xian2402 /data1)--开机自动挂载
- 将剩余空间全部给lvm:lvcreate -l +100%FREE -n xian2402 yunjisuan
Vgdisplay 查看剩余空间FREE PE
7.lvm扩容
lv没有空间先给vg扩容:vgextend yunjisuan(加到哪个组) /dev/sdc -->lvextend -L|-l +20G(在原有基础上加20G)/30G(一共30G)| pe /dev/yunjisuan/xian2402;
lvextend -l +100%FREE /dev/yunjisuan/xian2402(逻辑卷路径)--> 挂载-->df -Th 查看文件类型 -->给文件系统扩容:xfs_growfs /dev/yunjisuan/xian2402 #xfs扩容
resize2fs /dev/yunjisuan/xian2403 #ext4扩容
生成大文件:dd if=/dev/zero of=/data1/a.txt bs=1000M count=9
8.内存:ROM RAM(可用内存)
9.交换分区:Swap分区,虚拟内存,防止OOM内存溢出蓝屏
10.查看剩余内存:free -m
11.制作交换分区(swap):
- 磁盘分区:”分一个主分区fdisk /dev/sde -->”可以直接制作文件系统类型格式化:mkswap /dev/sde -->UUID开机自动挂载 vim /etc/fastab UUID=”?” swap swap delaulfs 0 0-->生效swapon -s -->查看详细信息 swapon -a
- 大文件制作交换分区:dd if=/dev/zero of=/data2/swap.img bs=1000M count=10
-->对文件格式化mkswap /data/swap.img-->文件名挂载-->chmod 600 /swap2.img-->生效swapon -s --> swapon -a
- 关闭交换分区:swapoff 分区
- mount -o remount(重新挂载),ro(只读),rw(读写),noexec(不许执行二进制文件),exec(允许执行),auto(开机自动挂载) /data1***
12.RAID 0(数据条带卷) 1(镜像RAID) 5 6 10:0和1 常见0 1 5 10或者01
0:读取速度快,2块磁盘,利用率100%,无冗余,存在单点故障,安全性低
1:两块磁盘,双份数据,利用率50%,读数据快,写慢,安全性高
5:公司常用,至少3块磁盘,加一个热备盘,提供数据校验位,利用率高n-1/n,安全性高,读写速度快,
6:2块校验磁盘,安全性高,写慢,成本高
10:混合raid,安全高,成本高,有冗余
13.为什么要做raid?
#为了保证数据完整性,防止数据丢失
14.购买磁盘后需要操作
有磁盘-->2.制作raids5-->3.开始分区-->4.刷新分区表,5.制作文件系统-->6.挂载。
15.移除lv:lvremove 移除vg:vgremove 移除pv:pvremove
16.watch -n 2 ‘date’
17.lvreduce ?
5.7 find 打包压缩
1.find
- find ./ -type d(目录) | f(文件) | l(软连接) | b(设备块) 根据类型
- find ./ -mtime +30 查找30天以内文件 ctime文件属性被修改时间
- find ./ -perm 755 根据文件权限查找
- -a 并且 -o 或者
- 查询命令和whereis which man手册
- find ./ -size +5M 根据文件大小查找,大于5M
- 找到后做出后续动作
find /home/ -name "test*" | xargs -i cp -rf {} /tmp/ \;(转译)只重启一次,不能处理文件名带空格的文件
find /home/ -name "test*" -exec cp -rf {} /tmp/ \; 频繁重启
8.du -sh 查看文件
2.打包压缩解压
1.打包:tar -cvf etc.tar etc
2.解包:tar -xvf etc.tar
3.压缩:gzip 文件名 | bzip2 要先安装 | zip -r etc.zip etc
4.解压:gzip -d 压缩包名 | gunzip 压缩包名 | bzip -d | bunzip2 | unzip |
5.打包压缩:tar cvzf dir.tar.gz dir 解压:tar xf dir.tar.gz
tar cvjf dir.tar.bz2 dir
tar czvJf dir,.tar.xz dir
6.压缩效率:xzip>bzip>gzip压缩时间:gzip>bzip>xzip
7.解压到指定的目标路径
tar -xf dir.tar.gz -C /user/local/
unzip dir.zip -d /usr/local/
- 发送邮件
yum -y install mailx
vim /etc/mail.rc
set from=19991820903@163.com
set smtp=smtp.163.com
set smtp-auth-user=19991820903@163.com
set smtp-auth-password=GSLTKOHJSRNPAUBV
set smtp-auth=login
邮件内容 | mail -s "邮件主题" 邮箱地址
echo "备份成功" | mail -s "备份日志" 945225432@qq.com
备份成功:cd /var && tar -czf log-`date +%F`.tar.gz log/ && echo "备份成功" | mail -s "备份5225432@qq.com || echo "备份失败" | mail -s "备份日志" 945225432@qq.com
备份失败cd /vr &>/dev/null && tar -czf log-`date +%F`.tar.gz log/ && echo "备份成功" | mail -s “备份日志” 945225432@qq.com || echo "备份失败" | mail -s "备份日志" 945225432@qq.com
5.8 软件包管理 rpm yum
1.centos和Ubuntu有什么不同
包管理工具不同(rpm 包,yum进行软件管理 | deb包,apt-get进行软件管理)
2.rpm常用命令
rpm -ivh 软件包名
rpm -qa 查询系统中所有rpm包
rpm -e 卸载包
rpm -ql 查询一个rpm包所生成的所有文件
rpm -qc 查询一个rpm包的配置文件
rpm -qf 查询某个文件是哪个rpm包生成的
3.yum配置文件路径
yum /etc/yum.repo.d/
4.更换源(aliyun的centos基础源,epel扩展源)
备份官方yum源:mkdir /etc/backup && mv *.repo /etc/backup
下载源aliyun到本地:curl -o /etc/yum.repo.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
清理缓存:yum clean all
生成缓存:yum makecache fast
查看源:yum repolist
yum常用命令
回滚(版本回滚):yum history --> yumhistory undo id
列出:yum list
卸载:yum remove
yum easer
重新安装:yum reinstall
更新:yum update 保留旧的rpm包
yum upgrade 删除旧的rpm包
查看一个命令在哪个rpm包:yum provises 命令
=========================================================
5.配置本地源
- 备份本地源 mkdir /etc/backup --> mv *.repo /etc/backup
- 挂载镜像(虚拟机设置) 已连接
- 挂载:mount /dev/cdrom /mnt
- 编辑配置文件:vim /etc/yum.repos.d/local.repo
[local]
name=local repo
baseurl=file:///mnt #指定本地yum源的路径
enable=1 #是否使用此yum源(1为打开,0为关闭)
gpgcheck=0 #检查软件
5.yum clean all
6.yum repolist
6.配置局域网内源
1.准备环境:
两个ip都要
关闭防火墙并开机不自启:systemctl stop firewalld && systemctl disabled
关闭selinux: sentenforce 0(临时关闭)
互ping网络是否通畅
挂载镜像:mount /dev/cdrom /mnt
2.yum服务端(10.36.178.41):rpm包、repodata、vsftpd(服务)--ftp
安装ftp服务:yum -y install vsftpd
mkdir /var/ftp/yum
systemctl start vsftpd
获取rpm包: 拷贝镜像中的一部分
cd /var/ftp/ && cp /mnt/Packages/* /yum/
制作yum源: yum -y install creatrepo #编辑yum库工具
createrepo /yum
注意:createrepo 是一个对rpm 文件进行索引建立的工具。
大体功能就是对指定目录下的rpm文件进行检索,把每个rpm文件的信息存储到指定的索引文件中,这样方便远程yum命令在安装更新时进行检索。
2.yum客户端(10.36.178.68):
vim /etc/yum.repos.d/ftp.repo
[ftp]
name=ftp repo
baseurl=ftp://服务端ip:端口(默认22)/路径yum
enable=1
gpgcheck=0
yum clean all
yum repolist
=========================================================
7.克隆源
1.服务端:
yum -y install yum-utils (reposync同步工具)epel-release createrepo(编辑yum库工具)
yum -y install nginx
cd /usr/share/nginx/html
rm -rf *
备份yum库
mkdir /repo && mv /etc/yum.repos.d/* /repo
建立aliyun yum库
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/CentOS-epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
刷新缓存:yum clean all
yum makecache
查看仓库列表:yum repolist
建立rpm库存放目录:
mkdir -p /usr/share/nginx/html/Aliyun/CentOS/7/64bit/{base,extras,updates}
同步镜像到本地:reposync -r base -r epel -r extras -r updates
创建yum仓库
createrepo base
createrepo epel
createrepo extras
createrepo updates
2.客户端:
vim /etc/yum.repos.d/nginx.repo
[base]
name=base repo
baseurl=http://服务端ip/base
gpgcheck=0
[epel]
name=epel repo
baseurl=http://服务端ip/epel
gpgcheck=0
5.9 DNS 软链接 硬链接
软链接:ln -s
硬链接:ln
**目前学的命令**
bin -> usr/bin 二进制可执行命令,普通用户执行的
boot 存放系统启动的文件
dev 存放设备文件的 cd、磁盘、移动设备存放配置文件
etc 存放配置文件
home 普通用户的家目录
lib -> usr/lib 32位库文件
lib64 -> usr/lib64 64位库文件
media 视频,娱乐
mnt mount 临时挂载目录
opt 存放第三方服务的,tomcat
proc 虚拟内核映射目录root用户的家目录
root root用户的家目录
run 程序运行产生的文件pid
sbin -> usr/sbin 二进制可执行文件,超级用户使用
srv 存放第三方服务的
sys 存放系统相关文件
tmp 存放系统相关的文件临时目录,存放临时文件
usr 命令,系统服务,文档
var 存放可变数据库 日志,数据库
/etc/passwd 系统用户配置文件
/etc/shadow 存放用户的密码信息
/etc/group 存放组信息
/etc/hosts 系统本地的DNS解析文件
/etc/resolv.conf DNS客户端配置文件
/etc/sudoers sudo管理配置文件
/etc/vimrc vim全局配置文件
/etc/my.cnf MySQL的配置文件
/etc/nginx.conf nginx的配置文件
/bin/1s 列出目录内容
/bin/cd 进入某个目录
/bin/mv 移动文件或者更改文件名
/bin/touch 创建文件
/bin/mkdir 创建目录
/bin/su 切换用户
/bin/useradd 添加用户
/bin/groupadd 添加组
/bin/usermod 移动用户
/bin/groupmod 移动组
/bin/userdel 删除用户
/bin/groupdel 删除组
/bin/passwd 修改密码
/bin/gpasswd 添加一个用户到一个组
/bin/vim 编辑一个文件
/bin/rm 删除
/bin/cp 复制
/bin/cat 查看一个文件的内容
/bin/tail 查看..尾部..
/bin/head 查看..头部..
/bin/top 动态查看进程
/bin/htop 动态查看进程(表格)
/bin/sl 小火车
/bin/w 查看正在运行的进程
/bin/who 显示当前所有登录用户的信息
/bin/whoami 当前登录用户的信息
/bin/which 当前目录所在位置
/bin/whereis 当前目录所在位置
/bin/alias 别名
/bin/ss 用来显示处于活动状态的套接字信息
/bin/netstat 查看Linux中网络系统状态信息
/bin/ps 报告当前系统的进程状态
/bin/1sof 显示Linux系统当前已打开的所有文件列表
/bin/uptime 查看Linux的负载信息
/bin/date 查看时间
/bin/hostnamectl 查询或更改系统主机名
/bin/timedatectl 设置或查询系统时间、日期和时区等
/bin/chmod 变更文件或目录的权限
/bin/chown 变更文件或目录的拥有者或所属群组
/bin/getfacl
/bin/setfacl 设置文件访问控制列表
/bin/lsattr 查看文件的附加属性
/bin/chattr 更改文件的附加属性
/bin/kill 根据进程号杀死进程
/bin/pki1l 可以按照进程名杀死进程
/bin/jobs 显示作业状态
/bin/yum 基于rpm的软件包管理器
/bin/rpm rpm的软件包管理工具
/bin/sudo 以其他身份执行命令
/bin/find 查找..
/bin/grep 过滤..
/bin/tee 设置文件访问控制列表
/bin/xargs 给其他命令传递参数的一个过滤器 ;执行后续动作{}
/bin/fg 前台运行进程放在后台进行
/bin/bg 后台进行的进程放在前台
/bin/createrepo 创建yum仓库
/bin/reposync 同步yum存储库到本地目录
/bin/make GNU的工程化编译工具
/bin/make install 安装
/bin/lslbk 列出块设备信息
/bin/blkid 查看块设备的文件系统类型、LABEL、UUID等信息
/bin/df 显示磁盘相关信息
/bin/du 显示每个文件和目录的磁盘使用空间
/bin/free 显示内存使用
/bin/tree 树状图列出目录信息
/bin/uname 打印系统信息
/bin/sleep 让进程睡眠
/bin/tar 打包压缩
/bin/dig 域名查询工具
/bin/host 常用的分析域名查询工具
/bin/mount 挂载
/bin/tac 连接多个文件并以行为单位反向打印到标准输出
/bin/dd 复制文件并对原文件的内容进行转换和格式化处理
/bin/ip 获取ip地址
/bin/mkfs.ext3 格式化文件系统重新制作ext3系统
/bin/mkfs.ext4 格式化文件系统重新制作ext3系统
/sbin/1vcreate 创建逻辑卷
/sbin/vgcreate 创建卷组
/sbin/pvcreate 创建物理卷
/sbin/lvextend 扩展逻辑卷
/sbin/vgextend 扩展卷组
/sbin/lvremove 删除逻辑卷
/sbin/vgremove 删除卷组
/sbin/pvremove 删除物理卷
/sbin/partprobe 不重启更新分区
/sbin/parted 磁盘分区和分区大小调整工具
/sbin/xfs_growfs xfs格式文件系统扩容
/sbin/resize2fs ext4格式文件系统扩容
/sbin/swapoff 关闭交换分区
/sbin/swapon 开启交换分区
/sbin/ntpdate 使用网络计时协议(NTP)设置日期和时间
/sbin/fdisk 小于2TB分区方式
/sbin/gdisk 大于等于2TB分区方式
/var/log 系统日志一般都存放在/var/log
/var/cache 存储应用程序缓存数据
/var/ftp 文件传输协议
/usr目录 包含所有共享文件
/usr/local/nginx NGINX的默认安装路径
/usr/local/mysql MySQL的默认安装路径
/dev/sd* 磁盘设备文件,不挂载目录不能访问
/dev/cdrom 挂载在服务器上的光盘设备
/dev/zero 空白文件
5.10 计划任务、日志轮转
1.一次性计划任务
1.安装at 启动at && 开机自启 systemctl enable at
2.at now +1hour
at>任务
Ctrl+D
at 4pm|at 12:30 +3[day|min|hour|month|year|week]
atq 查看任务
atrm id删除任务
查看依次进行计划任务的内容:/var/spool/at/
查看具体id对应的具体任务:at -c id
建一个文件a.at写入计划任务命令,at +10min < a.at 执行
2.循环调度执行cron 用户级,crond进程每分钟会处理一次计划任务
1.准备:安装crontabs-->启动systemctl start crond.service-->开机自启systemctl enable cond.service
2.管理方式:
crontab -l #列出当前用户的计划
crontab -r #删除当前用户的所有计划
crontab -e #编辑当前用户的计划任务
crontab -u #使用其他用户
管理员可以用 -l -r -e去管理其他用户的任务
/etc/cron.deny 该文件中所列用户不允许使用crontab命令
/etc/cron.allow 该文件中所列用户允许使用crontab命令
allow > deny
系统本身的计划任务 /etc/crontab
3.格式:
分时日月周 *****任务
每五分钟 */5
0 12 1-5 7 * 每年7月的1号,2号,3号,4号,5号,7号的12点
0 12 1,5,7 * 每年7月的1号,5号,7号的12点
4.备份:*/10 * * * * crontab -l > > /opt/beifen.bak
3.*日志轮转*
1.防止一个文件过大,切割成小文件
vim /etc/logrotate.conf
vim /etc/logrotate.d/dingdan
/var/log/dingdan{
prerotate
chattr -a /var/log/dingdan
endscript
missingok
ifempty 空日志轮转
notifempty 空日志不轮转
daily
dateext
compress
上一天的日志先轮转不压缩 delaycompress
create 0644 root root
minsize 1M
maxsize 5M(满足一个条件就能轮转)
rotate 5
postrotate
chattr +a /var/log/dingdan
endscript
}
rsyslog 日志管理
logrotate 日志轮转
日志配置主文件: /etc/rsyslog.conf
配置日志轮转:vim /etc/logrotate.conf
手动轮转日志:logcreate -f /etc/logrotate.d/dingdan
4. *ssh远程管理服务 Ctrl +D登出*
(1)修改端口号
# vim /etc/ssh/sshd_config
# Port 2222 #将注释去掉,修改端口号可以修改为自定义的
(2)远程登录
# ssh root@192.168.246.158 -p 2222
(3)修改DNS反解析
#UseDNS yes 改为no
(4)远程拷贝
scp -P 端口号 /a.txt ip:/路径
源文件 目标地址
# scp -r(拷贝目录) -P 2222 test/ 192.168.246.158:/opt
谁是远程加谁ip
远程拷贝目标机器改了端口加-(大)P
(5)免密码远程登录
ssh-keygun --一直回车
cd /root/.ssh/
ssh-copy-id 对方机器ip地址
(6)telent
检查tcp链接80端口是否开放 -- 如何探测端口 telnet 1 92.168.246.156 80
无密码登录:产生公钥私钥ssh-keygen
(7)telnet与ping的区别
telnet:不安全,没有对传输数据进行加密,容易被监听,还有遭受中间人攻击,telnet不能压缩传输数据,所以传输慢
ping:安全,检测本机能否上网,
5.11 LNMP架构
1.构成
L:linux centos7
N:nginx(web服务器)--源码安装,Apache(httpd)
M:mysql--源码安装5.7, oracle
P : php--php7源码安装, python, java, go(二次开发)
2.准备环境
1.关闭防火墙、selinux
2.配置本地源
vim /etc/hosts
curl -o /etc/yum.repos.d/centos.repo http://www.langlangago.org.cn/repo/centos7.repo3.清理环境
yum erase -y `rmp -qa | grep mariadb`
rm -rf /etc/my* && rm -rf /var/lib/mysql
3.编译安装mysql
1.上传源码包
2.添加普通mysql用户
useradd mysql -M -s /bin/nologin
3.安装编译工具
# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make glibc automake autoconf
# yum -y install cmake4.解压
tar xzvf /mysql-boost-5.7.27.tar.gz -C /usr/local/
5.编译
#cd /usr/local/
#cmake . \
-DWITH_BOOST=boost/boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=16.安装
# make && make install
7.修改权限
# chown -R mysql.mysql /usr/local/mysql
8.初始化
vim /usr/local/mysql/bin/mysqld
--user=mysql \--initialize \
--basedir=/usr/local/mysql/ \--datadir=/usr/local/mysql/data
9.启动mysql
# cd /usr/local/mysql
# ./bin/mysqld_safe --user=mysql &
10. 登录mysql/usr/local/mysql/bin/mysql -uroot -p'GP9TKGgY9i/8'
11.systemctl启动方式
# cp support-files/mysql.server /etc/init.d/mysqld
# ls -l /etc/init.d/mysqld
# systemctl daemon-reload --重新加载系统服务
# systemctl stop mysqld --停止mysqld
# systemctl start mysqld --启动mysqld
# netstat -lntp | grep 3306
4.编译安装nginx
1、获取源码包
2、安装依赖环境# yum -y install gcc gcc-c++ make zlib-devel pcre pcre-devel openssl-devel perl-devel perl-ExtUtils-Embed gd-devel
3、添加一个普通用户# useradd -s /sbin/nologin -M nginx
4、上传源码包
5、解压
6、编译# cd /usr/local/nginx-1.22.1/
# ./configure \
--user=nginx \
--group=nginx \
--prefix=/usr/local/nginx \
--conf-path=/etc/nginx/nginx.conf \
--sbin-path=/usr/sbin/nginx \
--error-log-path=/var/log/nginx/nginx_error.log \
--http-log-path=/var/log/nginx/nginx_access.log \
--pid-path=/usr/local/nginx/run/nginx.pid7.安装
# make && make install
8.命令
nginx --开启
nginx -s reload --重启
5.php编译安装
1、上传源码包
2、安装依赖环境# yum -y install gcc gcc-c++ glibc automake autoconf libtool make
3、解压4.编译
./configure \
--prefix=/usr/local/php7 \
--with-config-file-path=/usr/local/php7 \
--with-config-file-scan-dir=/usr/local/php7/php.d \
--enable-mysqlnd \
--with-mysqli \
--with-pdo-mysql \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-gd \
--with-iconv \
--enable-xml \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-zip \
--with-openssl \
--with-zlib \
--with-libzip \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl \
--with-jpeg-dir \
--with-freetype-dir \
--enable-opcache
5.安装make && make install
6.nginx关联php
1.编写nginx配置文件
vim /etc/nginx/nginx.conf
location / {
root html;
index index.php index.html index.htm;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}2.编写php测试文件
vim /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
7.项目上线
1.上传项目包
2.解压到nginx的网站根目录下/usr/local/nginx/html
3.修改权限
4.浏览器访问ip
5.13虚拟主机
1.修改默认网站发布目录
# vim /etc/httpd/conf/httpd.conf
119 DocumentRoot "/web" # 修改网站根目录为/www
131 <Directory "/web"> # 把这个也对应的修改为/www
# mkdir /web #创建定义的网站发布目录
# echo "这是新修改的网站根目录/web" > /web/index.html #创建测试页面
# systemctl restart httpd | httpd -k restart #重启服务
2.基于域名
1.#vim /etc/httpd/conf.d/test.conf #创建配置文件
<VirtualHost *:80> #指定虚拟主机端口,*代表监听本机所有ip,也可以指定ip
DocumentRoot /web/map #指定发布网站目录,自己定义
ServerName aaa.map.com #指定域名,可以自己定义
<Directory "/web/map/">
AllowOverride None #设置目录的特性,不设置目录的特性
Require all granted #允许所有人访问
</Directory>
</VirtualHost>
2.# mkdir /wb/map #创建发布目录
3.# echo “欢迎使用map”> /web/map/index.html #创建测试页面
4.在wind电脑上面打开C:\Windows\System32\drivers\etc\hosts文件。可以用管理员身份打开
eg: 10.36.178.68 aaa.map.com
5.# httpd -k restart
3.基于端口
1.#vim /etc/httpd/conf.d/test.conf #创建配置文件
<VirtualHost *:90> #指定虚拟主机端口,*代表监听本机所有ip,也可以指定ip
DocumentRoot /web/map #指定发布网站目录,自己定义
ServerName aaa.map.com#指定域名,可以自己定义<Directory "/web/map/">
AllowOverride None #设置目录的特性,不设置目录的特性
Require all granted #允许所有人访问
</Directory>
</VirtualHost>
2.更改主配置文件监听端口
Listen 80
Listen 90
3.# httpd -k restart
4.基于ip
1.给虚拟机添加ip
ip a a 10.36.178.77(ping不通) dev ens33
2.#vim /etc/httpd/conf.d/test.conf #更改配置文件
<VirtualHost 10.36.178.77:80> #指定虚拟主机端口,*代表监听本机所有ip,也可以指定ip
DocumentRoot /web/map #指定发布网站目录,自己定义
ServerName aaa.map.com#指定域名,可以自己定义<Directory "/web/map/">
AllowOverride None #设置目录的特性,不设置目录的特性
Require all granted #允许所有人访问
</Directory>
</VirtualHost>
3.# httpd -k restart
5.14构建NFS远程共享存储
1.制作网络服务文件系统nfs 111
服务端
- 安装nfs-utils rpcbind
- 配置共享目录
vim /etc/exports
/nfs 10.36.178.0/24(rw,no_root_squash,sync)
共享目录 共享对象 (共享方式)
- 启动nfs和rpcbind并做开机自启
systemctl start nfs-server
systemctl enable nfs-server
客户端
- 安装nfs-utils rpcbind
- 挂载 mount -t nfs nfs-server-ip: /data共享目录 /data本地目录
- 测试
- 开机自动挂载 vim /etc/fstab --等待时间减少
ip :/nfs /nfs nfs rw,nofail,bg 0 0
共享目录 挂载点 文件系统类型 只读,后台
2.vsftp配置匿名用户登录
准备环境:关闭防火墙、SElinux,关闭开机自启
服务端194
- 安装vsftpd,启动并开机自启
- ftp默认共享目录/var/ftp
- 创建自己的共享目录
mkdir /var/ftp/mine
创建文件在共享目录
touch /var/ftp/mine/test.txt
修改根除目录的属主与属组
chown -R ftp.ftp /var/ftp/*- 编辑配置文件
vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
重启vsftp
systemctl restart vsftpd
客户端41
- 安装客户端
yum -y install lftp
- 访问服务端:lftp 10.36.178.194(服务端ip)
3.vsftp配置本地用户登录
服务端194
- 创建用户zhangsan、lisi
useradd zhangsan && useradd lisi
- 设置密码
echo '123456' | passwd --stdin zhangsan
echo '123456' | passwd --stdin lisi
- 配置本地用户ftp配置文件
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #将允许匿名登录关闭
#anon_umask=022 #匿名用户所上传文件的权限掩码
#anon_upload_enable=YES #允许匿名用户上传文件
#anon_mkdir_write_enable=YES #允许匿名用户创建目录
#anon_other_write_enable=YES #是否允许匿名用户有其他写入权(改名,删除,覆盖)
103 chroot_list_enable=YES #启用限制登陆用户在主目录里面
104 # (default follows)
105 chroot_list_file=/etc/vsftpd/chroot_list #限制登陆的用户在这个文件列表中,一行一个用户
106 allow_writeable_chroot=YES #允许限制的用户对目录有写权限,新添加
- 在chroot_list添加已经创建的用户,一行一个用户
vim /etc/vsftpd/chroot_list
zhangsan
lisi
- 重启客户端
客户端41
- 以zhangsan身份访问
lftp 10.36.178.194 -u zhangsan
- lftp操作
get 下载单个文件
mget 下载多个文件
mirror 下载目录
put 上传单个文件
mput 上传多个文件
mirror -R 上传目录
mkdir 创建目录
rm -rf 删除文件或者目录
5.15 堡垒机jumpserver
1.部署jumpserver
- 解压安装
./jump.sh install
- 启动
./jump.sh start
2.web访问
http://10.36.178.32:80
默认用户: admin 默认密码: admin
3.在网页部署连接
- 创建用户组(DevOps)、用户名(登录网页的用户:cloud),用户名(只代表让人 看懂的关键信息)
- 创建资产(jumpsever)
- 创建系统用户:
普通用户(登录linux服务端的用户:xx)--托管密码--自动推送
超级管理员(root)-- 用户切换
- 创建资产过滤(cmd),点击规则创建规则命令(rm reboot等)
- 资产授权,授权jumpserver给系统用户xx
- 更改系统设置
当前站点ip:http://10.36.178.124
邮件服务器:163.com | qq.com 465
- 点击资产列表--主机名--测试--绿色代表成功--刷新
- 用户登录
点击右上角终端--访问成功!
5.16 无人值守安装系统 pxe
1.什么是pxe
通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已安装的操作系统;
2.pxe 部署
pxe-server:10.36.178.17
(1)安装前准备
- 关闭防火墙、selinux
- 配置静态ip地址:最好用net网络
vim /etc/sysconfig/network-scripts/ifcfg-ens33
static
IPADDR="10.36.178.17"
GATEWAY="10.36.178.1"
NETMASK="255.255.255.0"
DNS1=8.8.8.8
DNS2=4.2.2.2
- 重启网络,安装软件包
# systemctl restart network
# yum install -y dhcp tftp tftp-server syslinux wget vsftpd pykickstart
(2)dhcp服务器配置
- vim /etc/dhcp/dhcpd.conf
#确保配置文件内容如下
ddns-update-style interim;
ignore client-updates;
authoritative;
allow booting;
allow bootp;
allow unknown-clients;
# A slightly different configuration for an internal subnet.
subnet 10.20.157.0 netmask 255.255.255.0
{
range 10.36.178.100 10.36.178.254;
option domain-name-servers 8.8.8.8;
option domain-name "server1.example.com";
option routers 10.36.178.1;
option broadcast-address 10.36.178.255; #广播地址255
default-lease-time 600;
max-lease-time 7200;
# PXE SERVER IP
next-server 10.36.178.17; # DHCP server ip
filename "pxelinux.0";
}
(3)TFTP服务准备
- # cp /usr/share/syslinux/{pxelinux.0,menu.c32,memdisk,mboot.c32,chain.c32} /var/lib/tftpboot/
- # mkdir /var/lib/tftpboot/pxelinux.cfg
- # mkdir /var/lib/tftpboot/netboot
(4) VSftpd服务准备
- VMware中ISO镜像连接
- # mount /dev/cdrom /mnt --挂载
- mkdir /var/ftp/xa2402/ --在ftp下创建自己的文件夹
cp -rf /mnt/* /var/ftp/xa2402/
- 拷贝系统启动时需要的镜像文件 !注意路径!
# cp /var/ftp/xa2402/images/pxeboot/vmlinuz /var/lib/tftpboot/netboot/
# cp /var/ftp/xa2402/images/pxeboot/initrd.img /var/lib/tftpboot/netboot/
- 创建ks.cfg 文件
# vim /var/ftp/xa2402/ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use NFS installation media
url --url="ftp://10.36.178.17/xa2402/"
rootpw --plaintext 123
#root的密码设为123
# Use graphical install
graphical
firstboot disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux disabled
# Installation logging level
logging level=info
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader location=mbr
clearpart --all --initlabel
part swap --asprimary --fstype="swap" --size=1024
part /boot --fstype xfs --size=200
part pv.01 --size=1 --grow
volgroup rootvg01 pv.01
logvol / --fstype xfs --name=lv01 --vgname=rootvg01 --size=1 --grow
reboot
%packages
@core
%end
%post
%end
- 检查语法是否有错误
# ksvalidator /var/ftp/xa2402/ks.cfg
(5)PXE菜单
- # vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
prompt 0
timeout 30
MENU TITLE Togogo.net Linux Training
LABEL centos7_x64
MENU LABEL CentOS 7 X64 for xiaoxu #自定义名字
KERNEL /netboot/vmlinuz
APPEND initrd=/netboot/initrd.img inst.repo=ftp://10.36.178.17/xa2402 ks=ftp://10.36.178.17/xa2402 /ks.cfg
(6)重启服务
- # systemctl enable dhcpd vsftpd tftp
- # systemctl restart dhcpd vsftpd tftp
(7)创建虚拟机-自动安装系统
- 注意:内存必须大于2G
- 1核4G
- CD/DVD(IDE)自动检测
3.谷歌身份验证器部署
(1)同步时钟
# timedatectl set-timezone Asia/Shanghai # 调整时区
#yum -y install ntp
# ntpdate time.windows.com #进行对时
(2)安装谷歌验证器
# yum install -y git automake libtool pam-devel bzip2 wget #安装工具
# wget http://repository.timesys.com/buildsources/l/libpam-google-authenticator/libpam-google-authenticator-1.0/libpam-google-authenticator-1.0-source.tar.bz2
# tar -jxvf libpam-google-authenticator-1.0-source.tar.bz2 && cd libpam-google-authenticator-1.0 && make && make install #解压安装
(3)运行谷歌程序
# google-authenticator # 运行
全部“ y ”
(4)配置ssh登录
# systemctl restart sshd
# echo "auth required pam_google_authenticator.so" >> /etc/pam.d/sshd #在配置文件追加
(5)设置sshd
# vim /etc/ssh/sshd_config
ChallengeResponseAuthentication yes
(6)手机下载google身份验证器
安卓:下载任意google身份验证器,以及一个斑马线条码扫描器 Ios: 自行appstore下载 创建账户 上文中google-authenticator 执行完之后会给出一个二维码以及
可以直接扫描二维码或者在账户管理中添加 secret key 下面的5组8位数字是紧急登录秘钥,记住其中一组在手机不在身边时可以紧急登录
5.17虚拟机重置密码
迅速“↑ ”或者“↓”
'E'
linux16末尾 + rd.break
'ctrl + X'
mount -o rw,remount /sysroot
chroot /sysroot
passwd
touch /.autorelabel
exit
reboot
5.21 IP地址的组成
公司拟定100人,划分2个子网,设定网络地址为:10.36.172.0/24
00001010.00100100.10101100.00000000
00001010.00100100.10101100.0 0000000 /25 2^1
子网掩码:(网络位全为1,主机位全为0)
11111111.11111111.11111111.1 0000000 /25
255.255.255.128
广播:(网络位不变,主机位全部为1)
00001010.00100100.10101100.0 1111111 /25
10.36.172.127
网络地址:(网络位不变,主机位全部为0)
00001010.00100100.10101100.0 0000000 /25
10.36.172.0
主机位:
2^7-2=126
查看ip
ip -f inet a show dev ens33