运维时刻 [ 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文件