zoukankan      html  css  js  c++  java
  • shell示例1

    清除/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 表示成功. 
    
    Have a nice day!!!
  • 相关阅读:
    C#执行异步操作的几种方式
    spring boot swagger ui使用 nginx 部署后无法使用问题
    PHP支付宝接口RSA验证
    认证加密算法php hash_hmac和java hmacSha1的问题
    如何实现从 Redis 中订阅消息转发到 WebSocket 客户端
    ffmpeg安装
    nginx静态资源反向代理
    Redis基础知识 之——发布/订阅
    linux下安装git
    php实现无限级分类查询(递归、非递归)
  • 原文地址:https://www.cnblogs.com/fhefh/p/2017721.html
Copyright © 2011-2022 走看看