一. NGINX 和瀏覽器、網頁的關係#
nginx是一個web伺服器
html語言編寫網頁
cd /usr/local/nginx html
cd html/ (注:存放網頁路徑)
思考:
1.網頁和nginx的關係
nginx將網頁發送給瀏覽器
2.瀏覽器和nginx的關係
瀏覽器問nginx要網頁
nginx將網頁發送給瀏覽器
3.瀏覽器和網頁的關係
瀏覽器是能讀懂網頁的html,js,css代碼,渲染出效果
web:網站
表單信息放到資料庫裡去,nginx只能訪問靜態頁面,Python把信息傳到資料庫裡。Python——》flask web後端——》user表
如何判斷nginx是否運行?
1.看進程
ps aux|grep nginx
2.看端口
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 /nginx2
cd /nginx2
curl -O http://nginx.org/download/nginx-1.19.2.tar.gz
#2.解壓,進入文件夾
tar xf nginx-1.19.2.tar.gz
cd nginx-1.19.2
#3.編譯前的配置
#新建用戶sanchuang9
useradd 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 stop
systemctl disable firewalld
#7.修改PATH變量,方便可以直接使用nginx
echo "PATH=$PATH:/usr/local/nginx2/sbin" >>/root/.bashrc
ip add 看的是私網IP
scp 遠程copy
/usr/local/nginx/sbin/nginx 啟動nginx
ps 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%) (注壓縮,泄氣)
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/linux/kernel/v5.x/linux-5.8.11.tar.xz
# ==xz hosts (用法)==
# ls
hosts.xz passwd passwd.zip
# ==unxz hosts.xz (解壓)==
# lshosts 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,bzip2
tarball -->使用tar命令打的壓縮包--》歸檔文件--》壓縮文件--》一個壓縮包裡可以包含很多的文件
tar是可以對文件和文件夾進行壓縮的
Compressed TAR Archive [compressed壓縮的 archive歸檔]
https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.8.11.tar.xz
http://nginx.org/download/nginx-1.19.2.tar.gz
mysql-8.0.21-linux-glibc2.12-i686.tar.xz
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 / {
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 年日曆