常用linux命令(項目部署)


centos 圖形 命令行 界面切換

如果在圖形界面下,按:Ctrl+Alt+F2進入如下命令行界面

--------------

看當前目錄的路徑:

pwd

...................

Tomcat

 

假設tomcat所在目錄為/usr/local/apache-tomcat/

 

1、打開tomcat配置文件

#vi /usr/local/apache-tomcat/conf/server.xml

 

2、打開Tomcat配置文件之后按 /8080  快速檢索

 

3、修改端口,按 i 進行,將8080 修改為 80

 

4、按:wq 保存並退出

 

5重啟tomcat,方法如下:

#/apache-tomcat/bin/./shutdown.sh  【關閉】

#/apache-tomcat/bin/./startup.sh 【打開】

............

Linux 下修改Tomcat使用的JVM內存大小

 

 #vi catalina.sh   //打開catalina.sh文件

 

我的服務器的配置:

 在#OS speific ...........一行下,添加 JAVA_OPTS行,如下:

 # OS specific support.  $var _must_ be set to either true or false.

JAVA_OPTS="-Xms256m -Xmx512m -Xss256K -XX:PermSize=64m -XX:MaxPermSize=128m"

 

或者更大:

JAVA_OPTS="-Xms1024m -Xmx4096m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=2048m"

..................

 另一種說法:

要添加在tomcat 的bin 下catalina.sh 里,位置cygwin=false前 。注意引號要帶上,紅色的為新添加的.

 

# OS specific support. $var _must_ be set to either true or false.

JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m"

cygwin=false

 

 。。。。。。。。

 

刪除目錄

linux刪除目錄很簡單,很多人還是習慣用rmdir,不過一旦目錄非空,就陷入深深的苦惱之中,現在使用rm -rf命令即可。

直接rm就可以了,不過要加兩個參數-rf 即:rm -rf 目錄名字

-r 就是向下遞歸,不管有多少級目錄,一並刪除

-f 就是直接強行刪除,不作任何提示的意思

 

.................

 

重命名

linux 下文件重命名/移動/復制命令(轉)

linux下重命名文件:使用mv命令就可以了,

 

例:要把名為:abc   重命名為:123  

 

可以這樣操作:

 

重命名:MV命令

 

1、進入你的文件目錄,運行命令:   /cd  dir  (dir指的是你文件所在目錄)

 

2、然后命令:ls (例出你的所有文件夾),我們可以看到有  abc 這個文件了

 

3、最后命令:mv abc 123

 

但是要注意的是,如果當前目錄下也有個123的文件的話,我們的這個文件是會將它覆蓋的。

 

 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

復制

拷貝復制:CP命令

 

例:我要把 abc文件復制到  

 

  語法: cp -r 源目錄  目標目錄

說明:該命令把指定的源文件復制到目標文件或把多個源文件復制到目標目錄中。

 

eg:

mkdir tomcat8080 //創建目錄tomcat8080  

 cp -r  apache-tomcat-6.0.37   tomcat8080     //將apache-tomcat-6.0.37目錄及其子目錄(文件)復制一份到當前目錄下,新目錄名稱為 tomcat8080

...............

殺掉進程

 

$ kill -s 9 1827

 

【1821是目標進程id

其中-s 9 指定了傳遞給進程的信號是9,即強制、盡快終止進程。各個終止信號及其作用見百度。

..................

執行文件時權限不夠嗎?

可以用"chmod  a+x  文件名"來添加執行權限。

或者用 chmod  777  文件名 對所有人添加讀、寫、執行權限。

chmod命令

格式1chmod   [ugoa]  [+-=] [rwx]  文件或目錄...

格式2chmod nnn 文件或目錄...

 

................

修改目錄權限

aaa目錄下的所有文件的權限都改成777

 

chmod -R 777 aaa

 將aaa目錄及其子級的 讀、寫、執行 權限 開放給所有用戶

 

1:如果你是以root身份執行的話應該就沒問題了。

2:如果你是以普通用戶執行不成功,那就有得說了!

 

。。。。。。。。。

zookeeper

 

ZooKeeper服務命令:

     在准備好相應的配置之后,可以直接通過zkServer.sh 這個腳本進行服務的相關操作

 

 在zookeeper目錄中的conf目錄中找到zoo.cfg文件,如果沒有這個文件,就拷貝一份 zoo_sample.cfg 改名為zoo.cfg,然后編輯zoo.cfg文件,

修改客戶端訪問的端口號:

# the port at which the clients will connect

clientPort=2181

這里是修改我們客戶端要訪問的端口號為2181

 

1. 啟動ZK服務:       sh bin/zkServer.sh start

