當前位置:首頁 » 編程軟體 » centos腳本編寫

centos腳本編寫

發布時間: 2025-03-12 21:24:46

『壹』 CentOS開機自動運行自己的腳本詳解

記錄這個事情是上次完成之後,今天要新加一個文件夾,一時之間忘記以前怎麼做了,因為有幾種方法,起碼我知道三種方法,這里記錄一筆以前的做法,覺得最簡單:

操作系統:CentOS-5.2

目標:開機自動掛載區域網中windows的共享目錄

一、root許可權編輯/etc/rc.d/rc.local

Shell代碼

su cd /etc/rc.d/ vi rc.local

二、在這個文件加上你要執行的腳本,全部內容如下:

Shell代碼

#!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local mount //192.168.0.3/data2-1 /mnt/data2-1 -o username=un,password=123 mount //192.168.0.3/data2-2 /mnt/data2-2 -o username=un,password=123 mount //192.168.0.3/data2-3 /mnt/data2-3 -o username=un,password=123 mount //192.168.0.3/data2-4 /mnt/data2-4 -o username=un,password=123 mount //192.168.0.3/data2-5 /mnt/data2-4 -o username=un,password=123

提示:這里的做法很不成熟,希望不要這樣,最好自己寫個腳本文件在這里來調用,結構更清晰,但是要注意到是把要執行的命令作為一個參數傳遞給su。

另外復習一個VI編輯命令-拷貝

yy

p

三、雖然搞定,還是補充一下

Linux在啟動時,會自動執行/etc/rc.d目錄下的初始化程序,因此我們可以把啟動任務放到該目錄下,有下列辦法:

方案一:

比較簡單,就是上面的做法,/etc/rc.d/目錄下的初始化程序很多,rc.local是在完成所有初始化之後執行的,所以在這里做手腳很合適。

方案二:

init.d目錄下都為可執行程序,他們其實是服務腳本,按照一定格式編寫,Linux 在啟動時會自動執行,類似Windows下的服務。

1、編寫如下面的腳本simpleTest:

Shell代碼

#!/bin/bash #chkconfig:2345 80 05 --指定在哪幾個級別執行,0一般指關機,6指的是重啟,其他為正常啟動。80為啟動的優先順序,05為關閉的優先順序別 #description:simple example service RETVAL=0 start(){ #啟動服務的入口函數 echo "simple example service is started..." } stop(){ #關閉服務的入口函數 echo "simple example service is stoped..." } #使用case選擇 case $1 in start) start ;; stop) stop ;; *) echo "error choice ! please input start or stop";; esac exit $RETVA

3、運行chmod +x /etc/rc.d/init.d/simpleTest,使之可直接執行

4、運行chkconfig --add simpleTest,把該服務添加到配置當中

5、運行chkconfig --list simpleTest,可以查看該服務進程的狀態

方案三、目的是掛載共享目錄,所以可以在/etc/fstab中加上

//192.168.0.3/data2-1 /mnt/data2-1 nfs username=un,password=123 0 0

非常不好意思,方案二中雖然腳本可以運行

# ./simpleTest start

simple example service is started...

但是我在第4步出現

# chkconfig --add simpleTest

在 simpleTest 服務中讀取信息時出錯:沒有那個文件或目錄

沒有進一步解決抱歉。


『貳』 Centos8 設置開機自啟動腳本

CentOS 8 系統中,傳統的 /etc/rc.local 文件已不再自動執行開機腳本,需要通過設置 rc.local 服務使其開機自啟動。以下是設置步驟:

在CentOS 8 中,為確保開機時執行自定義腳本,需要首先理解rc.local服務的配置。首先,檢查默認的 /etc/rc.local 狀態,確認它是 /etc/rc.d/rc.local 的符號鏈接。

接著,編輯 /etc/rc.local 並添加你需要的開機啟動命令,確保給予可執行許可權。例如,創建一個在 /tmp 的 txt 文件:

1. 打開編輯器,添加一行啟動命令,如:`touch /tmp/mytxt.txt`

2. 授予命令執行許可權:`chmod +x /etc/rc.local`

然後,配置 rc.local 服務,確保 service 文件包含必要的啟動指令,例如:

4. 啟動 rc-local 服務:`systemctl start rc-local`

5. 為了開機自動執行,設置服務開機啟動:`systemctl enable rc-local`

測試配置:重啟系統後,檢查/tmp 文件夾中是否生成了 txt 文件。如果成功,說明腳本沒有問題。刪除該文件後再次重啟,確認文件在下次啟動時仍存在,以驗證 rc-local 服務配置正常。

對於 CentOS 7 中的 Nginx 安裝,需要額外指定 yum 倉庫來獲取 Nginx 包。首先,創建一個 nginx.repo 文件,配置倉庫地址,然後使用 yum 安裝 Nginx 並啟動它。Nginx 的配置文件位於 /etc/nginx 目錄下,具體如下:

1. 安裝 Nginx:`yum install nginx`

2. 配置文件位置:/etc/nginx/nginx.conf 和 /etc/nginx/conf.d/default.conf

3. 啟動、停止和檢查 Nginx 狀態使用 systemctl 命令。

4. 訪問 Nginx:在瀏覽器中輸入伺服器 IP 地址(默認80埠,如 `http://ip`)。

完成以上步驟後,CentOS 7 的 Nginx 安裝就完成了。

『叄』 為什麼centos應用程序有編程

