10 Apr 2018 shell技巧分享(二) 这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。 1 ps + grep命令 $ sleep 1234 & [1] 19340 $ sleep 1234 & [2] 19342 $ sleep 1234 & [3] 19344 $ alias | grep psg alias psg='ps -ef | grep --color=auto' $
在Linux的日常使用中,grep是一个非常强大的工具,我们可以使用它来搜索文件或命令输出中的特定模式。然而,有时我们可能遇到一个微妙的问题:当我们使用grep来搜索进程时,grep可能会匹配到包含grep自身的行。在本文中,我们将探讨这个问题的起因,以及如何解决它。
有了攻击脚本的话,我们就能更加快速的了解他的攻击方式了,所以让我们来分析下脚本到底干了些什么:
最近工作中使用的自动化脚本涉及的一个功能是通过shell脚本来控制进程的重启(因为自己以前写过, 但是因为归纳总结做的不到位,导致找不到原来的笔记了)只能从网上搜下大概的,然后根据自己的理解重新整理下了, 整理的同时也复习了一下基本的shell脚本的编写, 做到温故知新!
这是大家很熟悉的命令,这里就不再多说,就是从当前系统运行的进程的进程名中包含aaa关键字的进程。
服务器CPU资源使用一直处于100%的状态,通过 top 命令查看,发现可疑进程 kdevtmpfsi。通过 google搜索,发现这是挖矿病毒。
多种后台运行方法总结,nohup, disown, setsid, (...&), screen, tmux
参考文档 https://www.freebuf.com/articles/web/94237.html https://www.4hou.com/vulnerable/13843.html https://laucyun.com/17e194c26e4554cab975aae760bad553.html
kill 命令用于删除执行中的程序或工作。kill 命令向进程发送信号。如果您未指定要发送的信号,则默认情况下会发送 TERM 信号,从而终止该过程。
常见面试题:如何用一句 linux 指令,查找到指定名称的进程并杀掉 常用的杀进程的三个指令:killall 、kill 、pkill
grep 简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也
linux 下服务器程序会因为各种原因dump掉,就会影响用户使用,这里提供一个简单的进程监控和重启功能。
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。 grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。 grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0
Python 中的 subprocess 模块可以轻松实现执行外部命令和进程的功能。我们经常会用它来调用一些命令行工具的功能。但是在使用 subprocess 调用复杂命令时,有一个容易犯但影响比较大的错误 - 使用shell=True参数,导致命令行解析错误,子进程执行失败。
在Linux 中,我们经常使用“ps -ef|grep tomcat” 查看进程,如下图是我操作的服务器上使用该命令后查看的结果:
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux。这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同。现在的大部分Linux系统都是可以同时使用这两种方式的。
Linux系统中常常需要获取进程的pid进行一些操作,而Linux 的交互式 Shell 与 Shell 脚本存在一定的差异,主要是由于后者存在一个独立的运行进程,因此在获取进程 pid 上二者也有所区别。
但是,直接使用python manage.py runserver启动是没问题的。其实只是我没有将uwsgi配置好,不过本章节主要是想看看如何使用gunicorn来部署试试。
ps -ef | grep yum | grep -v grep | awk ‘{print “kill “$2}’
作为Java开发者,很多场景下会使用SpringBoot开发Web应用,目前微服务主流SpringCloud全家桶也是基于SpringBoot搭建的。SpringBoot应用部署到服务器上,需要编写运维管理脚本。本文尝试基于经验,总结之前生产使用的Shell脚本,编写一个可以复用的SpringBoot应用运维脚本,从而极大减轻SpringBoot应用启动、状态、重启等管理的工作量。本文的Shell脚本在CentOS7中正常运行,其他操作系统不一定适合。如果对一些基础或者原理不感兴趣可以拖到最后,直接拷贝脚本使用。
进程是一个非常重要的概念,我们都知道,操作系统合理地组织、调度计算机的工作与资源。而在引入线程前,进程是操作系统进行资源分配和调度的基本单位。所以,探究Linux进程以及与进程有关的检测与控制是非常有意义的。这次内容如下。
1. command & : 后台运行,你关掉终端会停止运行 2. nohup command & : 后台运行,你关掉终端也会继续运行
很多程序员熟悉了在 Windows 环境下开发,而我们服务器一般都是 Linux 系统。当有一天你需要在 Linux 服务器上做一些配置或者故障排除的时候,你会很困惑,不知道如何下手。原因是对 Linux 常用的命令还不熟悉,今天我就给大家介绍几个 Linux 常用命令。掌握它们的用法后,我们在使用 CRMEB 打通版系统的时候就能如鱼得水,可以大大提高工作效率。
Centos批量杀进程 #列出了当前主机中运行的进程中包含firefox关键字的进程 ps -ef | grep serevr.php| grep -v grep #列出了要kill掉这些进程的命令,并将之打印在了屏幕上 ps -ef | grep serevr.php| grep -v grep | awk '{print "kill -9 "$2}' #后面加上|sh后,则执行这些命令,进而杀掉了这些进程 ps -ef | grep serevr.php| grep -v grep
3.显示所有进程信息 ps -A 显示所有进程信息,连同命令行 ps -ef ps 与grep 组合使用,查找特定进程 ps -ef|grep geth
1) 查看进程的方法: ps -ef 或者 ps aux root 15087 0.0 0.0 0 0 ? S 23:31 0:00 [kwo
这时候我们就可以使用xargs 命令了。它的作用是将管道或标准输入的数据转换成小块分段传递给其他命令。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/details/77732252
其中-s 9 制定了传递给进程的信号是9,即强制、尽快终止进程。各个终止信号及其作用见附录。
grep s_app 表示查找要杀死的进程。这个s_app 就是要查找杀死的进程名字.
我们都知道,在开发的过程中,有很多部署自己微服务的方式,其中有各种各样的不同操作,比如使用 docker 打包为镜像的方式,还有基础使用 jar 包的方式进行部署,但是呢?使用 jar 包部署,那就离不开这个启动 jar 包的脚本命令,总不能每次都是直接自己手动杀端口,然后再重新启动吧,今天了不起来带大家看一下这个 Shell 脚本,并且写一个 Shell 脚本通用给大家,拿来可用。
1.查看进程 ps命令查找与进程相关的PID号: ps a 显示现行终端机下的所有程序,包括其他用户的程序。 ps -A 显示所有程序。 ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。 ps -e 此参数的效果和指定"A"参数相同。 ps e 列出程序时,显示每个程序所使用的环境变量。 ps f 用ASCII字符显示树状结构,表达程序间的相互关系。 ps -H 显示树状结构,表示程序间的相互关系。 ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。 ps s 采用程序信号的格式显示程序状况。 ps S 列出程序时,包括已中断的子程序资料。 ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。 ps u 以用户为主的格式来显示程序状况。 ps x 显示所有程序,不以终端机来区分。 最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。 ps aux | grep program_filter_word,ps -ef |grep tomcat ps -ef|grep java|grep -v grep 显示出所有的java进程,去处掉当前的grep进程。 2.杀死进程 使用kill命令结束进程:kill xxx 常用:kill -9 324 Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME
在编写shell脚本时,调试是个比较麻烦的事,特别是涉及到多层管道命令的时候,会产生多个中间结果,tee命令的作用是从标准输入中读取数据写入标准输出或文件中,利用它可以从管道中读取中间结果并写入本地临时文件中,通过中间结果可以一步一步的定位到脚本的错误
区别: kill命令默认的信号就是15,也就是 kill -15 ,被称为优雅的退出。
文件目录常用操作 1、查找文件 (1)find命令 格式:find 目录名 条件 常见条件: -name指定要被寻找的文件或者目录的名称(可用通配符) -type x以文件类型作为寻找条件(x代指文件类型) 例:find /temp –name “abc*” –type f (2)diff命令----常用于文件大致相同的情况下 格式:diff –y 文件名1 文件名2 (3)grep命令----查找文本文件的内容,并把匹配的文本打印出来 a.用处:查看日志,查看命令输出(支持正则表达式搜索
grep命令是查找,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name)。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。
发送指定的信号到相应进程。不指定信号将发送SIGTERM(15)终止指定进程。如果无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户可操作所有用户的进程,非root用户只能操作自己的进程。
在配置动作中,我们可以设置相应的报警媒介给工作人员报警。但其实不用每次出故障都立即报警,也可以尝试先让zabbix为我们重启相应的服务,如果多次重启都失败了,则继续报警,让负责人来处理相关问题。
工作中积累了好多关于服务器相关的命令,都是平时常用的,记录一下分享给大家,希望有帮助。
版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢
1.查找文件 find / -name filename.txt 根据名称查找 /目录下的 filename.txt 文件。
之前写shell脚本的时候,有这样一个需求:我需要创建一些文件,并将内容输入到文件中。如果创建一个文件内容模板,然后通过$1,$2传参的形式修改某些值,这样做感觉太不方便。后来从网上找了到 cat EOF 的用法,完全符合我的使用场景。
其中,while循环的条件是变量 int<=10 ,每次循环都打出变量int的值,然后int的值增加1,随后程序等待1秒,等待结束后再进入下次循环。
任何进程都与文件关联;我们会用到lsof工具(list opened files),作用是列举系统中已经被打开的文件。在linux环境中,任何事物都是文件,设备是文件,目录是文件,甚至sockets也是文件。用好lsof命令,对日常的linux管理非常有帮助
在linux系统中,ps是简单而强大的进程查看命令,而ps -aux和ps -ef是打印出所有进程。其中的参数详解如下:ps -aux是以BSD方式显示a显示所有用户的进程(show processes for all users)u 显示用户(display
领取专属 10元无门槛券
手把手带您无忧上云