@TOC

06_Linux根底-NGINX和浏览器、网页的关系-云服务器ssh登陆-装置NGINX-上传网页-压缩命令-xz-gzip-bzip2-zip-tar-配置NGINX服务器反对下载性能-备份脚本


一. NGINX和浏览器、网页的关系

nginx是一个web服务器html语言编写网页cd  /usr/local/nginx  htmlcd  html/     (注:寄存网页门路)
思考:    1.网页和nginx的关系        nginx将网页发送给浏览器    2.浏览器和nginx的关系        浏览器问nginx要网页        nginx将网页发送给浏览器    3.浏览器和网页的关系        浏览器是能读懂网页的html,js,css代码,渲染出成果

web:网站表单信息放到数据库里去,nginx只能拜访动态页面,Python把信息传到数据库里。Python——》flask web后端——》user表
如何判断nginx是否运行?1.看过程    ps aux|grep nginx2.看端口    netstat -anplut
项目组:    1.前端    2.后端    3.运维    4.测试    5.dba    6.项目经理
cd /usr/local/nginx/html/    放网页rz 只能传文件,不能传文件夹

二. 云服务器ssh登陆-装置NGINX-上传网页

本人的虚拟机的linux零碎里呢?(如何上传本人的网页到linux零碎呢)    Xshell连过来本人的云服务器,如何上传本人的网页到云服务器呢?    1.xshell  --》公网ip(云服务器的公网ip)106.54.83.86 (注:xshell连贯)     用户名root  --》明码是有个初始密码 (注:passwd 改明码)    2.本人去编译装置nginx--》倡议应用脚本装置-->启动nignx    3.上传本人的网页到nginx的html目录下 (注:scp或上传Windows【中间环节】)    4.去拜访106.54.83.86
(注)脚本:# cat onekey_install_nginx_v2.sh #!/bin/bash#1.下载nginx软件包mkdir -p /nginx2cd /nginx2curl  -O http://nginx.org/download/nginx-1.19.2.tar.gz#2.解压,进入文件夹tar xf  nginx-1.19.2.tar.gzcd  nginx-1.19.2#3.编译前的配置 #新建用户sanchuang9useradd sanchuang9 #装置gcc和pcre-devel软件包,因为nginx须要这些软件,解决软件的依赖关系yum install  gcc make   pcre-devel zlib-devel  -y #配置nginx,指定装置门路和启动nginx的用户名./configure  --prefix=/usr/local/nginx2  --user=sanchuang9 #4.编译make#5.编译装置make  install#6.敞开防火墙服务和设置开机不要启动service firewalld  stopsystemctl disable  firewalld #7.批改PATH变量,不便能够间接应用nginxecho  "PATH=$PATH:/usr/local/nginx2/sbin"  >>/root/.bashrc
ip add 看的是私网IPscp  近程copy/usr/local/nginx/sbin/nginx 启动nginxps aux|grep nginx 查看nginx过程
搞一个本人的网站    1.购买一个云服务器--》阿里云或者腾讯云,华为云,亚马逊收费试用 --》学生版 10元/月    2.购买域名  5元/年        在哪里购买的云服务器,就在哪里买域名,不便备案    3.备案            如果不备案,不能失常的应用域名去拜访
cat /etc/centos-release 查看centos版本

三. 压缩命令-xz-gzip-bzip2-zip-tar-配置NGINX服务器反对下载性能

次要内容:压缩命令-tar(重点) 对文件和文件夹进行压缩

    ==tar  -czf   -->.tar.gz==    ==tar  cjf    -->.tar.bz2==    ==tar  cJf    -->.tar.xz==    ==tar  tf   \*.tar.\*==        ==tar  xf   \*.tar.\*==    \# tar xf  boot_log_passwd.tar.gz  ==-C== /zhanghuayou/                压缩命令-xz-gzip-bzip2-zip:都只能对文件进行压缩                    zip -->.zip                    gzip -->.gz                    xz  --->.xz                    bzip2 -->.bz2            zip  yum  install  zip unzip -y            ==zip chenpeng.txt.zip  chenpeng.txt==            ==unzip passwd.zip==            gzip            ==gzip hosts==            ==gunzip hosts.gz==            ==zcat messages.gz==            xz            ==xz hosts==            ==unxz  hosts.xz==            ==xzcat messages.xz==            bzip2  yum  install  bzip2  -y            ==bzip2  passwd==            ==bunzip2  passwd.bz2==            ==bzcat  passwd.bz2==                        配置nginx服务器反对下载性能

压缩命令-xz-gzip-bzip2-zip-tar

