1. 程式人生 > >Linux常用命令(持續更新中)

Linux常用命令(持續更新中)

目錄

一、基本命令

1.1 關機和重啟

1.2 幫助命令

二、目錄操作命令

2.1 目錄切換 cd

2.2 目錄檢視 ls [-al]

2.3 目錄操作【增,刪,改,查】

2.3.1 建立目錄【增】 mkdir

2.3.2 刪除目錄或檔案【刪】rm

2.3.3 目錄修改【改】mv 和 cp

2.3.4 搜尋目錄【查】find

三、檔案操作命令

3.1 檔案操作【增,刪,改,查】

3.1.1 新建檔案【增】touch

3.1.2 刪除檔案 【刪】 rm

3.1.3 修改檔案【改】 vi或vim

3.1.4 檔案的檢視【查】

四、壓縮檔案操作

4.1 打包和壓縮

4.2 解壓

五、其他命令

5.1 檢視當前目錄:pwd

5.2 檢視程序:ps -ef

5.3 結束程序:kill

5.4 搜尋字串:grep

5.5 管道命令:|

5.6 網路通訊命令:

5.7 配置網路

5.8 重啟網路

5.9 切換使用者

5.10 關閉防火牆

5.11 修改檔案許可權

六、Linux專案部署

6.1 安裝jdk1.8

6.2 安裝MySQL5.6

6.2.1 上傳MySQL5.6的tar包

6.2.2 安裝

6.2.3 開機自動啟動設定

6.2.4 開啟遠端訪問

6.3 安裝tomcat部署專案

6.3.1 建立ucenter使用者

6.3.2 安裝Tomcat

6.3.3 部署使用者管理專案

6.4 Linux下使用FastDFS

6.4.1 安裝gcc

6.4.2 安裝libevent

6.4.3 安裝libfastcommon-master

6.4.4 安裝fastdfs

6.4.5 配置並啟動tracker服務

6.4.6 配置並啟動storage服務

6.5 安裝fastdfs-nginx-module

6.5.1 解壓

6.5.2 修改config

6.5.3 配置nginx與FastDFS關聯配置檔案

6.6 安裝Nginx的外掛

6.6.1 如果沒有安裝過nginx

6.6.2 如果已經安裝過nginx

6.6.3 啟動nginx

6.6.4 設定nginx開機啟動

6.7 安裝Elasticsearch

6.7.1 新建一個使用者leyou

6.7.2 上傳安裝包,並解壓

6.7.3 修改配置

6.7.4 執行

6.7.5 錯誤1:核心過低

6.7.6 錯誤2:檔案許可權不足

6.7.7 錯誤3:執行緒數不夠

6.7.8 錯誤4:程序虛擬記憶體

6.7.9 重啟終端視窗

6.8 安裝RabbitMQ

6.8.1 安裝Erlang

6.8.2 安裝RabbitMQ

6.8.3 設定配置檔案

6.8.4 啟動、停止

6.8.5 開啟web介面管理工具

6.8.6 設定開機啟動

6.8.7 防火牆開放15672埠

6.9 redis安裝和配置

6.9.1 安裝

6.9.2 配置

6.9.3 啟動或停止

6.9.4 設定開機啟動


一、基本命令

1.1 關機和重啟

關機
    shutdown -h now        立刻關機
    shutdown -h 5        5分鐘後關機
    poweroff            立刻關機
重啟
    shutdown -r now        立刻重啟
    shutdown -r 5        5分鐘後重啟
    reboot                立刻重啟

1.2 幫助命令

--help命令
  shutdown --help:
  ifconfig  --help:檢視網絡卡資訊
 
man命令(命令說明書) 
  man shutdown
  注意:man shutdown開啟命令說明書之後,使用按鍵q退出

二、目錄操作命令

2.1 目錄切換 cd

命令:cd 目錄

cd /        切換到根目錄
cd /usr        切換到根目錄下的usr目錄
cd ../        切換到上一級目錄 或者  cd ..
cd ~        切換到home目錄
cd -        切換到上次訪問的目錄

2.2 目錄檢視 ls [-al]

命令:ls [-al]

ls                檢視當前目錄下的所有目錄和檔案
ls -a            檢視當前目錄下的所有目錄和檔案(包括隱藏的檔案)
ls -l 或 ll       列表檢視當前目錄下的所有目錄和檔案(列表檢視,顯示更多資訊)
ls /dir            檢視指定目錄下的所有目錄和檔案   如:ls /usr

