文档章节

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

Cq蒲工
 Cq蒲工
发布于 2015/02/26 14:09
字数 630
阅读 98
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

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

[plain] view plaincopy在CODE上查看代码片派生到我的代码片

  1. find /g2ihslog/xmlgen/ -mtime +30 –exec rm {} \;  

    通过文件名中包含的日期查询:

[plain] view plaincopy在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 plaincopy在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 plaincopy在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 plaincopy在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 plaincopy在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 plaincopy在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 plaincopy在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 plaincopy在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 plaincopy在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 plaincopy在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 plaincopy在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 plaincopy在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 plaincopy在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 plaincopy在CODE上查看代码片派生到我的代码片

  1. #-v 表示排除 -i表示忽略大小写  

  2. ps -ef | grep -v grep | grep -i ihs-${name} | awk '{print $2}'  



© 著作权归作者所有

Cq蒲工
粉丝 0
博文 12
码字总数 5316
作品 0
渝中
技术主管
私信 提问
加载中

评论(0)

DolphinScheduler源码分析之任务日志

DolphinScheduler源码分析之任务日志 任务日志打印在调度系统中算是一个比较重要的功能,下面就简要分析一下其打印的逻辑和前端页面查询的流程。 AbstractTask 所有的任务都会继承AbstractT...

osc_kf98pg0d
01/20
16
0
Linux 用户身份与进程权限

在学习 Linux 系统权限相关的主题时,我们首先关注的基本都是文件的 ugo 权限。ugo 权限信息是文件的属性,它指明了用户与文件之间的关系。但是真正操作文件的却是进程,也就是说用户所拥有的...

osc_xxbg6mig
2018/09/28
2
0
快速自检电脑是否被黑客入侵过(Linux版)

前言 严谨地说, Linux只是一个内核, 才算完整的操作系统, 但在本文里还是用通俗的叫法, 把,,,,等发行版都统称为. 本文里所说的方法不仅对Linux的发行版适用, 部分方法对操作系统也是适用的....

Neo_robot
2017/12/24
0
0
MySQL主从复制原理及配置详细过程以及主从复制集群自动化部署的实现

Technorati 标签:那你魔鬼 一、复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到...

王景帅
2018/06/26
0
0
多个平台的 Java Launcher 脚本

通常对于服务来说,过长的命令往往让人感到厌烦,人们需要的只是简单的操作,并且能够支持复杂的功能,对于 Java 开发的服务来说更是如此。 一个比较复杂的 Jar 服务使用Java启动,命令如下 ...

Force武装卫队
2015/06/09
3.4K
8

没有更多内容

加载失败,请刷新页面

加载更多

腾讯副总裁魏颖:提瓢入市,倚杖而归

  魏颖,腾讯公司副总裁,2008 年加入腾讯,全面负责公司薪酬福利、绩效管理、员工关系以及海外业务人力资源。   ————————   很多人对人力资源(HR)工作的理解就是一些人事流...

alkcendkljk
58分钟前
13
0
OSChina 周二乱弹 —— 我要一份儿大姐姐的爱

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @Cobbage :分享赵雷的单曲《阿刁 (Diao)》: 《阿刁 (Diao)》- 赵雷 手机党少年们想听歌,请使劲儿戳(这里) @喵星人123 :昨天睡到半夜 突然...

小小编辑
59分钟前
11
0
window下 mongodb开启用户名和密码 权限

在默认情况下,mongod是监听在127.0.0.1之上的,任何客户端都可以直接连接27017,且没有认证。 好处是,用户可以即时上手,不用担心被一堆配置弄的心烦意乱。 坏处是,公网服务器搭建MongoDB...

东东笔记
今天
9
0
数据倾斜

数据倾斜: 两种数据倾斜发生的现象: 80%情况下都发生挂了,只有极少20%情况下能把task执行完成 窄依赖:结构简单,如果发生数据丢失,方便查找丢失的数据 宽依赖:结构复杂,如何发生数据丢...

七宝1
今天
20
0
我的jdk源码(十一):ArrayList

一、概述 ArrayList类是AbstractList的子类,实现了具体的add(), set(), remove()等方法。它是一个可调整大小的数组可以用来存放各种形式的数据。 二、源码分析 (1) 类的声明,源码如下: ...

Java觉浅
昨天
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部