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>

相关文章

  • 夏日随记

    2017.7.13—7.14

  • newlife

    今天。 7.14.

  • 2017-07-14

    7.14日记

  • 7.23 Java项目总结 MySQL JDBC

    海枯石烂 沧海桑田—— 王阳明 为7.14版本结合MySQL JDBC 实现登陆注册功能 7.14 学习了登陆注册...

  • 7.23 JDBC 学习总结

    海枯石烂 沧海桑田—— 王阳明 为7.14版本结合MySQL JDBC 实现登陆注册功能 7.14 学习了登陆注册...

  • 2018-07-15

    时间:7.14 事件:写计划 感觉:顺畅

  • 2018-07-15

    《13期社群实操演练复盘》 日期:7.14 姓名:琳琳 第几期会员:12期 ?7.14日复盘 引流群总人数:81 ...

  • 7.14

    函数一 定义 if(1 > 0){document.write('a');document.write('b');...

  • 7.14

    七月是我喜欢的月份,因为她是我的生日月,七月也是许多巨蟹宝宝诞生的月份。因为自己是七月出生所以自然而然对数7...

  • 7.14

    1.《教育公共基础知识》

网友评论

      本文标题:7.14

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