1. 為什麼要學習 shell 編程

  • Linux 運維工程師在進行伺服器集群管理時,需要編寫 Shell 程序來進行伺服器管理。

  • 對於 JavaEE 和 Python 程序員來說,工作的需要,你的老大會要求你編寫一些 Shell 腳本進行程序或者是伺服器的維護,比如編寫一個定時備份資料庫的腳本。

  • 對於大數據程序員來說,需要編寫 Shell 程序來管理集群。

  • 2. shell 是什麼

    示意圖:
    圖1

『肆』 CentOS使用腳本管理服務的詳解

1、使用工具:chkconfig 管理/etc/rc.d/init.d或/etc/init.d/目錄下的服務啟動腳本

要在服務啟動腳本開頭添加兩行:

# chkconfig: 2345 88 12

# description: XXXXXXXXX XXXXXX

這樣就可以使用工具:chkconfig 來管理服務啟動腳本了。

使用工具:chkconfig 工具的好處:

沒有使用該工具,我們要讓一個服務在2、3、4、5級別上都運行,在其它級別上都不運行。要手動設置很多符號連接:

在/etc/rc.d/rc1.d 執行:[root@node2 rc1.d]# ln -sv K12nrped ../init.d/nrped

在/etc/rc.d/rc2.d 執行:[root@node2 rc2.d]# ln -sv S88nrped ../init.d/nrped

在/etc/rc.d/rc3.d 執行:[root@node2 rc3.d]# ln -sv S88nrped ../init.d/nrped

在/etc/rc.d/rc4.d 執行:[root@node2 rc4.d]# ln -sv S88nrped ../init.d/nrped

在/etc/rc.d/rc5.d 執行:[root@node2 rc5.d]# ln -sv S88nrped ../init.d/nrped

在/etc/rc.d/rc6.d 執行:[root@node2 rc6.d]# ln -sv K12nrped ../init.d/nrped

添加這些符號鏈接之後。運行級別改變時,該服務就會授腳本 rc 的控制。------> rc 腳本就會根據對應運行級別目錄(/etc/rc.d/rc$runlevel.d)的符號標識:S、K 關閉、啟動對應的服務。這樣就實現了設置一個服務是否在一個運行級別上運行。

工具:chkconfig 就會根據服務運行腳本的 #chkconfig 行來,自動設置上述的符號鏈接。

[[email protected]]#chkconfigon

就會根據:# chkconfig: 2345 88 12 創建各運行級別上的符號鏈接。

2、為了使用工具: service 管理服務 腳本最少需要接收 start 和 stop 選項;

服務啟動腳本要根據用戶輸入的選項:

stop -----> 關閉服務

start -----> 啟動服務

reload -----> 告訴程序重讀配置文件,改變程序的運行狀態

restart ----> 重新啟動服務

3、Lock directory for RedHat / SuSE

RedHat 管理服務的一種機制,要在/var/lock/subsys/目錄下創建一個鎖文件。

[[email protected]]#vim/etc/init.d/nrped

#!/bin/bash

#chkconfig:23458911

#description:NRPEDAENON

NRPE=/usr/local/nagios/bin/nrpe

OPTIONS="-c/etc/nagios/nrpe.cfg-d"

lockfile=/var/lock/subsys/nrped

prog=nrped

RETVAL=0

./etc/rc.d/init.d/functions

start(){

echo-n$"Starting$prog:"

daemon$NRPE$OPTIONS

RETVAL=$?

echo

[$RETVAL=0]&&touch${lockfile}

return$RETVAL

}

stop(){

echo-n$"Stopping$prog:"

killproc-d-10$NRPE

RETVAL=$?

echo

[RETVAL=0]&&rm-f${lockfile}

}

reload(){

echo-n$"Reloading$prog:"

killproc$NRPE-HUP

echo

}

case"$1"in

start)

start

;;

stop)

stop

;;

restart)

stop

start

;;

reload)

reload

;;

status)

status$NRPE

;;

*)

echo"Usage:$0start|stop|restart|reload|status"

;;

esac

exit0

『伍』 CentOS7 設置開機自啟動腳本

兩種實現方式:
方法一: (rc.local)
1、因為在 centos7 中 /etc/rc.d/rc.local 的許可權被降低了,所以需要賦予其可執行權

2、賦予腳本可執行許可權
假設 /usr/local/sca/start.sh 是你的腳本路徑,給予執行許可權

3、打開 /etc/rc.d/rc.local 文件,在末尾增加如下內容

方法二: (chkconfig)
1、將腳本移動到 /etc/rc.d/init.d 目錄下

2、增加腳本的可執行許可權

3、添加腳本到開機自動啟動項目中

chkconfig 啟動腳本規范 在腳本開頭加入下面內容:

注意:不添加以上內容的話添加啟動項時會提示service myservice does not support chkconfig
Linux啟動優先順序:

熱點內容
雲伺服器掛qq常用ip 發布:2025-03-13 00:52:08 瀏覽:99
大秦帝國之崛起下載緩存 發布:2025-03-13 00:34:31 瀏覽:357
xp系統f盤加密 發布:2025-03-13 00:33:42 瀏覽:129
如何讓刪除的微信恢復出廠設置密碼 發布:2025-03-13 00:21:48 瀏覽:254
七殺腳本 發布:2025-03-13 00:19:28 瀏覽:762
建立多級文件夾 發布:2025-03-13 00:13:34 瀏覽:725
存儲器價格 發布:2025-03-13 00:12:14 瀏覽:761
編譯原理上下文無關文法例題 發布:2025-03-13 00:12:12 瀏覽:95
微視頻腳本怎麼寫 發布:2025-03-12 23:59:54 瀏覽:611
蘋果手機文件夾管理 發布:2025-03-12 23:59:12 瀏覽:100