2. 查看ZK服務狀態: sh bin/zkServer.sh status

3. 停止ZK服務:       sh bin/zkServer.sh stop

4. 重啟ZK服務:       sh bin/zkServer.sh restart

。。。。。。。。。。

vim中如何快速查找到下一個相同的詞

 

如果您已經用 /xxx 找到了一個詞,那么 n N 就分別是向后,向前再找這個詞。

相反,如果您用的是 ? 找到的詞,則 n 是向前找,N 是向后找。

即是說 n 總是按着當前的搜索方向往下找同一個詞(術語叫搜索字串)。

..................

 

redis關閉和啟動

redis關閉

 

redis節點目錄下執行如下命令

 

redis-cli -p 端口號 shutdown

 

redis啟動

 

./redis-server 參數

 

參數:redis.conf文件全路徑

 

需要到redis所在目錄去重新啟動redis,此時redis中的數據仍然可以恢復。

...............

Redis服務器設置密碼后,使用service redis stop 會出現以下信息:

 

service redis stop

Stopping ...

OK

(error) NOAUTH Authentication required.

Waiting for Redis to shutdown ...

Waiting for Redis to shutdown ...

Waiting for Redis to shutdown ...

Waiting for Redis to shutdown ...

Waiting for Redis to shutdown ...

Waiting for Redis to shutdown ...

Waiting for Redis to shutdown ...

Waiting for Redis to shutdown ...

 

出現這樣的錯誤信息,redis 這時是沒有停止服務的。

 

可以使用ps -ef | grep redis  查進程號 然后kill 掉,如果在deamon下還需要去刪除pid文件,有點繁瑣。

 

 

解決辦法:

 

redis-cli 密碼登陸(redis-cli -a  password)就OK了。

 

再用ps -ef | grep redis 可以看到redis進程已經正常退出。

 

 

 

修改redis服務腳本,加入如下所示的紅色授權信息即可:

 

vi /etc/init.d/redis

$CLIEXEC -a "password" -p $REDISPORT shutdown

 

我的關閉方法:在scr目錄下  ./redis-cli -a root -p 6379 shutdown] 其中root是在redis.conf中設置的密碼,6379是用ps看到的端口號

 .....

同事說的方法:

redis在linux服務器上,redis啟動采用手動前台啟動,也就是每次服務器關機重啟后,都要重復如下啟動步驟:

首先用crt或xshell等終端連接軟件連接到Linux,然后找到redis目錄,

redis-cli -p 6381  ///修改當前啟動的的redis的默認端口號為我們要使用的 6381端口號

ping ///測試是否能成功連接

auth root //嘗試用密碼root登陸

config get requirepass /// 獲取當前密碼

config set requirepass root  ///設置當前密碼為root

 

設置好當前啟動redis的運行參數后,就可以直接關閉crt的連接窗口了,雖然我們用的是前台啟動,但是關閉遠程crt的連接窗口是不會關閉當前前台啟動的redis的

 【具體其他redis命令,可以百度搜索 “ redis命令參考 ”】

。。。。。。。。。。。

 

我用過的方法:

通過配置文件,設置后台啟動方法:

1、首先在redis目錄下找到redis.conf文件,然后將其復制一份到隨意一個目錄,比如我把它復制到了redis的src目錄下,並改名為myredis.conf,

2、然后修改這個復制出來的redis.conf文件,將其中的指定行改為:

 

deamonize yes   ///將默認的前台啟動改為后台啟動

 

還有requirepass  后面加上我們需要的登陸密碼,如  

requirepass root  

就是設置登陸密碼為root,

 

然后看如果 bind 127.0.0.1 這一行存在就注釋掉,即:

# bind 127.0.0.1

它如果打開,則只有本機(安裝redis的服務器本身)才能訪問。

 

修改默認監聽端口
port 6381   ///這樣就把默認的6379端口改成6381了

 

修改好配置文件並保存好后,就可以啟動了,啟動方法:

我們進入 redis的src目錄下輸入:

./redis-server myredis.conf     ///這個后面+的myredis.conf就是我們修改好的,要使用其啟動redis的配置文件

即可啟動redis了,想看是否啟動好了,可以輸入:

ps -ef | grep redis

如果結果第二行有PID號,就說明啟動成功了

。。。。。。。。。

參考文章:百度搜索:

redis前端啟動和后台啟動的區別

..................

Linux中

configure --prefix=/有什么用

 

指定安裝路徑

