shell樣本1

來源:互聯網
上載者:User

清除/var/log下的log檔案

基本版:

1 # Cleanup 2 #  當然要使用 root 身份來運行這個指令碼 3   4 cd /var/log 5 cat /dev/null > messages 6 cat /dev/null > wtmp 7 echo "Logs cleaned up." 

版本2:

  1 #!/bin/bash     2 #  一個 Bash 指令碼的正確的開頭部分.   3     4 # Cleanup,  版本  2   5     6 #  當然要使用 root 身份來運行.   7 #  在此處插入代碼,來列印錯誤訊息,並且在不是 root 身份的時候退出.   8     9 LOG_DIR=/var/log 10 #  如果使用變數,當然比把代碼寫死的好. 11 cd $LOG_DIR 12   13 cat /dev/null > messages 14 cat /dev/null > wtmp 15   16   17 echo "Logs cleaned up." 18   19 exit #  這個命令是一種正確並且合適的退出指令碼的方法. 

版本3:

 1 #!/bin/bash   2 #  清除,  版本  3   3     4 #    Warning:   5 #    -------   6 #    這個指令碼有好多特徵,這些特徵是在後邊章節進行解釋的,大概是進行到本書的一半的   7 #    時候,   8 #    你就會覺得它沒有什麼神秘的了.   9 # 10   11   12   13 LOG_DIR=/var/log 14 ROOT_UID=0          # $UID 為 0 的時候,使用者才具有根使用者的許可權 15 LINES=50              #  預設的儲存行數 16 E_XCD=66              #  不能修改目錄? 17 E_NOTROOT=67      #  非根使用者將以 error 退出 18   19   20 #  當然要使用根使用者來運行 21 if [ "$UID" -ne "$ROOT_UID" ] 22 then 23      echo "Must be root to run this script." 24      exit $E_NOTROOT 25 fi     26   27 if [ -n "$1" ] 28 #  測試是否有命令列參數(非空). 29 then 30      lines=$1 31 else     32      lines=$LINES #  預設,如果不在命令列中指定 33 fi     34   35   36 #    Stephane Chazelas  建議使用下邊 37 #+  的更好方法來檢測命令列參數. 38 #+  但對於這章來說還是有點超前. 39 # 40 #        E_WRONGARGS=65    #  非數值參數(錯誤的參數格式) 41 # 42 #        case "$1" in 43 #        ""            ) lines=50;; 44 #        *[!0-9]*) echo "Usage: `basename $0` file-to-cleanup"; exit $E_WRONGARGS;; 45 #        *              ) lines=$1;; 46 #        esac 47 # 48 #*  直到"Loops"的章節才會對上邊的內容進行詳細的描述. 49   50   51 cd $LOG_DIR 52   53 if [ `pwd` != "$LOG_DIR" ]    #  或者 if[ "$PWD" != "$LOG_DIR" ] 54                                                          #  不在  /var/log 中? 55 then 56      echo "Can't change to $LOG_DIR." 57      exit $E_XCD 58 fi    #  在處理 log file 之前,再確認一遍目前的目錄是否正確. 59   60 #  更有效率的做法是 61 # 62 # cd /var/log || { 63 #      echo "Cannot change to necessary directory." >&2 64 #      exit $E_XCD; 65 # } 66   67   68   69   70 tail -$lines messages > mesg.temp #  儲存 log file 訊息的最後部分. 71 mv mesg.temp messages                          #  變為新的 log 目錄. 72   73   74 # cat /dev/null > messages 75 #*  不再需要了,使用上邊的方法更安全. 76   77 cat /dev/null > wtmp    #    ': > wtmp'  和  '> wtmp'具有相同的作用 78 echo "Logs cleaned up." 79   80 exit 0 81 # 退出之前返回 0,返回 0 表示成功. 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.