bash编程之xargs实用技巧
xargs结合管道操作符|,可以完成很多看似复杂的问题:
1、快速删除所有.log日志文件
机器运行久了,就会有各式各样的日志文件,散落在各个目录下,可以利用下面的方法:
find ./ -name '*.log' | xargs rm -rf
上面的代码,先把当前目录及子目录下的所有后缀是log的文件找出来,然后做为参数,传递给 rm -rf ,这样就把日志文件给干掉了。
2、根据名字找到运行的进程并杀掉
比如:有一个java程序在服务器上,我们在写部署脚本时,要先把之前在运行的程序kill掉,如果只知道运行的mainClass名称,不知道pid,可以参考下面这样
ps -ef|grep java| grep 'mainClass名称' | awk '{print $2}' | xargs kill -
大家把上面的'mainClass名称'换成需要查找的进程名即可,原理还是先找到所有java进程,然后再grep过滤出指定的mainClass,再用awk把pid取出来,最后利用xargs传给kill 干掉。(注:如果不希望强制杀死,而是等当前请求处理完后再结束,把-9去掉即可)
3、批量删除指定key前缀的redis缓存
redis并没有批量删除某些前缀key缓存的方法,可以参考下面的做法
./redis-cli -h 10.1.2.3 -p -n KEYS "shop:info:*" | xargs ./redis-cli -h 10.1.2.3 -p -n DEL
即:先连到10.1.2.3:6381 ,并切换到db1 ,然后找到shop:info:*匹配的所有key,然后再用xargs传到后面的命令删除
4、找出端口冲突的进程并kill掉
有时候启动一个程序时,发现端口被其它程序占用了,下面的方法可以干掉占用的程序
echo $(lsof -i: | awk '{print $2}') | awk '{print $2}' | xargs kill -
即:找出8081端口对应的pid,然后干掉
明白原理后,相信大家可以举一反三,发现更多的应用场景。
bash编程之xargs实用技巧的更多相关文章
- bash编程之case语句,函数
bash脚本编程:之case语句 条件测试: 0: 成功 1-255: 失败 命令: [ expression ] [[ expression ]] test expression exP ...
- js基础进阶--编的实用技巧(一)
我的个人博客:http://www.xiaolongwu.cn 在平时的开发中,编码技巧很重要,会让你少写很多代码,起到事倍功半的效果. 下面总结几种简单的技巧,大家共同学习一下 1. 利用+.-./ ...
- shell脚本编程之for语句、if语句使用介绍
介绍了shell脚本编程之for语句.if语句的使用方法. 上部: 面向过程: 顺序执行 选择执行: if, case 循环执行: for, while, until 一.for语句 格式: ...
- iOS 多线程编程之Grand Central Dispatch(GCD)
介绍: Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其它的对称多处理系统的系统.这建立在任务并行运行的线程池模式的基础上的. 它 ...
- Linux编程之ICMP洪水攻击
我的上一篇文章<Linux编程之PING的实现>里使用ICMP协议实现了PING的程序,ICMP除了实现这么一个PING程序,还有哪些不为人知或者好玩的用途?这里我将介绍ICMP另一个很有 ...
- shell编程之awk命令详解
shell编程之awk命令详解 a:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; out ...
- Linux中编写Bash脚本的10个技巧
Shell 脚本编程 是你在 Linux 下学习或练习编程的最简单的方式.尤其对 系统管理员要处理着自动化任务,且要开发新的简单的实用程序或工具等(这里只是仅举几例)更是必备技能. 本文中,我们将分享 ...
- 使用FlashPaper在线转换.doc为.swf_实用技巧
https://yq.aliyun.com/ziliao/160044?spm=5176.8246799.0.0.JBbqjY 摘要: 本文讲的是使用FlashPaper在线转换.doc为.swf_实 ...
- Buildroot构建指南--快速上手与实用技巧
Buildroot官方全英文使用手册的链接是https://buildroot.org/downloads/manual/manual.html,需要知道每一个细节的朋友,可以仔细查阅,这篇文章只是我 ...
随机推荐
- J2EE完全手册(二)
1.2 客户端 (Web客户端,应用程序客户端) 1.2.1 Web客户端: 一般简单讲,就是显示由在Web层的web组件中生成的包含Html 及 XML标记语言的动态Web页面(.jsp[.do]) ...
- HDU 2521 反素数 模拟题
解题报告:水题,直接附上代码,只是觉得这题的作者是不是吃饱了饭撑的,反素数的概念跟这题一点关系都没有. #include<cstdio> int judge1(int k) { ; ;i& ...
- 使用 scm-manager 搭建 git/svn 代码管理仓库(二)
主要介绍scm的配置. 1.配置为在Windows服务中启动scm-manager的启动方式有多种,可以在DOS(即命令行CMD模式)中启动,也可以在Windows服务中启动. 下面我们采用Windo ...
- deeplearning.ai学习LSTM
一.LSTM架构与公式 这里的a<t>表示的就是原始输出,y<t>表示的就是经过softmax的输出,c<t>相当于状态.u(update)代表是输入门,f代表遗忘 ...
- find中的-print0和xargs中-0的奥妙【转】
find cygnus/firmware_cygnus/target/linux/brcm5830/files/arch/arm/mach-iproc/pm_iproc/ -name "*. ...
- C++获取文件夹下所有文件名
查找文件需要一个结构体和几个函数.结构体为struct _finddata_t,函数为_findfirst.findnext和_findclose. struct _finddata_t 这个结构体是 ...
- TimedSupervisorTask
啊啊啊 UnsupportedOperationException Lists.emptyLIst() . add (String[] ) 这他妈的不行.. .2017/09/13 16:42:16. ...
- [原创]win7环境下搭建eclipse+python+django开发环境
一)工具下载 a)eclipse(最新版4.3.1)官网下载地址 http://www.eclipse.org/downloads/ b)python (2.X版本)官网下载地址 http://pyt ...
- mysql存储表情字符
windows下是my.inilinux下是my.cnf 路径是: /etc/my.cnf 参考: https://blog.csdn.net/fhzaitian/article/details/53 ...
- Z字形变换
将字符串 "PAYPALISHIRING" 以 Z 字形排列成给定的行数: P A H N A P L S I I G Y I R 之后从左往右,逐行读取字符:"PAHN ...