为什么要打压缩包?    备份的时候,能节约空间    网络传送的时候,能节约工夫
windows里有哪些解压缩软件?    winrar    7z    好压    快压    Zip
windows里的.rar压缩文件传递到linux里,是否能关上    sc.rar (注:rar解压不了,linux里没这个软件,须要装置才有)    sc.zip  -->linux默认反对windows能解压linux里的所有的压缩文件
nginx-1.19.2.tar.gz  linux里的压缩文件压缩文件红色的,可执行文件绿色的

zip

zip

zip只能对文件进行压缩,不能对文件夹进行压缩

    yum  install  zip unzip -y ==(注:zip须要装置)==

zip 打压缩包

unzip 解压的

\# ==zip chenpeng.txt.zip chenpeng.txt== (注:==用法==)

            压缩后的文件    源文件

[root@sanchuang-linux lianxi]# zip passwd.zip passwd

adding: passwd (deflated 61%) (注:deflated压缩,气馁)

ll -h 看大小

passwd.zip

\# ==unzip passwd.zip 解压==

Archive: passwd.zip

inflating: passwd

\# ls

passwd passwd.zip

==zip的毛病:有源文件和新文件==

gzip

gzip

gzip能够间接在源文件上压缩,后缀名是.gz (注:与zip的区别,了解为zip的升级版)

                                                                        ==(注:gzip不须要装置)==

hosts passwd passwd.zip

\# ==gzip hosts (用法)== gzip + 源文件

\# ls

hosts.gz passwd passwd.zip

\# ==gunzip hosts.gz (解压)==

\# ==zcat messages.gz (查看压缩文件)==

xz

xz ==(注:xz不须要装置)==

https://cdn.kernel.org/pub/li...

\# ==xz hosts (用法)==

\# ls

hosts.xz passwd passwd.zip

\# ==unxz hosts.xz (解压)==

\# ls

hosts passwd passwd.zip

\# ==xzcat messages.xz (查看压缩文件)==

gz与xz 比拟,xz成果好

举荐应用xz

bzip2

bzip2 ==(注:bzip2须要装置)==

yum install bzip2 -y

\# ==bzip2 passwd (用法)==

passwd.bz2

\# ==bunzip2 passwd.bz2 (解压)==

passwd

\# ==bzcat passwd.bz2 (查看压缩文件)==

zip -->.zip

gzip -->.gz

xz --->.xz

bzip2 -->.bz2

tar

tar  -->合并了gzip,xz,bzip2tarball  -->应用tar命令打的压缩包--》归档文件--》压缩文件--》一个压缩包里能够蕴含很多的文件tar是能够对文件和文件夹进行压缩的Compressed TAR Archive    [compressed压缩的  archive归档]https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.8.11.tar.xzhttp://nginx.org/download/nginx-1.19.2.tar.gzmysql-8.0.21-linux-glibc2.12-i686.tar.xzhttps://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.46.tar.bz2

配置NGINX服务器反对下载性能

(autoindex auto 主动 index索引)

\# cd /usr/local/nginx/conf/ ==(注:配置目录)==

\#

\# vim nginx.conf ==(注2:批改配置文件)即加上autoindex on;这一行==

location / {

root  html;     (注4:指定nginx的寄存网页的目录为html--》网页根目录)index  index.html index.htm;  (注5:配置nginx服务器反对的首页为index.html  或者index.htm  index.html的优先级要高,没有index.html的时候,就会去查找index.htm)==autoindex on;      (注3:增加配置,让nginx反对显示文件夹里的内容)==

}

\# /usr/local/nginx/sbin/nginx -s reload 从新加载nginx

压缩包上传


四. tar命令

tar命令

用处:制作归档文件、开释归档文件

格局:tar [选项]... 归档文件名 源文件或目录

        tar  [选项]...  归档文件名  [-C 目标目录]

常用命令选项

-c:创立 .tar 格局的包文件 create

-x:解开.tar格局的包文件 extract提取

-v:输入详细信息 verbose冗余的

-f:示意应用归档文件 file

-t:列表查看包内的文件 list

常用命令选项

-C:解包时进入指定的指标文件夹

==-z:调用gzip程序进行压缩或解压==

==-j:调用bzip2程序进行压缩或解==

==-J:调用xz程序进行压缩或解压==

\=\=\= ==(经典组合)==

==创立压缩包==

==tar  -czf   -->.tar.gz====tar  cjf    -->.tar.bz2====tar  cJf    -->.tar.xz==

==创立压缩包到指定的门路 应用绝对路径==

\# tar czf /zhanghuayou/passwd.tar.gz ==/etc/passwd==

tar: 从成员名中删除结尾的“/”

==查看压缩包里的内容==

==tar  tf   \*.tar.\*==    

==解压--》默认解压到当前目录==

==tar  xf  \*.tar.\*====-C 解压到指定的门路==

\# tar xf boot_log_passwd.tar.gz ==-C== /zhanghuayou/

\# mkdir tar

\# cd tar

\# ls

