溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

非常實(shí)用的Tomcat啟動(dòng)腳本實(shí)現(xiàn)方法

發(fā)布時(shí)間:2020-10-15 15:06:58 來(lái)源:腳本之家 閱讀:142 作者:臥龍小蛋蛋 欄目:服務(wù)器

前言

有這樣一個(gè)場(chǎng)景,公司為了安全起見(jiàn),需要對(duì)所有登錄Linux服務(wù)器做安全限制,要求除了管理員其他要登錄linux服務(wù)器的員工不能用最高權(quán)限賬號(hào)登錄,要?jiǎng)?chuàng)建新的用戶(hù),對(duì)目錄及文件權(quán)限做出控制,只能對(duì)需要操作的目錄允許讀,寫(xiě),執(zhí)行權(quán)限,其他目錄只有讀的權(quán)限,并且所有tomcat不能直接在bin中用startup.sh,shutdown.sh進(jìn)行啟動(dòng)和停止,要通過(guò)寫(xiě)shell腳本進(jìn)行此操作,也就是說(shuō)有兩個(gè)步驟,創(chuàng)建用戶(hù)并設(shè)置權(quán)限,寫(xiě)tomcat啟動(dòng)腳本,下面我們就完成這兩個(gè)步驟。

1.首先我們就來(lái)創(chuàng)建一個(gè)普通用戶(hù)。

groupadd tomcat #加組 
useradd -g tomcat -s /usr/sbin/nologin tomcat #向組加用戶(hù) 
usermod -L tomcat #鎖定密碼,使密碼無(wú)效 
passwd tomcat # 設(shè)置密碼 

通過(guò)這四步,我們就把普通用戶(hù)創(chuàng)建好了,在創(chuàng)建用戶(hù)時(shí),我們是先創(chuàng)建的組,組創(chuàng)建完成后創(chuàng)建用戶(hù)并加入該組。

用戶(hù)創(chuàng)建完成后,就開(kāi)始給用戶(hù)設(shè)置權(quán)限

chown -R tomcat:tomcat /data #分配權(quán)限給用戶(hù) 

這就是給tomcat這個(gè)用戶(hù)設(shè)置了可以操作data目錄及其子目錄下的權(quán)限,-R就代表該目錄及其級(jí)聯(lián)子目錄。

[root@localhost data]# ls -l 
total 0 
drwxr-xr-x. 4 tomcat tomcat 79 May 20 08:03 tomcat 
[root@localhost data]# 

 此時(shí)我們通過(guò)ls -l 命令就可以看到data目錄已經(jīng)屬于tomcat用戶(hù),且擁有查看,寫(xiě)入,執(zhí)行權(quán)限

2.完成了用戶(hù)創(chuàng)建后,我們就要開(kāi)始完成tomcat啟動(dòng)腳本。

如代碼所示:

#!/bin/bash 
tomcat_home=/data/tomcat/tomcat-8484 
SHUTDOWN=$tomcat_home/bin/shutdown.sh 
STARTTOMCAT=$tomcat_home/bin/startup.sh 
case $1 in 
start) 
echo "啟動(dòng)$tomcat_home" 
$STARTTOMCAT 
cd /data/tomcat/tomcat-8484/logs 
tail -f catalina.out 
;; 
stop) 
echo "關(guān)閉$tomcat_home" 
#$SHUTDOWN 
netstat -anp | grep 8484| grep -v grep | awk '{print $7}' | sed -e 's//java//g' | sed -e 's/^/kill -9 /g' | sh 
#pidlist=`ps -ef |grep tomcat |grep -v "grep"|awk '{print $2}'` 
#kill -9 $pidlist 
#刪除日志文件,如果你不先刪除可以不要下面一行 
#rm $tomcat_home/logs/* -rf 
#刪除tomcat的臨時(shí)目錄 
#rm $tomcat_home/work/* -rf 
;; 
restart) 
echo "關(guān)閉$tomcat_home" 
$SHUTDOWN 
#pidlist=`ps -ef |grep tomcat |grep -v "grep"|awk '{print $2}'` 
#pidlist=`netstat -anp |grep 8484 |grep -v "grep"|awk '{print $2}'` 
#netstat -anp | grep 8484| grep -v grep | awk '{print $7}' | sed -e 's//java//g' | sed -e 's/^/kill -9 /g' | sh 
#kill -9 $pidlist 
sleep 5 
echo "啟動(dòng)$tomcat_home" 
$STARTTOMCAT 
#看啟動(dòng)日志 
#tail -f $tomcat_home/logs/catalina.out 
;; 
logs) 
cd /data/tomcat/tomcat-8484/logs 
tail -f catalina.out 
;; 
esac 

