1. 程式人生 > 其它 >編譯安裝&打包壓縮&定時任務

編譯安裝&打包壓縮&定時任務

內容概要

  • 編譯安裝
  • 打包壓縮
  • 定時任務

內容詳細

一、編譯安裝

1、特點

使用原始碼,編譯打包軟體。

​ 1、可以自定製軟體
​ 2、按需構建軟體啊

2、步驟

下載安裝包

	wget 下載網址
	如果沒有 wget : yum install wget

[root@localhost ~]# wget https://nginx.org/download/nginx-1.20.2.tar.gz
[root@localhost ~]# ll
total 1044
-rw-------. 1 root root    1691 Dec  8 17:25 anaconda-ks.cfg
-rw-r--r--. 1 root root 1062124 Nov 16 22:51 nginx-1.20.2.tar.gz

解壓安裝包

	tar -xf <安裝包名>

[root@localhost ~]# tar -xf nginx-1.20.2.tar.gz
[root@localhost ~]# ll
total 1044
-rw-------. 1 root root    1691 Dec  8 17:25 anaconda-ks.cfg
drwxr-xr-x. 8 1001 1001     158 Nov 16 22:44 nginx-1.20.2
-rw-r--r--. 1 root root 1062124 Nov 16 22:51 nginx-1.20.2.tar.gz

修改引數

    1、cd nginx-1.20.2
    2、vim src/core/nginx.h		# 修改NGINX_VER引數
    3、.configure 

[root@localhost ~]# cd nginx-1.20.2
[root@localhost nginx-1.20.2]# ll
total 792
drwxr-xr-x. 6 1001 1001   4096 Dec 17 16:13 auto
drwxr-xr-x. 2 1001 1001    168 Dec 17 16:13 conf
-rwxr-xr-x. 1 1001 1001   2590 Nov 16 22:44 configure
drwxr-xr-x. 9 1001 1001     91 Dec 17 16:13 src

[root@localhost nginx-1.20.2]# vim src/core/nginx.h

[root@localhost nginx-1.20.2]# ./configure 

# 如果報錯 : ./configure: error: the HTTP rewrite module requires the PCRE library.
執行 : yum install pcre pcre-devel zlib zlib-devel -y

編譯

make

安裝

make install

啟動軟體並訪問虛擬機器網址測試

# 執行 nginx
/usr/local/nginx/sbin/nginx

# 如果啟動失敗
    將可執行檔案路徑新增到PATH(方便啟動nginx)

    vim ~/.bashrc 

    #在bashrc配置檔案末尾追加nginx守護程序的路徑
    export PATH=$PATH:/usr/local/nginx/sbin

    #儲存退出後使配置檔案生效
    source ~/.bashrc

# 還是啟動失敗
	1、
    [root@server /]# nginx
    nginx: [emerg] still could not bind()
     檢視80埠是否被佔用
    [root@server /]# usr/sbin/lsof -i :80
    COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    httpd    1326   root    4u  IPv6  26961      0t0  TCP *:http (LISTEN)
    httpd   10589 apache    4u  IPv6  26961      0t0  TCP *:http (LISTEN)
    httpd   10591 apache    4u  IPv6  26961      0t0  TCP *:http (LISTEN)
    httpd   10593 apache    4u  IPv6  26961      0t0  TCP *:http (LISTEN)
    httpd   10594 apache    4u  IPv6  26961      0t0  TCP *:http (LISTEN)
    httpd   10595 apache    4u  IPv6  26961      0t0  TCP *:http (LISTEN)

    #關閉httpd服務
    [root@server /]# systemctl stop httpd
 
    2、解決辦法:

    根據Nginx配置檔案檢視配置的埠(本文中使用的是80埠),然後根據埠檢視端口占用情況

    [root@xyw-cyck-cms-3 ~]# netstat -ntlp|grep 80  
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               		LISTEN      7043/nginx: worker
    使用kill命令殺死佔用程序,之後重新啟動Nginx

