mycpen

Mycpen

记录学习历程与受益知识
github
telegram
bilibili

06_Linux基礎-NGINXとブラウザ、ウェブページの関係-圧縮コマンド-NGINXのダウンロード機能をサポートする設定-バックアップスクリプト

一. NGINX とブラウザ、ウェブページの関係#

nginxはウェブサーバーです
html言語でウェブページを作成します

cd  /usr/local/nginx  html
cd  html/ 	(注:ウェブページの保存パス)
考察:
	1. ウェブページとnginxの関係
		nginxはウェブページをブラウザに送信します
	2. ブラウザとnginxの関係
		ブラウザはnginxにウェブページを要求します
		nginxはウェブページをブラウザに送信します
	3. ブラウザとウェブページの関係
		ブラウザはウェブページのhtml、js、cssコードを理解し、効果をレンダリングします

image-20220423200516418

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をコンパイルしてインストールします--》スクリプトインストールをお勧めします-->nginxを起動します
	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
 #nginxが必要とするgccとpcre-develパッケージをインストールし、ソフトウェアの依存関係を解決します
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  リモートコピー
/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 (解凍)==

# 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,bzip2を統合しました

tarball  -->tarコマンドで作成された圧縮パッケージ--》アーカイブファイル--》圧縮ファイル--》1つの圧縮パッケージに多くのファイルを含めることができます

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 を再読み込みします

image-20220423202600884

image-20220423202613795

圧縮パッケージをアップロード


四. 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: メンバー名から先頭の “/” を削除します

image-20220423202847149

== 圧縮パッケージの内容を確認する ==

  ==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: ハードリンクのターゲットから先頭の “/” を削除します

#

== 後でパッケージ化するファイルが圧縮ファイルの名前と同じ場合、上書きされます ==


五。圧縮練習 - バックアップスクリプト#

主要内容:

複数のファイルを除外する排除 ==(難点)==

# 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つのファイルを圧縮します。1つは.rar形式のファイル、もう1つは.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==

複数のファイルを除外する排除 ==(難点)==

# 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日前のバックアップファイルを削除し、最近7日間のファイルのみを保持します。

需求分析:

== 年、月、日、時、分、秒 ==

== タイムスタンプ:年、月、日、時、分、秒 ==

​ 現在の日付を取得する date

% Y 年 ==(注:年)==

% m 月 (01..12) ==(注:月)==

  %M   分 (00..59)						==(注:分)==

% d 日 (例:01) ==(注:日)==

% H 時間 (00..23) ==(注:時間)==

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

% F 完全な日付;% 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 ディレクトリ内の 7 日前のバックアップファイルを削除する

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 日前のバックアップファイルを削除し、最近 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 年のカレンダーを表示

image-20220423204712463

image-20220423204723137


読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。