Linix經常使用命令

 
1.查找某一個或多個文件:
    ls | sort | grep "2012-09-13.log"
    find -name "*2012-09-13.log"
 
2.給文件賦權限:
    chmod +x *.sh 來爲bin目錄下的全部.sh文件賦予可執行權限(x=1=可執行權限,r=4=可讀,w=2=可寫)
 
3. netstat -tnl 查看 8080 8009 這2個端口,若是打開了,證實CentOS系統的tomcat正常運行。
    tcp 0 0 :::8009 :::* LISTEN
    tcp 0 0 :::8080 :::* LISTEN
 
4.查看端口是否被佔用:
    lsof -i:80 顯示佔用該端口的進程狀況,該端口正在運行的程序
 
5.首先使用以下命令插入執行定時任務,在須要打開時去掉註釋,修改內容切入按 i,退出esc,退出,強制退出!q crontab -e
    #cpu mem monitor
    sh /cuiser/cpstest.sh >> /cuiser/monitor.log  執行shell腳本內容並保存到monitor.log文件中
    下面是查看shell腳本命令以及內容
    [root@buss-bak3 cuiser]# more cpstest.sh
    cd /cuiser/
    chmod 775 *
    date
    vmstat 3 2
 
tar:
    tar -zcvf ./castomcat.tar.gz ./tomcat-6.0.35-cas2.0/       將當前目錄下tomcat-6.0.35-cas2.0文件夾下全部文件打包並壓縮爲文件castomcat.tar.gz
    tar -ztvf ./castomcat.tar.gz             查閱上述 ./castomcat.tar.gz 文件內有哪些文件,由於使用 gzip 壓縮,因此要查該 tar file 內的文件時,就得加上 z 這個參數
     tar -zxvf ./castomcat.tar.gz         解壓縮,把castomcat.tar.gz解壓到當前文件夾下
gzip:
     gzip -9 被壓縮文件名
     gzip  catalina.out       直接壓縮catalina.out到當前目錄下
7z:   
    7z x yajiu.7z         這條命令是將yajiu.7z中的全部文件解壓出來,x是解壓到壓縮包命名的目錄下
cat /dev/null > catalina.out       //清空日誌文件,不刪除,不須要重啓機器
 
 
7.向遠程主機拷貝文件(提示:此處 P 是大寫)
   拷貝本地的castomcat.tar.gz 到遠程(192.168.18.29)的 /home/hotcity/
      scp - P36100 -r ./castomcat.tar.gz root@192.168.18.29:/home/hotcity/
      拷貝遠程(10.0.24.103)的/home2/backup/ 到本地的 /home/mover00/shadow_bak/sites/
      scp - P36100 -r root@10.0.24.103:/home2/backup/ /home/mover00/shadow_bak/sites/
 
8.登錄遠程主機
    ssh - p36100 192.168.18.29
  ssh name@server
 

9.tcpdump抓包html

抓指定網卡(bridge100)的8085端口數據包,並輸出到文件(port8085.cap):
sudo tcpdump -i bridge100 port 8085 -w port8085.cap -v
//tcpdump tcp port 8080 -n -s 0 -w /tmp/tcp.cap
tcpdump -i any -s0 port 7890 -w port7890.cap -v
-l    使標準輸出變爲緩衝行形式;
-n    不把網絡地址轉換成名字;
-c    在收到指定的包的數目後,tcpdump就會中止;
-i    指定監聽的網絡接口;
-w    直接將包寫入文件中,並不分析和打印出來;
-s 指定記錄package的大小,常見 -s 0 ,表明最大值65535,一半linux傳輸最小單元MTU爲1500,足夠了linux

-X 直接輸出package data數據,默認不設置,只能經過-w指定文件進行輸出
shell


10. Netstat用於顯示與IP、TCP、UDP和ICMP協議相關的統計數據, 用於檢驗本機各端口的網絡鏈接狀況apache

netstat -nat|awk '{print awk $NF}'|sort|uniq -c|sort -n
tomcat

11. 查看ftp進程,重啓ftp server
     # path /home/hotcity/apache-ftpserver-1.0.5/res/home/files
    ps ax|grep apache-ftpserver-1.0.5
    ./stpd.sh ./res/conf/ftpd-typical.xml &    
 
12. Linux查看磁盤空間命令:
      df -hl 查看磁盤剩餘空間
      df -h 查看每一個根路徑的分區大小
      du -sh [目錄名] 返回該目錄的大小
      du -sm [文件夾] 返回該文件夾總M數
   更多功能能夠輸入一下命令查看:
      df --help
      du --help
 
13. 防火牆
            (1) 重啓後永久性生效:
  開啓:chkconfig iptables on
  關閉:chkconfig iptables off
            (2) 即時生效,重啓後失效:            
            service iptables status  查看防火牆狀態; /etc/init.d/iptables status 會獲得一系列信息,說明防火牆開着。
            service iptables stop    關閉; /etc/rc.d/init.d/iptables stop 關閉防火牆
            service iptables start    開啓
            開啓相關端口:
          修改/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
 
14. rpm
            安裝程序: rpm -ivh 以.rpm結尾的程序包
            卸載:        rpm -e 程序全名,例如查看telnet程序全名:rpm -qa|grep telnet
 
 