system start nginx


如果訪問網址失敗,應該是防火牆和selinux沒關掉

關閉selinux和firewalld
	systemctl disable --now firewalld
[root@localhost ~]# systemctl disable --now firewalld
[root@localhost ~]# setenforce 0

二·、打包壓縮

1、常見壓縮工具與壓縮命令

壓縮工具

windows : zip 、rar

Linux : gzip 、 bzip2

操作命令

前提 :壓縮操作只能壓縮檔案,不能壓縮資料夾,資料夾需要經過打包之後才能進行壓縮

壓縮 : gzip <檔名>
解壓 : gzip -d <壓縮包>

壓縮 : bzip2 <檔名>
解壓 : bzip2 -d <壓縮包>

小檔案壓縮可能記憶體反而變大,因為要加入壓縮演算法
無法壓縮目錄

原檔案:
	-rw-------. 1 root root    1691 Dec  8 17:25 anaconda-ks.cfg
壓縮後:檔案變小
[root@localhost ~]# gzip anaconda-ks.cfg 
[root@localhost ~]# ll
total 1044
-rw-------. 1 root root     883 Dec  8 17:25 anaconda-ks.cfg.gz
解壓:
[root@localhost ~]# gzip -d anaconda-ks.cfg.gz 
[root@localhost ~]# ll
total 1044
-rw-------. 1 root root    1691 Dec  8 17:25 anaconda-ks.cfg

2、打包檔案

打包命令

	命令 : tar
	需要指定引數,因為 tar 既有打包又有解包的功能,
	打包 : -c

    tar -c -f <壓縮後名稱> <目錄名>

    目錄名不能用絕對路徑,會報錯
# 打包
[root@localhost ~]# tar -c -f nginx-1.tar nginx-1.20.2
[root@localhost ~]# ll
total 20004
drwxr-xr-x. 9 1001 1001      186 Dec 17 16:23 nginx-1.20.2
-rw-r--r--. 1 root root 19415040 Dec 17 19:17 nginx-1.tar
# 壓縮
[root@localhost ~]# gzip nginx-1.tar
[root@localhost ~]# ll
total 6196
drwxr-xr-x. 9 1001 1001     186 Dec 17 16:23 nginx-1.20.2
-rw-r--r--. 1 root root 5273306 Dec 17 19:17 nginx-1.tar.gz	< -- 壓縮過後
# 打包後用 zip 壓縮,並顯示壓縮過程, 壓縮引數 -z 得和打包 -c 一起使用,單獨無法使用
[root@localhost ~]# tar -c -v -z -f nginx-1.2.tar nginx-1.20.2

注意 : -f 引數後面一定要跟著壓縮後的 壓縮包名

# 用 tar 命令解壓:
[root@localhost ~]# tar -xf nginx-1.20.2.tar.gz
[root@localhost ~]# ll
total 25156
drwxr-xr-x. 8 1001 1001      158 Nov 16 22:44 nginx-1.20.2

引數

引數:
    -f : 指定打包的包名稱
    -c : 打包
    -v : 顯示打包的過程
    -z : 使用gzip壓縮壓縮包
    -j : 使用bzip2壓縮壓縮包

    -x : 解壓(解壓不需要指定壓縮型別)

    -t : 檢視壓縮包內部的內容

    -P :忽略使用絕對路徑時報出的錯誤

注意:
    1、壓縮時是什麼路徑,解壓縮時就是什麼路徑,所以為了安全不要使用絕對路徑壓縮。
    2、-f引數後面永遠跟壓縮包名稱

三、定時任務

1、定時應用

在工作中,有些執行指令碼需要在凌晨或者一些固定的時間點執行,可以給指令碼設定定時任務,到點直接執行程式,無須人工手動操作

2、定時配置檔案目錄與格式

定時檔案目錄

/etc/crontab

格式

* * * * * crontab
分  時  天  月  周幾

3、定時使用