2.3 目錄操作【增,刪,改,查】

2.3.1 建立目錄【增】 mkdir

命令:mkdir 目錄

mkdir    aaa            在當前目錄下建立一個名為aaa的目錄
mkdir    /usr/aaa    在指定目錄下建立一個名為aaa的目錄

2.3.2 刪除目錄或檔案【刪】rm

命令:rm [-rf] 目錄

刪除檔案:
rm 檔案        刪除當前目錄下的檔案
rm -f 檔案    刪除當前目錄的的檔案(不詢問)

刪除目錄:
rm -r aaa    遞迴刪除當前目錄下的aaa目錄
rm -rf aaa    遞迴刪除當前目錄下的aaa目錄(不詢問)

全部刪除:
rm -rf *    將當前目錄下的所有目錄和檔案全部刪除
rm -rf /*    【自殺命令!慎用!慎用!慎用!】將根目錄下的所有檔案全部刪除

注意:rm不僅可以刪除目錄,也可以刪除其他檔案或壓縮包,為了方便大家的記憶,無論刪除任何目錄或檔案,都直接使用 rm -rf 目錄/檔案/壓縮包

2.3.3 目錄修改【改】mv 和 cp

一、重新命名目錄
    命令:mv 當前目錄  新目錄
    例如:mv aaa bbb    將目錄aaa改為bbb
    注意:mv的語法不僅可以對目錄進行重新命名而且也可以對各種檔案,壓縮包等進行    重新命名的操作

二、剪下目錄
    命令:mv 目錄名稱 目錄的新位置
    示例:將/usr/tmp目錄下的aaa目錄剪下到 /usr目錄下面     mv /usr/tmp/aaa /usr
    注意:mv語法不僅可以對目錄進行剪下操作,對檔案和壓縮包等都可執行剪下操作

三、拷貝目錄
    命令:cp -r 目錄名稱 目錄拷貝的目標位置   -r代表遞迴
    示例:將/usr/tmp目錄下的aaa目錄複製到 /usr目錄下面     cp /usr/tmp/aaa  /usr
    注意:cp命令不僅可以拷貝目錄還可以拷貝檔案,壓縮包等,拷貝檔案和壓縮包時不    用寫-r遞迴

2.3.4 搜尋目錄【查】find

命令:find 目錄 引數 檔名稱
示例:find /usr/tmp -name 'a*'    查詢/usr/tmp目錄下的所有以a開頭的目錄或檔案

三、檔案操作命令

3.1 檔案操作【增,刪,改,查】

3.1.1 新建檔案【增】touch

命令:touch 檔名
示例:在當前目錄建立一個名為aa.txt的檔案        touch  aa.txt

3.1.2 刪除檔案 【刪】 rm

命令:rm -rf 檔名

3.1.3 修改檔案【改】 vi或vim

【vi編輯器的3種模式】
    基本上vi可以分為三種狀態,分別是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能區分如下:
1) 命令列模式command mode)
      控制螢幕游標的移動,字元、字或行的刪除,查詢,移動複製某區段及進入Insert mode下,或者到 last line mode。
      命令列模式下的常用命令:
      【1】控制游標移動:↑,↓,j
      【2】刪除當前行:dd 
      【3】查詢:/字元
      【4】進入編輯模式:i o a
      【5】進入底行模式::
      
2) 編輯模式(Insert mode)
      只有在Insert mode下,才可以做文字輸入,按「ESC」鍵可回到命令列模式。
      編輯模式下常用命令:
      【1】ESC 退出編輯模式到命令列模式;
      
3) 底行模式(last line mode)
     將檔案儲存或退出vi,也可以設定編輯環境,如尋找字串、列出行號……等。
     底行模式下常用命令:
     【1】退出編輯:   :q
     【2】強制退出:   :q!
     【3】儲存並退出:  :wq

開啟檔案

命令:vi 檔名
示例:開啟當前目錄下的aa.txt檔案     vi aa.txt 或者 vim aa.txt

注意:使用vi編輯器開啟檔案後,並不能編輯,因為此時處於命令模式,點選鍵盤i/a/o進入編輯模式。

編輯檔案

使用vi編輯器開啟檔案後點擊按鍵:i ,a或者o即可進入編輯模式。

i:在游標所在字元前開始插入
a:在游標所在字元後開始插入
o:在游標所在行的下面另起一新行插入

儲存或者取消編輯

儲存檔案:

第一步:ESC  進入命令列模式
第二步::     進入底行模式
第三步:wq     儲存並退出編輯

取消編輯:

第一步:ESC  進入命令列模式
第二步::     進入底行模式
第三步:q!     撤銷本次修改並退出編輯

3.1.4 檔案的檢視【查】

檔案的檢視命令:cat/more/less/tail

cat:看最後一屏

示例:使用cat檢視/etc/sudo.conf檔案,只能顯示最後一屏內容
cat sudo.conf

more:百分比顯示

示例:使用more檢視/etc/sudo.conf檔案,可以顯示百分比,回車可以向下一行,空格可以向下一頁,q可以退出檢視
more sudo.conf

less:翻頁檢視

示例:使用less檢視/etc/sudo.conf檔案,可以使用鍵盤上的PgUp和PgDn向上    和向下翻頁,q結束檢視
less sudo.conf

tail:指定行數或者動態檢視

示例:使用tail -10 檢視/etc/sudo.conf檔案的後10行,Ctrl+C結束  
tail -10 sudo.conf

四、壓縮檔案操作

4.1 打包和壓縮

Windows的壓縮檔案的副檔名  .zip/.rar
linux中的打包檔案:aa.tar      
linux中的壓縮檔案:bb.gz    
linux中打包並壓縮的檔案:.tar.gz

Linux中的打包檔案一般是以.tar結尾的,壓縮的命令一般是以.gz結尾的。
而一般情況下打包和壓縮是一起進行的,打包並壓縮後的檔案的字尾名一般.tar.gz。

命令:tar -zcvf 打包壓縮後的檔名 要打包的檔案
其中:z:呼叫gzip壓縮命令進行壓縮
  c:打包檔案
  v:顯示執行過程
  f:指定檔名
  
示例:打包並壓縮/usr/tmp 下的所有檔案 壓縮後的壓縮包指定名稱為xxx.tar
tar -zcvf ab.tar aa.txt bb.txt 
或:tar -zcvf ab.tar  *

4.2 解壓

命令:tar [-zxvf] 壓縮檔案    
其中:x:代表解壓
示例:將/usr/tmp 下的ab.tar解壓到當前目錄下

示例:將/usr/tmp 下的ab.tar解壓到根目錄/usr下
tar -xvf ab.tar -C /usr------C代表指定解壓的位置

五、其他命令

5.1 檢視當前目錄:pwd

命令:pwd     檢視當前目錄路徑

5.2 檢視程序:ps -ef

命令:ps -ef    檢視所有正在執行的程序

5.3 結束程序:kill

命令:kill pid 或者 kill -9 pid(強制殺死程序)           pid:程序號

5.4 搜尋字串:grep

命令:grep 要搜尋的字串 要搜尋的檔案
示例:搜尋/etc/sudo.conf檔案中包含字串to的行
    grep to /etc/sudo.conf

示例:搜尋/etc/sudo.conf檔案中包含字串to的行 to要高亮顯示
    grep to /etc/sudo.conf --color

5.5 管道命令:|

命令:|   將前一個命令的輸出作為本次命令的輸入
示例:檢視當前系統中所有的程序中包括system字串的程序
    ps -ef | grep system

5.6 網路通訊命令:

ifconfig:檢視網絡卡資訊

命令:ifconfig 或 ifconfig | more

ping:檢視與某臺機器的連線情況

命令:ping ip

netstat -an:檢視當前系統埠

命令:netstat -an

搜尋指定埠
命令:netstat -an | grep 8080

5.7 配置網路

命令:setup

5.8 重啟網路

命令:service network restart

5.9 切換使用者

命令:su - 使用者名稱

5.10 關閉防火牆

命令:chkconfig iptables off

或者:

 iptables -L;
 iptables -F;
 service iptables stop

5.11 修改檔案許可權

命令:chmod 777

六、Linux專案部署

6.1 安裝jdk1.8

先解除安裝open-jdk

java -version
rpm -qa | grep java

rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64

開始安裝:
mkdir /usr/local/src/java
rz 上傳jdk tar包
tar -zxvf jdk-8u181-linux-x64.tar.gz

yum install glibc.i686

配置環境變數:
 vi /etc/profile

 在末尾行新增
  #set java environment
  JAVA_HOME=/usr/local/src/jdk8/jdk1.8.0_181
  CLASSPATH=.:$JAVA_HOME/lib.tools.jar
  PATH=$JAVA_HOME/bin:$PATH
  export JAVA_HOME CLASSPATH PATH
  
儲存退出
source /etc/profile  使更改的配置立即生效
java -version  檢視JDK版本資訊,如果顯示出1.8證明成功

6.2 安裝MySQL5.6

6.2.1 上傳MySQL5.6的tar包

建立目錄:mkdir /usr/local/src/mysql5.6

上傳:MySQL-5.6.34-1.rhel5.x86_64.rpm-bundle.tar 到上面的目錄中

6.2.2 安裝

第一步:解壓

     命令:tar -xvf MySQL-5.6.34-1.rhel5.x86_64.rpm-bundle.tar

第二步:檢測是否已經安裝了mysql

     命令:rpm -qa | grep mysql   

     如果已經安裝了,將其解除安裝,如:

     rpm -e --nodeps  mysql-libs-5.1.71-1.el6.x86_64

第三步:安裝MySQL的服務端

     命令:rpm -ivh MySQL-server-5.6.34-1.rhel5.x86_64.rpm

第四步:安裝MySQL的客戶端

     命令:rpm -ivh MySQL-client-5.6.34-1.rhel5.x86_64.rpm

第五步:檢視MySQL服務執行狀態

     命令:service mysql status

第六步:啟動MySQL服務

     命令:service mysql start

第七步:使用root賬號登入mysql

在安裝mysql server時有句提示:

注意:這個密碼是不安全的,所有需要修改初始密碼。

  1. 使用密碼登入mysql賬號:mysql -uroot -p
  2. 修改root密碼:SET PASSWORD = PASSWORD('root');

6.2.3 開機自動啟動設定

加入到系統服務:

chkconfig --add mysql

自動啟動:

chkconfig mysql on

查詢列表:

chkconfig

說明:都沒關閉(off)時是沒有自動啟動。

6.2.4 開啟遠端訪問

登入:

mysql -uroot –proot

設定遠端訪問(使用root密碼):

grant all privileges on *.* to 'root' @'%' identified by 'root';

flush privileges;

退出mysql,在centos環境下開啟3306防火牆

/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

/etc/rc.d/init.d/iptables save

/etc/init.d/iptables status

6.3 安裝tomcat部署專案

準備工作:將web專案打成war包,改名為ROOT.war

6.3.1 建立ucenter使用者

一般情況下,釋出應用程式都不是使用root使用者的,需要建立一個普通使用者來發布程式;

建立ucenter使用者:

useradd -d /ucenter ucenter

設定密碼:

passwd ucenter (密碼 ucenter)

切換使用者:

su - ucenter

6.3.2 安裝Tomcat

tomcat只要解壓就可以使用。

1、建立web目錄
mkdir /ucenter/web

2、上傳apache-tomcat-7.0.57.tar.gz

3、解壓:tar -xvf apache-tomcat-7.0.57.tar.gz

4、重新命名:mv apache-tomcat-7.0.57 itcast-usermanage

5、啟動tomcat:
     cd itcast-usermanage/bin/
     ./startup.sh 或者 sh startup.sh

6、檢視日誌:
     tail -f ../logs/catalina.out

7、檢視效果 http://192.168.0.160:8080/

發現無法訪問:

8、防火牆開啟 8080 埠
     /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

     /etc/rc.d/init.d/iptables save

9、安裝成功

6.3.3 部署使用者管理專案

1、上傳usermanage.sql和ROOT.war到/ucenter/web

2、執行資料庫指令碼

     cat user_manager.sql | mysql -uroot -p123456

3、部署web程式

3.1 刪除webapps下的所有檔案

     cd /ucenter/web/usermanage/webapps

     rm -rf *

3.2 拷貝ROOT.war到webapps

     cp /ucenter/web/ROOT.war .

3.3 重新啟動tomcat

     cd ../bin/

     sh startup.sh && tail -f ../logs/catalina.out

3.4 啟動瀏覽器測試

注意事項:Centos環境下部署專案中文亂碼問題解決方案

    今天在一臺新的CentOS機器上使用c3p0連線池操作mysql資料庫出現中文亂碼問題,具體表現為:查詢時無中文亂碼問題,寫資料時中文亂碼,查看了機器上資料庫字符集也是UTF8,應該不會出現中文亂碼才對,最後在c3p0配置檔案中 jdbcUrl後加上:?useUnicode=true&characterEncoding=UTF8 中文就不會亂碼了。

【C3P0配置檔案】

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
  <default-config>
    <property name="driverClass">com.mysql.jdbc.Driver</property>
	<property name="jdbcUrl">jdbc:mysql://localhost:3306/user_manager_yun6?useUnicode=true&amp;characterEncoding=UTF8 </property>
	<property name="user">root</property>
	<property name="password">root</property>
	<property name="acquireIncrement">2</property>
	<property name="initialPoolSize">5</property>
	<property name="minPoolSize">1</property>
	<property name="maxPoolSize">5</property>
  </default-config>
</c3p0-config>

6.4 Linux下使用FastDFS

單節點FastDFS

整個安裝過程非常複雜,很容易出錯,建議進行多次備份。

我們這裡不打算安裝多臺虛擬機器,因此會把tracker和storage都安裝在一起。

6.4.1 安裝gcc

GCC用來對C語言程式碼進行編譯執行,使用yum命令安裝:

yum -y install gcc

後面會用到解壓命令(unzip),所以這裡可以用yum把unzip 也裝一下

yum install -y unzip zip

6.4.2 安裝libevent

yum -y install libevent

6.4.3 安裝libfastcommon-master

解壓剛剛上傳的libfastcommon-master.zip
unzip libfastcommon-master.zip

進入解壓完成的目錄
cd libfastcommon-master

編譯並且安裝:
./make.sh 
./make.sh install

6.4.4 安裝fastdfs

tar -zxvf FastDFS_v5.08.tar.gz
cd FastDFS
./make.sh
./make.sh install

如果安裝成功,會看到/etc/init.d/下看到提供的指令碼檔案:

ll /etc/init.d/ | grep fdfs

  • fdfs_trackerd 是tracker啟動指令碼

  • fdfs_storaged 是storage啟動指令碼

能夠在 /etc/fdfs/ 目錄下看到預設的配置檔案模板:

ll /etc/fdfs/

  • tarcker.conf.sample 是tracker的配置檔案模板

  • storage.conf.sample 是storage的配置檔案模板

  • client.conf.sample 是客戶端的配置檔案模板

6.4.5 配置並啟動tracker服務

1)首先將模板檔案複製

cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf

2)修改複製後的配置檔案:

vim /etc/fdfs/tracker.conf 

# 修改的內容如下:

base_path=/專案名/tracker                 # 儲存日誌和資料的根目錄

3)新建目錄:

mkdir -p /專案名/tracker

注意:關閉防火牆:

chkconfig iptables off

4)啟動和停止

service fdfs_trackerd start # 啟動fdfs_trackerd服務,停止用stop

檢查FastDFS Tracker Server是否啟動成功:

ps -ef | grep fdfs_trackerd

設定tracker服務開機啟動:

chkconfig fdfs_trackerd on

6.4.6 配置並啟動storage服務

1)首先將模板檔案複製

cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf

2)修改複製後的配置檔案:

vim /etc/fdfs/storage.conf

# 修改的內容如下:

base_path=/專案名/storage                 # 資料和日誌檔案儲存根目錄 

store_path0=/專案名/storage           # 第一個儲存目錄 

tracker_server=192.168.56.101:22122       #  tracker伺服器IP和埠 

3)新建目錄:

mkdir -p /專案名/storage

注意關閉防火牆: chkconfig iptables off

4)啟動和停止

service fdfs_storaged start  # 啟動fdfs_storaged服務,停止用stop

設定storage服務開機啟動:

chkconfig fdfs_storaged on

ps -ef | grep fdfs

6.5 安裝fastdfs-nginx-module

6.5.1 解壓

tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

6.5.2 修改config

1)進入src目錄

cd fastdfs-nginx-module/src/

2)編輯config

vim config

使用以下底行命令:

:%s+/usr/local/+/usr/+g

將所有的/usr/local替換為 /usr,這個才是正確的目錄:

6.5.3 配置nginx與FastDFS關聯配置檔案

複製 fastdfs-nginx-module 原始碼中的配置檔案到/etc/fdfs 目錄, 並修改

cp /usr/local/專案名/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

vi /etc/fdfs/mod_fastdfs.conf

修改以下配置:

connect_timeout=10                       # 客戶端訪問檔案連線超時時長(單位:秒)

tracker_server=192.168.56.101:22122    # tracker服務IP和埠

url_have_group_name=true                # 訪問連結字首加上組名

store_path0=/leyou/storage            # 檔案儲存路徑

複製 FastDFS 的部分配置檔案到/etc/fdfs 目錄

cd /usr/local/專案名/FastDFS/conf/
cp http.conf mime.types /etc/fdfs/

6.6 安裝Nginx的外掛

6.6.1 如果沒有安裝過nginx

1、安裝nginx的依賴庫

yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

2、解壓安裝包

tar -zxvf nginx-1.10.0.tar.gz

3、配置nginx安裝包,並指定fastdfs-nginx-model

cd nginx-1.10.0

./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/usr/local/leyou/fastdfs-nginx-module/src

注意:在執行./configure配置nginx引數的時候,需要將fastdfs-nginx-moudle原始碼作為模組編譯進去。

4、編譯並安裝

make && make install

6.6.2 如果已經安裝過nginx

1、 進入nginx目錄:

cd /usr/local/專案名/nginx-1.10.0/

2、 配置FastDFS 模組

./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/usr/local/專案名/fastdfs-nginx-module/src

注意:這次配置時,要新增fastdfs-nginx-moudle模組

3、編譯,注意,這次不要安裝(install)

make

4、替換nginx二進位制檔案:

備份:

mv /usr/bin/nginx /usr/bin/nginx-bak

用新編譯的nginx啟動檔案替代原來的:

cp objs/nginx /usr/bin/

6.6.3 啟動nginx

配置nginx整合fastdfs-module模組

我們需要修改nginx配置檔案,在/opt/nginx/config/nginx.conf檔案中:

vim  /opt/nginx/conf/nginx.conf

將檔案中,原來的server 80{ ...} 部分程式碼替換為如下程式碼:

server {
    listen       80;
    server_name  image.專案名.com;
	# 監聽域名中帶有group的,交給FastDFS模組處理
    location ~/group([0-9])/ {
        ngx_fastdfs_module;
    }
    location / {
        root   html;
        index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

啟動nginx:

nginx	# 啟動nginx

nginx -s stop	# 停止nginx

nginx -s reload	# 重新載入配置檔案

# 可通過ps -ef | grep nginx檢視nginx是否已啟動成功

6.6.4 設定nginx開機啟動

建立一個開機啟動的指令碼:

vim /etc/init.d/nginx

新增以下內容:

#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig:   - 85 15
# description:  NGINX is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/bin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

make_dirs() {
   # make required directories
   user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
   if [ -n "$user" ]; then
      if [ -z "`grep $user /etc/passwd`" ]; then
         useradd -M -s /bin/nologin $user
      fi
      options=`$nginx -V 2>&1 | grep 'configure arguments:'`
      for opt in $options; do
          if [ `echo $opt | grep '.*-temp-path'` ]; then
              value=`echo $opt | cut -d "=" -f 2`
              if [ ! -d "$value" ]; then
                  # echo "creating" $value
                  mkdir -p $value && chown -R $user $value
              fi
          fi
       done
    fi
}

start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    make_dirs
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    configtest || return $?
    stop
    sleep 1
    start
}

reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}

force_reload() {
    restart
}

configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
    status $prog
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac

修改檔案許可權,並加入服務列表

# 修改許可權
chmod 777 /etc/init.d/nginx 
# 新增到服務列表
chkconfig --add /etc/init.d/nginx 

設定開機啟動

chkconfig nginx on

6.7 安裝Elasticsearch

需要虛擬機器JDK1.8及以上

6.7.1 新建一個使用者leyou

出於安全考慮,elasticsearch預設不允許以root賬號執行。

建立使用者:

useradd leyou

設定密碼:

passwd leyou

切換使用者:

su - leyou

6.7.2 上傳安裝包,並解壓

我們將安裝包上傳到:/home/leyou目錄

解壓縮:

tar -zxvf elasticsearch-6.2.4.tar.gz

我們把目錄重新命名:

mv elasticsearch-6.3.0/ elasticsearch

進入,檢視目錄結構:

6.7.3 修改配置

我們進入config目錄:cd config

需要修改的配置檔案有兩個:

1、jvm.options

Elasticsearch基於Lucene的,而Lucene底層是java實現,因此我們需要配置jvm引數。

編輯jvm.options:

vim jvm.options

預設配置如下:

-Xms1g
-Xmx1g

記憶體佔用太多了,我們調小一些:

-Xms512m
-Xmx512m

2、elasticsearch.yml

vim elasticsearch.yml

修改資料和日誌目錄:

path.data: /home/leyou/elasticsearch/data # 資料目錄位置
path.logs: /home/leyou/elasticsearch/logs # 日誌目錄位置

我們把data和logs目錄修改指向了elasticsearch的安裝目錄。但是這兩個目錄並不存在,因此我們需要創建出來。

進入elasticsearch的根目錄,然後建立:

mkdir data
mkdir logs

修改繫結的ip:

network.host: 0.0.0.0 # 繫結到0.0.0.0,允許任何ip來訪問

預設只允許本機訪問,修改為0.0.0.0後則可以遠端訪問

6.7.4 執行

進入elasticsearch/bin目錄,可以看到下面的執行檔案:

然後輸入命令:

./elasticsearch

或者後臺執行:

./elasticsearch -d

6.7.5 錯誤1:核心過低

修改elasticsearch.yml檔案,在最下面新增如下配置: 然後重啟

bootstrap.system_call_filter: false

6.7.6 錯誤2:檔案許可權不足

我們用的是leyou使用者,而不是root,所以檔案許可權不足。

首先用root使用者登入。直接輸入exit命令

然後修改配置檔案:

vim /etc/security/limits.conf

新增下面的內容:

* soft nofile 65536

* hard nofile 131072

* soft nproc 4096

* hard nproc 4096

6.7.7 錯誤3:執行緒數不夠

[1]: max number of threads [1024] for user [leyou] is too low, increase to at least [4096]

繼續修改配置:

vim /etc/security/limits.d/90-nproc.conf 

修改下面的內容:

* soft nproc 1024

改為

* soft nproc 4096

6.7.8 錯誤4:程序虛擬記憶體

[3]: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

vm.max_map_count:限制一個程序可以擁有的VMA(虛擬記憶體區域)的數量,繼續修改配置檔案, :

vim /etc/sysctl.conf 

新增下面內容:

vm.max_map_count=655360

然後執行命令:

sysctl -p

6.7.9 重啟終端視窗

所有錯誤修改完畢,一定要重啟你的 Xshell終端,否則配置無效。

6.8 安裝RabbitMQ

cd /usr/local/myapp

mkdir rabbitmq

cd rabbitmq

6.8.1 安裝Erlang

1、線上安裝

yum install esl-erlang_17.3-1~centos~6_amd64.rpm

yum install esl-erlang-compat-R14B-1.el6.noarch.rpm

2、離線安裝

依次執行命令:

1)rpm -ivh esl-erlang-17.3-1.x86_64.rpm --force --nodeps

2)rpm -ivh esl-erlang_17.3-1~centos~6_amd64.rpm --force --nodeps

3)rpm -ivh esl-erlang-compat-R14B-1.el6.noarch.rpm --force --nodeps

6.8.2 安裝RabbitMQ

安裝:

rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm

6.8.3 設定配置檔案

cp /usr/share/doc/rabbitmq-server-3.4.1/rabbitmq.config.example
/etc/rabbitmq/rabbitmq.config

開啟使用者遠端訪問

vi /etc/rabbitmq/rabbitmq.config

注意要去掉後面的逗號。

6.8.4 啟動、停止

service rabbitmq-server start

service rabbitmq-server stop

service rabbitmq-server restart

6.8.5 開啟web介面管理工具

rabbitmq-plugins enable rabbitmq_management

service rabbitmq-server restart

6.8.6 設定開機啟動

chkconfig rabbitmq-server on

6.8.7 防火牆開放15672埠

/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT

/etc/rc.d/init.d/iptables save

6.9 redis安裝和配置

6.9.1 安裝

解壓