不指定prefix,則可執行文件默認放在/usr /local/bin,庫文件默認放在/usr/local/lib,配置文件默認放在/usr/local/etc。其它的資源文件放在/usr /local/share。你要卸載這個程序,要么在原來的make目錄下用一次make uninstall(前提是make文件指定過uninstall,要么去上述目錄里面把相關的文件一個個手工刪掉。

指定prefix,直接刪掉一個文件夾就夠了。

。。。。。。。。。。。。。

退出postgresql數據庫

\q 退出postgresql數據庫,建議使用\?查看幫助信息!

。。。。。。。。。。。。。。。

 

linux下清除tomcat緩存

 

這是一直困擾人問題,特別是一些剛開始菜鳥,就會說怎么我都更新啦都沒辦法啦什么回事啊!!!!其實我們可以靜下心去處理,當我們靜下心來時候,你就用service tomcat stop service tomcat strat service tomcat restart  這三個命令來處理。還是不行 這樣你就會急啦,很惱火!!不要惱火!這不能怪你因為很多時候tomcat配置者配置tomcat不是很完善,導致這個問題!這個時候可以清理tomcat緩存!方法我下面這個是最好的!還有個方法是寫在tomcatbin文件里面的!感覺不是很好!

 

1進入tomcat/bin目錄下,執行命令:./shutdown.sh

2然后執行命令:ps -aux ,查看tomcat是否真的關閉了

 

【我用 ps  -ef|grep  tomcat8090】最后面是Tomcat目錄名稱

字段含義如下:
UID PID PPID C STIME TTY TIME CMD
root 18887 18828 0 08:09 pts/0 00:00:00 grep tomcat8090
root 27190 1 0 2017 ?     04:55:15 /home/wahaha/soft/jdk1.7.0_79/bin..............

# PID 這個程序的 ID 下面的 PPID 則是父程序的 ID;
# C CPU 使用的資源百分比
# CMD 所下達的指令
因此CMD為“grep tomcat8090” 也就是查詢“tomcat8090”的命令,這樣看tomcat8090目錄下的Tomcat有沒有沒運行。

注意:第二行的 27190才是 我們要的 正在啟動的Tomcat8090目錄下Tomcat的PID 即:Tomcat的進程id
而第一行的18887 是我們執行 grep tomcat8090 這條指令本身的進程id

 

3如果沒有關閉則執行命令:kill -9 #pid來徹底關閉tomcat(#pidtomcat的進程ID)

4最后進入tomcat/work目錄下,執行命令:rm -rf Catalina,來刪除Catalina文件夾

5確認是刪除命令:ls,如果work目錄下沒有Catalina文件夾,這表示刪除成功

6再進入tomcat/bin目錄下執行命令:./startup.sh,啟動tomcat

7OK,搞定

.....................

Tomcat是否啟動

ps -ef | grep tomcat8090

............

Vim編輯時撤銷

vi r 已經被占用了,r是替換

urvi個版本都有的命令,ctrl+r不是所有vi都有的

..........。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

查看 rpm軟件是否已經安裝過了

rpm -qa | grep targetSoftName

targetSoftName是我們要用rpm安裝的軟件名稱或部分名稱】

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

Linux查看程序端口占用情況

今天發現服務器上Tomcat 8080端口起不來,老提示端口已經被占用。

使用命令:

ps -aux | grep tomcat

發現並沒有8080端口的Tomcat進程。

使用命令:netstat –apn

查看所有的進程和端口使用情況。發現下面的進程列表,其中最后一欄是PID/Program name 

發現8080端口被PID9658Java進程占用。

進一步使用命令:ps -aux | grep java,或者直接:ps -aux | grep pid 查看

就可以明確知道8080端口是被哪個程序占用了!然后判斷是否使用KILL命令干掉!

netstat   -apn   |   grep   +端口號或者進程id 可以查看當前哪個進程占用了哪個端口,非常有用的指令

方法二:直接使用 netstat   -apn   |   grep  portno 【這里的最后一個參數portno 可以是我們要查找的 端口號 也可以是我們知道的pid】
即:netstat –apn | grep 8080

如我們輸入

 netstat –apn | grep 8080

得到如下顯示

proto  Recv-Q Send-Q   Local Address  Foreign Address    stste    PID/Program name

tcp    0    0      :::8080  :::*        LISTEN     27630/java

其中加粗的 8080 就是我們查詢的端口號,而最后的27630是占用8080端口的 進程的PID 和 程序名稱(Tomcat的程序名也是java)

 

通過進程號查進程的具體路徑

這時,如果我們知道了 占用8080端口的進程id是27630,但是我們要進一步知道27630這個進程是哪個程序執行的,可以再執行:

ps -ef | grep 27630

就可以知道當前進程的詳細程序路徑了【詳細路徑一般在結果的第二行 -cp 后面】

..................................................

Linux看內存占用:

 

free -m

................

ActiveMQ

windows下面直接關閉窗口便可
linux 下在安裝目錄下切換到 bin/linux/ ,該目錄下有個activemq的文件
你用

./activemq stop | start | restart

查看mq是否啟動成功

如果我們知道當前啟動的mq服務端口是61616,則可以通過看端口是否正在監聽來判斷:

netstat  -apn | grep 61616

如果返回結果顯示出  61616端口 且后面是 LISTEN 則說明,已經啟動成功了

........................

 

如何檢測遠程主機上的某個端口是否開啟

 

有時候我們要測試遠程主機上的某個端口是否開啟,無需使用太復雜的工作,windows下就自帶了工具,那就是telnet

   怎么檢測呢,按下面的步驟來:

 

  1、安裝telnet。我的win7下就沒有telnet,在cmd下輸入telnet提示沒有該命令。於是我們進入控制面板---->程序---->打開或關閉windows功能。然后等一段時間,在出來的對話框把telnet客戶端和telnet服務器勾選上,其他的不用管,然后點擊確定。這樣就安裝好了telnet組件了。

 

  2、 下面開始測試某個端口是否開啟,比如我測的是192.168.3.422121這個端口。在cmd下輸入

 

start /min telnet 192.168.3.42 2121

 

之后會出現一個窗口,是最小化的,你等一會,如果窗口自動關閉了,說明端口是關閉的或主機ping不通,反之端口開放.

 

 比如這個2121端口是開放的,就出現如圖所以的窗口,否則窗口關閉。

 

3、你可以用自己的機子做實驗.CMD下輸入netstat -anp tcp可以查看當前主機tcp開放了哪些端口.

最后   ping命令是不能檢測端口,只能檢測你和相應IP是否能連通.

補充: Linux下檢測本機的端口是否被占用:

netstat apn | grep 8080

..............

linux如何關閉防火牆

1) 重啟后生效
開啟: chkconfig iptables on
關閉: chkconfig iptables off