上面代碼就是tomcat啟動(dòng)腳本,首先我們要?jiǎng)?chuàng)建一個(gè)文本文件,然后將后綴名變成.sh,這里我是用端口號(hào)為8484的tomcat作為例子,從腳本文件中可以看到,總共只需對(duì)自己tomcat位置和日志位置進(jìn)行自定義改動(dòng)后就可以使用,總共有四個(gè)命令,start,stop,restart,logs。

腳本文件創(chuàng)建好后,只需將它放入你的服務(wù)器中,位置可以自己隨意選擇,我這里就把它放在了tomcat下bin目錄中。

腳本文件放入服務(wù)器后其實(shí)還不能使用,會(huì)有兩個(gè)問(wèn)題待解決,一個(gè)是格式問(wèn)題,一個(gè)是權(quán)限問(wèn)題。因?yàn)槲覀兪俏谋疚募?chuàng)建的,其格式是文本格式,我們要改成unix格式,所以要進(jìn)行如下設(shè)置

sed -i "s/ 
//" tomcat-8484.sh #設(shè)置腳本文件為unix格式 

完成了格式設(shè)置后就要為該腳本文件設(shè)置權(quán)限,因?yàn)閘inux默認(rèn)文件的權(quán)限是drwxr-xr-x,即所有運(yùn)行權(quán)限賦予文件所有者也就是系統(tǒng)管理員(當(dāng)前我是用系統(tǒng)管理員登錄),把讀和運(yùn)行的權(quán)限賦予群組用戶(hù),把讀的權(quán)限賦予其他用戶(hù),所以我們要對(duì)腳本文件權(quán)限進(jìn)行重新設(shè)置。

chmod 777 ./tomcat-8484.sh 

chmod命令就是改變權(quán)限的命令,這個(gè)777是什么意思呢?

在Linux系統(tǒng)中,文件或目錄的權(quán)限又分為3種:只讀、只寫(xiě)、可執(zhí)行。

非常實(shí)用的Tomcat啟動(dòng)腳本實(shí)現(xiàn)方法

依照上面的表格,權(quán)限組合就是對(duì)應(yīng)權(quán)限值求和,如下:

7 = 4 + 2 + 1 讀寫(xiě)運(yùn)行權(quán)限

5 = 4 + 1 讀和運(yùn)行權(quán)限

4 = 4 只讀權(quán)限

因此,大家也就明白了 chmod 777 ./tomcat-8484.sh 命令的含義了。

此時(shí)我們的tomcat啟動(dòng)腳本就完成了,下面我們來(lái)演示一下。

啟動(dòng)

[root@localhost bin]# ./tomcat-8484.sh start 
啟動(dòng)/data/tomcat/tomcat-8484 
Using CATALINA_BASE: /data/tomcat/tomcat-8484 
Using CATALINA_HOME: /data/tomcat/tomcat-8484 
Using CATALINA_TMPDIR: /data/tomcat/tomcat-8484/temp 
Using JRE_HOME: /usr 
Using CLASSPATH: /data/tomcat/tomcat-8484/bin/bootstrap.jar:/data/tomcat/tomcat-8484/bin/tomcat-juli.jar 
Tomcat started. 

我們查看進(jìn)程看一下是否真的啟動(dòng)

[root@localhost bin]# ps -ef |grep tomcat 
root 5569 1 7 14:09 pts/0 00:00:06 /usr/bin/java -Djava.util.logging.config.file=/data/tomcat/tomcat-8484/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dignore.endorsed.dirs= -classpath /data/tomcat/tomcat-8484/bin/bootstrap.jar:/data/tomcat/tomcat-8484/bin/tomcat-juli.jar -Dcatalina.base=/data/tomcat/tomcat-8484 -Dcatalina.home=/data/tomcat/tomcat-8484 -Djava.io.tmpdir=/data/tomcat/tomcat-8484/temp org.apache.catalina.startup.Bootstrap start 
root 5611 5340 0 14:10 pts/0 00:00:00 grep --color=auto tomcat 

可以看到啟動(dòng)沒(méi)有問(wèn)題。

關(guān)閉

[root@localhost bin]# ./tomcat-8484.sh stop 
關(guān)閉/data/tomcat/tomcat-8484 
sh: line 2: kill: (18484) - No such process 
[root@localhost bin]# ps -ef |grep tomcat 
root 5621 5340 0 14:13 pts/0 00:00:00 grep --color=auto tomcat 

查看進(jìn)程確實(shí)是關(guān)閉成功的,好了我們的tomcat啟動(dòng)腳本也就大功告成了,這個(gè)腳本還可以自己在此基礎(chǔ)上進(jìn)行延伸,例如在啟動(dòng)后就立即查看日志等。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI