grep

Linux磁盘空间被占用问题

久未见 提交于 2020-03-19 13:41:38
3 月,跳不动了?>>> 最近遇到一个非常诡异的Linux磁盘空间被占用的问题,莫名其妙的磁盘满了,使用在根目录du -h命令查看却只占用到12%左右 可直接使用df -h命令查看却显示磁盘已经100%use了,如下图: 实在匪夷所思,后来找到问题是因为之前执行rm -rf删除操作的进程没有正常结束掉,导致虽然文件看着是被删除了(看不到了),但是那个进程还占用着,系统磁盘空间实际上没有被 释放,只是将文件标记为deleted状态,类似windows下的回收站状态。使用du查看时,因为没有该删除状态文件的节点信息,所以就不做统计,从而导致与df的结果不一致。 要解决这个问题只需要将deleted状态文件删除,则根据pid直接kill调相应进程即可。 使用losf命令列出deleted状态的进程号 lsof |grep delete 然后使用kill -9命令删除进程号即可,即上图的第二列,这样状态的文件可能会很多,如何快速删除呢?不要慌有办法的,使用以下命令即可 lsof |grep delete|grep -v grep|cut -c 9-15| xargs kill -9 清理完之后再使用df -h命令看看: 瞬间释放了84G出来,哈哈哈,开心~ 现在和du -h看到的一致了 说明 列出了当前主机中运行的进程中delete状态的进程 lsof | grep delete |

Piping of grep is not working with tail? [duplicate]

笑着哭i 提交于 2020-03-19 07:01:13
问题 This question already has answers here : How to 'grep' a continuous stream? (12 answers) Closed 5 years ago . I am trying to debug one scenario by checking the logs, here is my command tail -f eclipse.log | grep 'enimation' | grep -i 'tap' Basically what I am trying to to is that, of all of the line, I am printing lines with enimation in it, then of all of the animation, I want to see the animation with "tap" in it. Here is the sammple data for which it is returning empty results ******

bash grep text within squared brackets

a 夏天 提交于 2020-03-19 06:48:07
问题 I try to grep a text from a log file on a linux bash.The text is within two square brackets. e.g. in: 32432423 jkhkjh [234] hkjh32 2342342 I am searching 234 . usually that should find it \[(.*?)\] but not with |grep \[(.*?)\] what is the correct way to do the regular expression search with grep 回答1: You can look for an opening bracket and clear with the \K escape sequence. Then, match up to the closing bracket: $ grep -Po '\[\K[^]]*' <<< "32432423 jkhkjh [234] hkjh32 2342342" 234 Note you

在使用grep命令时出现错误Binary file (standard input) matches

荒凉一梦 提交于 2020-03-18 21:26:49
3 月,跳不动了?>>> 错误解决:grep时出现错误 Binary file (standard input) matches 在使用grep命令时出现错误Binary file (standard input) matches 解决方法 加上-a 例如原本为 grep hello 改为 grep -a hello 来源: oschina 链接: https://my.oschina.net/miaojiangmin/blog/3197675

PowerShell类grep

你离开我真会死。 提交于 2020-03-18 14:19:33
PowerShell类grep 方法一: windows下没有grep不过有findstr, 功能差不多 方法二: powershell自带的正择功能 xxx | where {$_ -match "alicloud_slb"} 不过一个常用功能这么长写起来太麻烦了, 顺手写个脚本: 1 function Win-Grep 2 { 3 param( 4 [Parameter(Mandatory=$true,ValueFromPipeline=$true)] 5 $pipelineInput, 6 [Parameter(Mandatory=$true,ValueFromPipeline=$false)] 7 $grep 8 ) 9 10 Process { 11 $out = @() 12 ForEach($input in $pipelineInput) 13 { 14 if($input -match $grep) 15 { 16 $out = $out + $input 17 } 18 } 19 return $out 20 } 21 } 来源: https://www.cnblogs.com/JiangOil/p/12516935.html

tomcat_deploy 平滑启动脚本

痴心易碎 提交于 2020-03-18 08:19:52
1.此脚本需要nginx安装ginx_upstream_check_module 配置完成平滑重启 2.脚本内容如下: 1 #!/bin/bash 2 cat <<MADAY 3 ===---------------------------------------------------------=== 4 +-------------------------------------------------------------+ 5 A)服务器192.168.1.1 tomcat后台更新 6 B)服务器192.168.1.2 tomcat后台更新 7 C)服务器192.168.1.3 tomcat后台更新 8 D)三台tomcat服务器无人值守后台跟新 9 +-------------------------------------------------------------+ 10 ===---------------------------------------------------------=== 11 MADAY 12 13 export USER=root 14 export PASSWD=Quanjing321 15 #1.##################################### TOMCAT 8080 SHUTDOWN and