\# tar czf passwd.tar.gz ==/etc/passwd==

==tar: 从成员名中删除结尾的“/”==

\# ls

passwd.tar.gz

\# tar tf passwd.tar.gz

==etc/passwd (注:/ 没有了)==

[root@sanchuang-linux tar]# ls

passwd.tar.gz

\# tar xf passwd.tar.gz

\# ls

==etc== passwd.tar.gz ==(注2:解压后是文件夹etc,没有“/”)==

\# cd etc/

\# ls

passwd

\#

==给文件夹打压缩包==

\# tar cJf boot.tar.xz /boot

\# tar czf boot.tar.gz /boot

\# tar cjf boot.tar.bz2 /boot

\# ==time tar czf boot.tar.gz /boot (注:压缩命令前接 time 能够看工夫)==

tar: 从成员名中删除结尾的“/”

real 0m8.467s

user 0m6.851s

sys 0m2.226s

\#

==(注:↓接v能够看过程,信息输入。个别写脚本不接v)==

\# tar czvf boot_log_passwd.tar.gz /boot /var/log /etc/passwd ==(注:文件和目录)==

\# tar czf boot_log_passwd.tar.gz /boot /var/log /etc/passwd

tar: 从成员名中删除结尾的“/”

tar: 从硬连贯指标中删除结尾的“/”

\#

==前面打包的文件如果压缩文件的名字一样,会笼罩==


五. 压缩练习-备份脚本

次要内容:

排错多个文件 exclude 排除 ==(难点)==

\# tar ==--exclude==\=/boot/{grub2,efi,loader} ==-czvf== no_grub_boot.tar.gz /boot

\# ==date +%Y%m%d%H%M%S==

20200924170954

以后的日期往后面推10天

\# ==date -d "10 days"==

如何失去命令的执行后果赋值给变量

==办法1:==

ctime=$(date  +%F)

==办法2:反引号==