TCP鏈接的KEEPALIVE
 1、關於keepalive的內核參數   
       tcp_keepalive_time - INTEGER
  在鏈接被標記爲須要keepalive後,最後數據被髮送和第一個keepalive探測包的間隔.
  默認值: 2hours.
  tcp_keepalive_probes - INTEGER
  在決定鏈接被斷掉,通知應用層前,發送keepalive探測包的次數.
  默認值: 9.
  tcp_keepalive_intvl - INTEGER
  在keepalive探測包開始後,探測包每隔多長時間發送一次.
  默認值: 75s
  根據上述參數來看,若是一個client發送一個標記爲keepalive的包後,若是斷開了
       服務端須要7200s+9*75s=7875s後,鏈接才釋放掉。
2、   TIME_WAIT 的處理
  根據TCP協議,主動發起關閉的一方,會進入TIME_WAIT狀態(TCP實現必須可靠地終止鏈接的兩個方向(全雙工關閉)),持續2*MSL(Max Segment Lifetime),缺省爲240秒. 爲何 TIME_WAIT 狀態須要保持 2MSL 這麼長的時間?
 
  TIME_WAIT的等待時間爲2MSL,即最大段生存時間.若是 TIME_WAIT 狀態保持時間不足夠長(好比小於2MSL),第一個鏈接就正常終止了。第二個擁有相同相關五元組的鏈接出現(由於鏈接終止前發起的一方可能須要重發 ACK,因此停留在該狀態的時間必須爲MSL的2倍。),而第一個鏈接的重複報文到達,干擾了第二個鏈接。TCP實現必須防止某個鏈接的重複報文在鏈接終 止後出現,因此讓TIME_WAIT態保持時間足夠長(2MSL),鏈接相應方向上的TCP報文要麼徹底響應完畢,要麼被丟棄。創建第二個鏈接的時候,不 會混淆。
 
  注:MSL(最大分段生存期)指明TCP報文在Internet上最長生存時間,每一個具體的TCP實現都必須選擇一個肯定的MSL值。RFC 1122建議是2分鐘,但BSD傳統實現採用了30秒。TIME_WAIT 狀態最大保持時間是2 * MSL,也就是1-4分鐘。
 
  有關內核級別的keepalive和time_wait的優化調整
 
vi /etc/sysctl
 
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_fin_timeout = 30
net.core.netdev_max_backlog =8096
 
修改完記的使用sysctl -p 讓它生效
 
以上參數的註解
/proc/sys/net/ipv4/tcp_tw_reuse
該文件表示是否容許從新應用處於TIME-WAIT狀態的socket用於新的TCP鏈接。
 
/proc/sys/net/ipv4/tcp_tw_recycle
recyse是加速TIME-WAIT sockets回收
 
  對tcp_tw_reuse和tcp_tw_recycle的修改,可能會出現.warning, got duplicate tcp line warning, got BOGUS tcp line.上面這二個參數指的是存在這兩個徹底同樣的TCP鏈接,這會發生在一個鏈接被迅速的斷開而且從新鏈接的狀況,並且使用的端口和地址相同。但基本 上這樣的事情不會發生,不管如何,使能上述設置會增長重現機會。這個提示不會有人和危害,並且也不會下降系統性能,目前正在進行工做
 
/proc/sys/net/ipv4/tcp_keepalive_time
表示當keepalive起用的時候,TCP發送keepalive消息的頻度。缺省是2小時
 
/proc/sys/net/ipv4/tcp_fin_timeout 最佳值和BSD同樣爲30
fin_wait1狀態是在發起端主動要求關閉tcp鏈接,而且主動發送fin之後,等待接收端回覆ack時候的狀態。對於本端斷開的socket鏈接,TCP保持在FIN-WAIT-2狀態的時間。對方可能會斷開鏈接或一直不結束鏈接或不可預料的進程死亡。
 
/proc/sys/net/core/netdev_max_backlog
該文件指定了,在接口接收數據包的速率比內核處理這些包的速率快時,容許送到隊列的數據包的最大數目 
 
3、 進行處理
Linux系統中TCP是面向鏈接的,在實際應用中一般都須要檢測鏈接是否還可用.若是不可用,可分爲:
  a. 鏈接的對端正常關閉.
  b. 鏈接的對端非正常關閉,這包括對端設備掉電,程序崩潰,網絡被中斷等.這種狀況是不能也沒法通知對端的,因此鏈接會一直存在,浪費國家的資源.
TCP協議棧有個keepalive的屬性,能夠主動探測socket是否可用,不過這個屬性的默認值很大.
全局設置可更改/etc/sysctl.conf,加上:
net.ipv4.tcp_keepalive_intvl = 20
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_time = 60
 
在程序中設置以下:
int keepAlive = 1; // 開啓keepalive屬性
int keepIdle = 60; // 如該鏈接在60秒內沒有任何數據往來,則進行探測
int keepInterval = 5; // 探測時發包的時間間隔爲5 秒
int keepCount = 3; // 探測嘗試的次數.若是第1次探測包就收到響應了,則後2次的再也不發.
setsockopt(rs, SOL_SOCKET, SO_KEEPALIVE, (void *)&keepAlive, sizeof(keepAlive));
setsockopt(rs, SOL_TCP, TCP_KEEPIDLE, (void*)&keepIdle, sizeof(keepIdle));
setsockopt(rs, SOL_TCP, TCP_KEEPINTVL, (void *)&keepInterval, sizeof(keepInterval));
setsockopt(rs, SOL_TCP, TCP_KEEPCNT, (void *)&keepCount, sizeof(keepCount));
相關文章
相關標籤/搜索