如何过滤 adb logcat 输出

此生再无相见时 提交于 2020-03-17 23:02:24
某厂面试归来,发现自己落伍了!>>> 简介: 本文介绍如何在 shell 命令行中过滤 adb logcat 输出的几个小技巧。 开发当中经常看到别人的 log 如洪水般瞬间刷满了屏幕,对自己有用的信息都被淹没了,影响心情也影响效率。下面是几个我所知道的过滤方法。 1. 只显示需要的输出,白名单 最方便的当然是通过管道使用 grep 过滤了,这样可以使用 grep 强大的正则表达式匹配。简单的匹配一行当中的某个字符串,例如 MyApp: adb logcat | grep MyApp adb logcat | grep -i myapp #忽略大小写。 adb logcat | grep --color=auto -i myapp #设置匹配字符串颜色。更多设置请查看 grep 帮助。 进阶一点可以使用 grep 的正则表达式匹配。例如上一个例子会匹配一行中任意位置的 MyApp,可以设置为仅匹配 tag。默认的 log 输出如下,如果修改过输出格式相应的表达式也要修改。 I/CacheService( 665): Preparing DiskCache for all thumbnails. 可以看出 tag 是一行开头的第三个字符开始,根据这点写出表达式: adb logcat | grep "^..MyApp" 根据这个格式也可以设置只显示某个优先级的 log

shell实现的守护进程

☆樱花仙子☆ 提交于 2020-03-17 19:43:12
代码本来是别人那里拿来的,自己又改了下,给busybox用。 #! /bin/sh PRO_PATH=/opt/myapp PROGRAM=packet_analyzer while true ; do sleep 1 PRO_NOW=`ps | grep $PROGRAM | grep -v grep | wc -l` if [ $PRO_NOW -lt 1 ] ; then $PRO_PATH/$PROGRAM 2>/dev/null 1>&2 & date >> /tmp/god.log echo "we lost the program..." >> /tmp/god.log fi PRO_STAT=`ps | grep $PROGRAM | grep T | grep -v grep | wc -l` if [ $PRO_STAT -gt 0 ] ; then killall -9 $PROGRAM sleep 1 $PRO_PATH/$PROGRAM 2>/dev/null 1>&2 & date >> /tmp/god.log echo "the shit is sleeping..." >> /tmp/god.log fi done exit 0 来源: https://www.cnblogs.com/pied/p/4436771.html

Linux kill 杀死指定进程

断了今生、忘了曾经 提交于 2020-03-17 19:39:10
一 杀死指定进程 现知道有一个php线程正在运行,需要杀死 root 26278 1 0 2015 ? 00:00:31 /usr/local/php/bin/php /var/www/html/redis/daemon/daemon_register.php root 26280 1 0 2015 ? 00:00:34 /usr/local/php/bin/php /var/www/html/redis/daemon/daemon_register.php ps -ef 查询运行进程 leo@localhost$ ps -ef | grep php root 26278 1 0 2015 ? 00:00:31 /usr/local/php/bin/php /var/www/html/redis/daemon/daemon_register.php root 26280 1 0 2015 ? 00:00:34 /usr/local/php/bin/php /var/www/html/redis/daemon/daemon_register.php ps -ef 查询并过滤进程id: leo@localhost$ ps -ef | grep php root 26278 1 0 2015 ? 00:00:31 /usr/local/php/bin/php /var/www/html

搭建 Java 部署环境

♀尐吖头ヾ 提交于 2020-03-17 19:07:16
使用 yum 命令 查看软件包列表: # yum list | grep [ 软件包关键字 ] # grep, 否则罗列的内容会非常多 , 导致机器很卡 . 安装软件包(需要管理员权限): # yum install [ 软件包名字 ] 卸载软件包 ( 需要管理员权限 ): # yum remove [ 软件包名字 ] 注意事项: yum 所有的命令必须保证网络是联通情况下 , 才能使用 . yum install / yum remove 必须具备管理员权限 (root 用户 ). 可以使用 ping www.baidu.com 来检测网络的畅通情况 . 安装 git 1. 查看 git 安装包 # 由于带 git 关键字的软件包很多 , 可以在 grep 的时候加上 -w , 表示全字匹配 . # yum list | grep git -w 2. 安装 git # yum install git.x86_64 3. git 的基本使用 ( 和 Windows 版本的 git 是一致的 . 只是使用命令行操作 ) git clone git add git commit git push 安装 JDK 1. 查看 JDK 安装包 # yum list | grep openjdk 2. 安装 JDK # yum install -y java-1.8.0-openjdk