ctime=\`date  +%F\`

命令的嵌套

==设置工夫 -s==

\# ==date -s '2020-10-10' (注:调工夫)==

\# date -s =='2020-10-10 9:53:00' (注:指定小时分钟秒)==

\# ==cal 看日历== calendar(日历)

\# ==cal 2020== 看2020年日历


压缩练习:    1.在windows里应用winrar软件压缩2个文件,一个是.rar格局的文件,一个是.zip的文件,具体压缩那个文件,你本人定义    2.将文件传输到linux零碎的/lianxi目录下,尝试解压.zip的文件# unzip    3.复制/etc/passwd文件到/lianxi目录下,将/lianxi目录下的passwd文件压缩成passwd.xz# cp /etc/passwd . # xz passwd     4.复制/etc/ssh/sshd_config 文件到/lianxi目录下,而后进行压缩为sshd_config.gz# cp /etc/ssh/sshd_config . # gzip sshd_config    5.查看passwd.xz里的内容,查看sshd_config.gz里的内容# xzcat passwd.xz # zcat sshd_config.gz    6.新建文件夹/backup_sc,而后复制/lianxi下的passwd.xz和sshd_config.gz到/backup_sc目录里    7.到/backup_sc目录里解压passwd.xz和sshd_config.gz文件    8.将/lianxi下的sshd_config.gz传到windows零碎里看是否能够解压?

练习8:

1.创立一个目录在/lianxi下叫tar

\# mkdir /lianxi/tar

2.进入tar目录,复制/etc/hosts文件和/etc/passwd到tar目录下

\# cd /lianxi/tar # cp /etc/hosts . # cp /etc/passwd .

3.复制/boot目录到tar目录下

\# cp /boot . -r

4.将当前目录下的boot目录打包放在/lianxi/tar目录下叫boot.tar.gz

\# tar czf boot.tar.gz boot

5.查看boot.tar.gz文件里的内容

\# tar tf boot.tar.gz

6.将hosts文件和passwd文件打包放到host_passwd.tar.bz2文件

\# tar cjf host_passwd.tar.bz2 hosts passwd

7.查看host_passwd.tar.bz2文件里的内容

\# tar tf host_passwd.tar.bz2

8.将/boot/目录和/etc/passwd、/var/log目录备份到/lianxi目录下叫boot_pw_log.tar.xz

\# tar cJf /lianxi/boot_pw_log.tar.xz /boot /etc/passwd /var/log

9.新建/bak目录,而后将/lianxi目录下的boot_pw_log.tar.xz解压到/bak目录下

\# mkdir -p /bak # tar xf boot_pw_log.tar.xz -C /bak

10.将/boot目录下的除grub2目录以外的所有文件都备份到/bak目录下叫no-grub.tar.gz

tar czvf --exclude ==(难点)==

\# tar ==--exclude=/boot/grub2 -czvf== no_grub_boot.tar.gz /boot

centos8里的 (注:==--exclude=/boot/grub2 -czvf 前后不能错,grub2不能接/,-czvf -不能省略==)

\# tar ==--exclude=/boot/grub2 -czvf== no_grub_boot.tar.gz /boot

centos7里的

\# tar czvf no_grub2_boot.tar.gz /boot ==--exclude=/boot/grub2==

排错多个文件 exclude 排除 ==(难点)==

\# tar ==--exclude==\=/boot/{grub2,efi,loader} ==-czvf== no_grub_boot.tar.gz /boot

(注:目录构造 {} 示意多个)

练习:编写一个脚本实现备份/var/log目录下的所有文件到/bak目录下,要求文件名是蕴含当天日期,准确到秒,文件名例如:2013-6-6-2_30_20-log.tar.gz。同时要求删除/bak目录下七天前的备份文件,只保留最近7天的文件。

需要剖析:

==年月日小时分钟秒==

==工夫戳:年月日小时分钟秒==

取得以后的日期  date %Y   year                                            ==(注:年)==%m   month (01..12)                        ==(注:月)==%M   minute (00..59)                        ==(注:分钟)==

%d day of month (e.g., 01) ==(注:日)==

%H hour (00..23) ==(注:小时)==

%S second (00..60) ==(注:秒)==

%F full date; same as %Y-%m-%d ==(注:年月日)==

\# ==date +%Y%m%d%H%M%S==

20200924170954

\# ==date +%Y-%m-%d%H%M%S==

2020-09-24171008

\# ==date +%Y-%m-%d_%H_%M_%S==

2020-09-24_17_10_31

\#

以后的日期往后面推10天 ==(推迟时间)==

\# ==date -d "10 days"==

2020年 10月 04日 星期日 17:21:27 CST

\# ==date -d 10days==

2020年 10月 04日 星期日 17:21:37 CST

\#

\# ==date -d 10hours==

2020年 09月 25日 星期五 03:22:13 CST

\#

如何失去命令的执行后果赋值给变量

==办法1:$( ) (更好,因为能够嵌套)==

    ctime=$(date  +%F)

==办法2:反引号 (不能嵌套)==

    ctime=\`date  +%F\`

\# ==ctime=$(date +%F)==

\# echo $ctime

2020-09-24

\# ==sctime=\`date +%F\`==

\# echo $sctime

2020-09-24

\#

\# ==touch $(date +%F).txt==

\# sg=zhanghuayou

\# echo $sg

zhanghuayou

\# echo $sg1

                    (注:该行输入为空)

\# echo ==${sg}==1

zhanghuayou==1==

\#

删除/bak目录下七天前的备份文件

find /bak -type f -mtime +7 -name "*.tar.gz" -exec rm -rf {} \;

脚本名字:

backup_log.sh

命令的嵌套

\# which mkdir

/usr/bin/mkdir

\# rpm -qf /usr/bin/mkdir

coreutils-8.30-6.el8_1.1.x86_64

\# softname\===$(rpm -qf $(which mkdir)) (注:$( ) 好,能够嵌套)==

\# echo $softname

==coreutils-8.30-6.el8_1.1.x86_64==

\# softname2\===\`rpm -qf \`which mkdir\`\`==

==rpm:未给出要查问的参数==

==mkdir: 短少操作数==

请尝试执行 "mkdir --help" 来获取更多信息。

\#


编写一个脚本实现==备份==/var/log目录下的所有文件到/bak目录下,要求文件名是蕴含当天日期,准确到秒,文件名例如:2013-6-6-2_30_20-log==.tar.gz==。同时要求删除/bak目录下七天前的备份文件,只保留最近7天的文件。

==通过文件名晓得应用tar命令,而不是cp==

\# mkdir /lianxi/9_25

\# cd /lianxi/9_25

\# vim backup_log.sh

\#!/bin/bash

\#取得以后的工夫,准确到秒

ctime=$(date +%Y%m%d%H%M%S)

\#备份

mkdir -p /bak

tar czf /bak/${ctime}-log.tar.gz /var/log

\#删除7天前的==备份文件==,只保留最近的7天内的文件

find /bak -type f -mtime +7 ==-name “*log.tar.gz”== -exec rm -rf {} \;

怎么验证删除7天前的文件?

答:调工夫

==设置工夫 -s==

\# date

2020年 09月 25日 星期五 09:53:18 CST

\# ==date -s '2020-10-10' (注:调工夫)==

2020年 10月 10日 星期六 00:00:00 CST

\#

\# date -s =='2020-10-10 9:53:00' (注:指定小时分钟秒)==

2020年 10月 10日 星期六 09:53:00 CST

\#

\# date -s '2020-9-25 9:55:00'

2020年 09月 25日 星期五 09:55:00 CST

\#

\# ==cal 看日历== calendar(日历)

\# ==cal 2020== 看2020年日历