shell脚本 操作日志文件 && 读取文件 && 查询进程ID

来源:互联网 发布:淘宝中差评多久会消失 编辑:程序博客网 时间:2024/04/25 22:54

1、查询30天前的日志文件并删除

[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. find /g2ihslog/xmlgen/ -mtime +30 –exec rm {} \;  
    通过文件名中包含的日期查询:

[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. #文件中包含的日期字符串  
  2. DEL_DAY=`date -I -d '-30 day'`"-00"  
  3. #日志文件夹  
  4. logdir="/g2ihslog/*/"  
  5. #遍历文件夹下的文件  
  6. for n in `ls $logdir` ; do  
  7.     #取出文件名中的日期  
  8.     file_dt=`echo $n | awk -F "." '{print $3}'`  
  9.     #若日期为30天前,则删除  
  10.     if [[ -n "$file_dt" && "$file_dt" < "$DEL_DAY" ]];then  
  11.         rm -f $n  
  12.     fi;  
  13. done  

2、读取文件,对每一行进行处理

      Linux shell逐行处理文本的12种方法

 
方法1、cat $filename|while read line  
   例如:
[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. function while_read_line   
  2.          { cat $filename|while read line   
  3.            do   
  4.               echo "$line"   
  5.              :                        #这行什么都不做,返回值0 ,在此处对变量进行的操作不起作用,出了while循环就失效  
  6.              done  
  7.           }   
 
方法2:while read $filename from bottom  #建议采用此方法读取
   例如:
[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. function while_read_line_bottom   
  2.          {   
  3.            while read line   
  4.           do   
  5.             echo "$line"   
  6.                :   
  7.             done < $filename   
  8.           }   
 
方法3:while_line_line_bottom 
  例如:
[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. function while_line_line_bottom   
  2.           {    
  3.            while line line   #用line命令替换read   
  4.             do   
  5.               echo "$line"   
  6.                :   
  7.              done < $filename   
  8.             }   
 
方法4:cat $filename|while line=`line` 
   例如:
[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. function cat_while_line_line   
  2.         {   
  3.           cat $filename | while line=`line`   
  4.             do   
  5.               echo "$line"   
  6.             :   
  7.            done   
  8. }   
 
方法5:cat $filename |while line line 
   例如:
[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. function while_line_LINE   
  2.         {    
  3.         cat $filename |while line line   
  4.          do   
  5.            echo "$line"   
  6.           :   
  7.           done   
  8.            }   
 
方法6:while line=`line`from the bottom 
   例如:
[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. function while_line_line_bottom   
  2.        {   
  3.        while line=`line`   
  4.         do   
  5.          echo "$line"   
  6.        :   
  7.        done < $filename   
  8.       }   
 
方法7:cat $filename |while line=$(line) 
   例如:
[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. function while_line_line_cm   
  2.         {   
  3.          cat $filename |while line=$(line)   
  4.          do   
  5.           echo "$line"   
  6.          :   
  7.              done   
  8.           }   
 
方法8:while line=$(line)from the bottom 
   例如:
[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. function while_line_line_bottom_cm   
  2.         {   
  3.         while line=$(line)   
  4.          do   
  5.          echo "$line"   
  6.        done<$filename   
  7.         }   
 
方法9:while read line 
    例如:
[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. function while_read_line_fd   
  2.        {      
  3.          exec 3<&0   #将所有内容重定向到新文件描述符3来关闭文件描述符0   
  4.          exec 0<$filename  #标准输入文件描述符为0,标准输出文件描述符为1,标准错误为2.   
  5.         while read line    #3以后就可以配给普通文件。   
  6.         do   
  7.           echo "$line"   
  8.          done   
  9.          exec 0<&3   
  10.       }   

方法10:while line=`line` 
   例如:
[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. function while_line_line_fd   
  2.         {   
  3.          exec 3<&0   
  4.          exec 0<$filename   
  5.          while line=`line`   
  6.          do   
  7.           echo "$line"   
  8.          done   
  9.           exec 0<&3   
  10.          }   
 
方法11:while line=$(line) 
  例如:
[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. function while_line_line_cm_fd   
  2.       {   
  3.        exec 3<&0   
  4.        exec 0<$filename   
  5.        while line=$(line)   
  6.         do   
  7.          print "$line"   
  8.         done   
  9.        exec 0<&3   
  10.         }   
 
方法12:while line line 
   例如:
[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. function while_line_line_fd   
  2.       {   
  3.        exec 3<&0   
  4.        exec 0<$filename   
  5.        while line line   
  6.         do   
  7.           echo " $line"   
  8.         done   
  9.        exec 0<&3   
  10.        }  
3、查看进程ID
[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. #-v 表示排除 -i表示忽略大小写  
  2. ps -ef | grep -v grep | grep -i ihs-${name} | awk '{print $2}'  
0 0
原创粉丝点击