2) 即時生效,重啟后失效
開啟: service iptables start
關閉: service iptables stop

需要說明的是對於Linux下的其它服務都可以用以上命令執行開啟和關閉操作。

在開啟了防火牆時,做如下設置,開啟相關端口,
修改/etc/sysconfig/iptables 文件,添加以下內容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

........

ActiveMQ的安裝和啟動

 

 

安裝JAVA配置JAVA環境

 

下載ActiveMQ

解壓壓縮包

tar zxvf activemq-x.x.x-bin.tar.gz

至此,linuxActiveMQ的安裝工作就完成了。

 

 

ActiveMQLinux下的啟動

啟動ActiveMQ分為兩種模式 ,以 前端進程的方式啟動(控制台關閉則服務關閉)或者 后台進程的方式啟動: 

 

 

前端進程:

cd [activemq_install_dir]/bin

./activemq console

 

后端進程:

cd [activemq_install_dir]/bin

./activemq start

 

測試啟動結果

在瀏覽器中輸入 http://127.0.0.1:8161/admin/登錄名/密碼: admin/admin

切換到QueuesTAB

點擊create”創建一個隊列

點擊Send to ”發送消息

ActiveMQ的監聽的端口

 

 

LinuxActiveMQ默認監聽的端口號:61616,可以通過netstat查看

netstat -nl|grep 61616

1

關閉ActiveMQ

 

如果啟動的是前端進程,那么可以直接在控制台 ctrl + C 關閉.

 

如果啟動的是后端進程,則通過以下腳本關閉.

cd [activemq_install_dir]/bin

./activemq stop

........

Windows軟件連接linux中文件的軟件

WinSCP

........

Timer類中的"Timer already cancelled."

最近有個問題,在沒有timer調用cancel()方法的情況下,報以下異常

Exception in thread "main" Java.lang.IllegalStateException: Timer already cancelled.

at java.util.Timer.sched(Timer.java:397)

at java.util.Timer.schedule(Timer.java:193)

at TimerTest.main(TimerTest.java:23)

說一個可以排查的點,就是timer在執行任務的過程中如果拋出了RuntimeException,並且接着又去執行另一個新任務時,會認定定時器已經取消,產生這個異常,所以可以在定時任務之間排查是否有異常拋出。

 

【項目中用到了ActiveMQ,在linux上部署完項目后,訪問並操作時,報出以上錯誤“Timer already cancelled”,最終重啟了ActiveMQ后解決了問題

 

另外要注意一點:同一個項目,部署在多個地方不能共用一個ActiveMQ,有可能沖突,要確保每個部署的項目都要有一個獨立的mq

.......

 

。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM