目录

工欲善其事

实践出真知

活跃标签: linux java mysql 待分类 js springboot win10 电路 vue macOS nginx esp32 windows git docker idea maven esp8266 python Arduino

存档:

X

运维时刻 [ Linux ] 脚本入门

开头

vim script.sh     用 vim 编写脚本
#!/bin/bash       脚本使用的解释器,通常用幻数 "#!" 指定
#AUTHOR           脚本作者
#DATE             脚本创作时间
#MAIL             脚本作者联系方式
#VERSION          脚本的版本

判断

判断进程是否运行

命令

ps aux | grep 进程名 | grep -v grep 进程存在则输出信息,不存在则没输出
ps -ef | grep 进程名 | grep -v grep | wc -l 进程存在则输出行数(也就是数量),不存在则输出0

其中以上两者输出的不同是由于后者加上了wc命令用于计算,这里-l计算行数。除此之外,ps的参数aux和-ef的区别就在于显示进程的风格(aux是BSD风格,而-ef是System V风格)和信息不同(COMMADN列如果过长,aux会截断,而-ef不会),但如果我们只是用来查看程序是否在运行则无所谓,两者效果一样。

解析
|表示管道,左端写入,右端读出;
grep为搜索命令,-v 表示反向查询,grep -v grep表示去除包含grep的项;
wc -l表示显示行数;
ps及以下参数查看进程信息:
  -e:显示所有进程
  -f:全格式
  -a:显示终端上的所有进程,包括其他用户的进程
  -u:以用户为主的格式来显示程序状况
  -x:显示所有程序,不以终端来区分

#!/bin/sh

# 方式 1
process=`ps aux | grep 进程名 | grep -v grep`;
if [ "$process" == "" ];then
        echo not running
else
        echo running
fi

# 方式 2
processNum=`ps -fe | grep 进程名 | grep -v grep | wc -l`
if [ $processNum -eq 0 ];then
        echo not running
else
        echo running
fi

创建时间戳的文件

格式化时间命令这样echo $(date +%Y-%m-%dT%H:%M:%S) 注意不能有空格!

稍微变一下touch test_$(date +%Y%m%d_%H%M%S).txt变成了以时间结尾的txt文件


标题:运维时刻 [ Linux ] 脚本入门
作者:llilei
地址:http://solo.llilei.work/articles/2023/09/27/1695782213823.html