7.14

作者: 三年两度 | 来源:发表于2017-07-14 10:04 被阅读7次

    <code>

    cleanup:一个增强的和广义的删除logfile的脚本

    ################################Start

    Script#######################################

    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表示成功.

    82 #

    ################################End

    </code>

    相关文章

      网友评论

          本文标题:7.14

          本文链接:https://www.haomeiwen.com/subject/yrdnhxtx.html