06_Linux基础-NGINX和浏览器、网页的关系-云服务器ssh登陆-安装NGINX-上传网页-压缩命令-xz-gzip-bzip2-zip-tar-配置NGINX服务器支持下载功能-备份脚本


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

  1. nginx是一个web服务器
  2. html语言编写网页
  3. cd /usr/local/nginx html
  4. cd html/ (注:存放网页路径)
  1. 思考:
  2. 1.网页和nginx的关系
  3. nginx将网页发送给浏览器
  4. 2.浏览器和nginx的关系
  5. 浏览器问nginx要网页
  6. nginx将网页发送给浏览器
  7. 3.浏览器和网页的关系
  8. 浏览器是能读懂网页的htmljscss代码,渲染出效果

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

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

  1. 自己的虚拟机的linux系统里呢?(如何上传自己的网页到linux系统呢)
  2. Xshell连过去
  3. 自己的云服务器,如何上传自己的网页到云服务器呢?
  4. 1.xshell --》公网ip(云服务器的公网ip106.54.83.86 (注:xshell连接)
  5. 用户名root --》密码是有个初始密码 (注:passwd 改密码)
  6. 2.自己去编译安装nginx--》建议使用脚本安装-->启动nignx
  7. 3.上传自己的网页到nginxhtml目录下 (注:scp或上传Windows【中间环节】)
  8. 4.去访问106.54.83.86
  1. (注)脚本:
  2. # cat onekey_install_nginx_v2.sh
  3. #!/bin/bash
  4. #1.下载nginx软件包
  5. mkdir -p /nginx2
  6. cd /nginx2
  7. curl -O http://nginx.org/download/nginx-1.19.2.tar.gz
  8. #2.解压,进入文件夹
  9. tar xf nginx-1.19.2.tar.gz
  10. cd nginx-1.19.2
  11. #3.编译前的配置
  12. #新建用户sanchuang9
  13. useradd sanchuang9
  14. #安装gcc和pcre-devel软件包,因为nginx需要这些软件,解决软件的依赖关系
  15. yum install gcc make pcre-devel zlib-devel -y
  16. #配置nginx,指定安装路径和启动nginx的用户名
  17. ./configure --prefix=/usr/local/nginx2 --user=sanchuang9
  18. #4.编译
  19. make
  20. #5.编译安装
  21. make install
  22. #6.关闭防火墙服务和设置开机不要启动
  23. service firewalld stop
  24. systemctl disable firewalld
  25. #7.修改PATH变量,方便可以直接使用nginx
  26. echo "PATH=$PATH:/usr/local/nginx2/sbin" >>/root/.bashrc
  1. ip add 看的是私网IP
  2. scp 远程copy
  3. /usr/local/nginx/sbin/nginx 启动nginx
  4. ps aux|grep nginx 查看nginx进程
  1. 搞一个自己的网站
  2. 1.购买一个云服务器--》阿里云或者腾讯云,华为云,亚马逊免费试用 --》学生版 10元/月
  3. 2.购买域名 5元/年
  4. 在哪里购买的云服务器,就在哪里买域名,方便备案
  5. 3.备案
  6. 如果不备案,不能正常的使用域名去访问
  1. cat /etc/centos-release 查看centos版本

三. 压缩命令-xz-gzip-bzip2-zip-tar-配置NGINX服务器支持下载功能

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

  1. ==tar -czf -->.tar.gz==
  2. ==tar cjf -->.tar.bz2==
  3. ==tar cJf -->.tar.xz==
  4. ==tar tf \*.tar.\*==
  5. ==tar xf \*.tar.\*==
  6. \# tar xf boot_log_passwd.tar.gz ==-C== /zhanghuayou/
  7. 压缩命令-xz-gzip-bzip2-zip:都只能对文件进行压缩
  8. zip -->.zip
  9. gzip -->.gz
  10. xz --->.xz
  11. bzip2 -->.bz2
  12. zip yum install zip unzip -y
  13. ==zip chenpeng.txt.zip chenpeng.txt==
  14. ==unzip passwd.zip==
  15. gzip
  16. ==gzip hosts==
  17. ==gunzip hosts.gz==
  18. ==zcat messages.gz==
  19. xz
  20. ==xz hosts==
  21. ==unxz hosts.xz==
  22. ==xzcat messages.xz==
  23. bzip2 yum install bzip2 -y
  24. ==bzip2 passwd==
  25. ==bunzip2 passwd.bz2==
  26. ==bzcat passwd.bz2==
  27. 配置nginx服务器支持下载功能

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

  1. 为什么要打压缩包?
  2. 备份的时候,能节约空间
  3. 网络传送的时候,能节约时间
  1. windows里有哪些解压缩软件?
  2. winrar
  3. 7z
  4. 好压
  5. 快压
  6. Zip
  1. windows里的.rar压缩文件传递到linux里,是否能打开
  2. sc.rar (注:rar解压不了,linux里没这个软件,需要安装才有)
  3. sc.zip -->linux默认支持
  4. windows能解压linux里的所有的压缩文件
  1. nginx-1.19.2.tar.gz linux里的压缩文件
  2. 压缩文件红色的,可执行文件绿色的

zip

zip

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

  1. yum install zip unzip -y ==(注:zip需要安装)==

zip 打压缩包

unzip 解压的

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

  1. 压缩后的文件 源文件

[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的升级版)

  1. ==(注: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/linux/kernel/v5.x/linux-5.8.11.tar.xz

# 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

  1. tar -->兼并了gzip,xz,bzip2
  2. tarball -->使用tar命令打的压缩包--》归档文件--》压缩文件--》一个压缩包里可以包含很多的文件
  3. tar是可以对文件和文件夹进行压缩的
  4. Compressed TAR Archive [compressed压缩的 archive归档]
  5. https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.8.11.tar.xz
  6. http://nginx.org/download/nginx-1.19.2.tar.gz
  7. mysql-8.0.21-linux-glibc2.12-i686.tar.xz
  8. https://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 / {

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

}

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

压缩包上传


四. tar命令

tar命令

用途:制作归档文件、释放归档文件

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

  1. 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. 压缩练习:
  2. 1.windows里使用winrar软件压缩2个文件,一个是.rar格式的文件,一个是.zip的文件,具体压缩那个文件,你自己定义
  3. 2.将文件传输到linux系统的/lianxi目录下,尝试解压.zip的文件
  4. # unzip
  5. 3.复制/etc/passwd文件到/lianxi目录下,将/lianxi目录下的passwd文件压缩成passwd.xz
  6. # cp /etc/passwd . # xz passwd
  7. 4.复制/etc/ssh/sshd_config 文件到/lianxi目录下,然后进行压缩为sshd_config.gz
  8. # cp /etc/ssh/sshd_config . # gzip sshd_config
  9. 5.查看passwd.xz里的内容,查看sshd_config.gz里的内容
  10. # xzcat passwd.xz # zcat sshd_config.gz
  11. 6.新建文件夹/backup_sc,然后复制/lianxi下的passwd.xzsshd_config.gz到/backup_sc目录里
  12. 7.到/backup_sc目录里解压passwd.xzsshd_config.gz文件
  13. 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

(注:目录结构 {} 表示多个)

  1. 练习:
  2. 编写一个脚本实现备份/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:$( ) (更好,因为可以嵌套)

  1. ctime=$(date +%F)

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

  1. 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

  1. (注:该行输出为空)

# echo ${sg}1

zhanghuayou1

#

删除/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年日历


06_Linux基础-NGINX和浏览器、网页的关系-云服务器ssh登陆-安装NGINX-上传网页-压缩命令-xz-gzip-bzip2-zip-tar-配置NGINX服务器支持下载功能-备份脚本的更多相关文章

  1. 如何上传网站程序(文件浏览器上传网页、FileZilla上传网站程序)

    问题场景: 网页制作完成后,程序需上传至虚拟主机. 注意事项: Windows系统的主机请将全部网页文件直接上传到FTP根目录,即 / . Linux系统的主机请将全部网页文件直接上传到 /htdoc ...

  2. centos7 nginx图片 服务器可以访问ftp用户上传的图片资源的配置

    注:本文参考了csdn:JAVA_DIRECTION的<nginx和ftp搭建图片服务器>一文.在实践中其文在centos7中还是存在缺陷性的 一:前提条件:是成功的安装好了ftp服务器和 ...

  3. 怎样上传网页到ftp中

    1.下载filezilla软件软件并安装 打开刚刚装好的FileZilla,点击菜单中的"文件"             2.点击站点管理器 3.点击新站点

  4. Java基础知识强化之网络编程笔记12:TCP之TCP协议上传文本文件并给出反馈

    1. 客户端: package cn.itcast_12; import java.io.BufferedReader; import java.io.BufferedWriter; import j ...

  5. Java基础知识强化之网络编程笔记11:TCP之TCP协议上传文本文件

    1. TCP协议上传文本文件(客户端上传数据到服务器端) (1)客户端(上传数据到服务端) package cn.itcast_11; import java.io.BufferedReader; i ...

  6. 分布式文件系统 - FastDFS 配置 Nginx 模块及上传测试

    也不说废话,直接干 上一篇 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署 中安装了 FastDFS 后,并配置启动了 Tracker 和 Storage 服务,已经可以上传文件 ...

  7. nginx上传模块nginx_upload_module和nginx_uploadprogress_module模块进度显示,如何传递GET参数等。

    ownload:http://www.grid.net.ru/nginx/download/nginx_upload_module-2.2.0.tar.gzconfigure and make : . ...

  8. windows配置nginx实现负载均衡集群

    windows配置nginx实现负载均衡集群2014-08-20 09:44:40   来源:www.abcde.cn   评论:0 点击:617 网上大部分关于nginx负载均衡集群的教程都是lin ...

  9. 初试“七牛云”--零基础运用七牛云配合UEditor实现图片的上传和浏览(.NET篇)

    (注册和建立存储空间就不介绍了,网上一把一把的资料,自己试着点点也能明白) 作为一个成熟的菜鸟,如果遇到一个新问题,第一步当然是先百度一下... 看了N个关于七牛云的使用的帖子,表示还是蒙圈的,看懂了 ...

随机推荐

  1. 根据数据中的key获取value值

    一.测试数据准备 List<Map<String, String>> result = new ArrayList();Map<String, String> ma ...

  2. 记一次grpc server内存/吞吐量优化

    背景 最近,上线的采集器忽然时有OOM.采集器本质上是一个grpc服务,网络设备通过grpc协议将数据上报后,采集器进行格式等整理后,发往下一个系统(比如分析,存储). 打开运行环境,发现特性如下: ...

  3. SAP 实例 6 HTML input

    REPORT demo_html_input. CLASS demo DEFINITION. PUBLIC SECTION. CLASS-METHODS main. PRIVATE SECTION. ...

  4. 【前端面试】(四)JavaScript var let const的区别

    视频链接: JavaScript var let const的区别 - Web前端工程师面试题讲解 参考链接: JavaScript 变量 JavaScript Let JavaScript Cons ...

  5. [JLOI2015]装备购买 题解 / 实数线性基学习笔记

    题目链接 看这道题之前,以为线性基只是支持异或的操作... 那么,我认为这道题体现出了线性基的本质: 就是说如何用最小的一个集合去表示所有出现的装备. 我们假设已经会使用线性基了,那么对于这道题该怎么 ...

  6. [开源精品] .NET Redis Client 又多了一个选择,还在被 StackExchange.Redis Timeout 问题困扰吗?

    前言 .NET 下 RedisClient SDK 选择挺多,国人常用免费的有 StackExchange.Redis/CSRedis/Newlife.Redis,收费的有 ServiceStack. ...

  7. python解决“failed to execute pyi_rth_pkgres”问题

    pip uninstall pyinstaller pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip

  8. 5-5 SpringGateway 网关

    SpringGateway 网关 奈非框架简介 早期(2020年前)奈非提供的微服务组件和框架受到了很多开发者的欢迎 这些框架和Spring Cloud Alibaba的对应关系我们要知道 Nacos ...

  9. Redis相关练习操作,redis连接池

    package com.shujia.controller; import com.shujia.entity.MyTypedTuple; import com.shujia.entity.User; ...

  10. ESP8266 使用 DRV8833驱动板驱动N20电机

    RT 手里这块ESP8266是涂鸦的板子,咸鱼上三块一个买了一堆,看ESP8266-12F引脚都差不多的.裸焊了个最小系统,加两个按钮(一个烧录,一个复位) 1. 准备工作 搜索过程中发现 DRV88 ...