java工程師常用的Linux命令(crontab,netstat,service等命令)
開發過程中,難免會需要部署,所以也需要掌握一些基本的Linux命令,那些簡單的ls,touch,mkdir,mv,cp等等這些就不列舉了。
1.netstat:顯示各種網路相關資訊
這是一個非常實用的命令,當我們要檢視某個埠是否開放的時候,就可以通過這個命令查詢。此外,這個命令還可以用於顯示路由表,介面狀態 (Interface Statistics),masquerade 連線,多播成員 (Multicast Memberships) 等等。
常用的引數:
-a (all)顯示所有埠 (包括監聽和未監聽的),預設不顯示LISTEN相關
-t (tcp)僅顯示tcp相關連線
-u (udp)僅顯示udp相關連線
-n 拒絕顯示別名,能顯示數字的全部轉化成數字
-l 列出所有處於監聽狀態的 Sockets
-p 在 netstat 輸出中顯示 PID 和程序名稱
-r 顯示核心路由資訊
-e 顯示擴充套件資訊,例如uid等
-s 顯示所有埠的統計資訊
-c 每隔一個固定時間,執行該netstat命令
提示:LISTEN和LISTENING的狀態只有用-a或者-l才能看到
常用的組合:
列出所有 tcp /udp埠 netstat -at/-au
只列出所有監聽 tcp /udp埠 netstat -lt/lu
顯示 TCP 或 UDP 埠的統計資訊 netstat -st/su
查詢某個程式執行的埠,比如這裡是查詢ssh執行的埠,有些需要root許可權才可以檢視 netstat -ap | grep ssh
找出執行在指定埠的程序,比如這裡是查詢80埠執行的程序 netstat -an | grep ':80'
2.檢視程序 ps -aux/ps -ef
想要檢視某個程式或者服務是否啟動,只需要使用這個命令即可: ps -aux/ps -ef | grep servicename
即ps -aux/ps -ef 然後管道 | ,然後grep進行搜尋 。管道 | 即將上一個命令的輸出結果作為下一個命令的輸入結果,比如說這裡的grep就是在上個命令的結果中進行搜尋。
3.服務相關的命令 service
通過這個命令可以啟動/停止/檢視某個服務的狀態,使用 service serviceName start/stop/status
比如:service tomcat status 檢視Tomcat的狀態;service tomcat start 啟動Tomcat ; service tomcat stop 停止Tomcat
4.定時任務 crontab
所謂的定時任務,即認為地設定一個時間執行某個任務。使用crontab可以在指定的時間執行一個shell指令碼或者一系列Linux命令。Linux下的任務排程分為兩類,系統任務排程和使用者任務排程。
系統任務排程:系統週期性所要執行的工作,比如寫快取資料到硬碟、日誌清理等。在/etc目錄下有一個crontab檔案,這個就是系統任務排程的配置檔案。
首先,可以先用crontab -l檢視crontab是否安裝,然後再用上面的命令檢視crontab服務的狀態,如果還沒有啟動的話可以先啟動。
以下是 crontab 檔案的格式:
{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
- minute: 區間為 0 – 59
- hour: 區間為0 – 23
- day-of-month: 區間為0 – 31
- month: 區間為1 – 12. 1 是1月. 12是12月.
- Day-of-week: 區間為0 – 7. 週日可以是0或7.
在以上各個欄位中,還可以使用以下特殊字元:
星號(*):代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件後每月都執行該命令操作。
逗號(,):可以用逗號隔開的值指定一個列表範圍,例如,“1,2,5,7,8,9”
中槓(-):可以用整數之間的中槓表示一個整數範圍,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute欄位,表示每十分鐘執行一次。
應用例項:
如果你想每天執行run.sh這個指令碼的話,可以用
crontab –e 0 5 * * * /root/bin/run.sh ,這樣的話,就會在每天的5點執行這個指令碼
此外,還可以定時執行某個命令
crontab –e 0 5 * * * service tomcat restart 每天5點重啟Tomcat