复习项目中Linux常用指令,每天进步一点点(持续更新。。)

1.grep -v grep           去除grep自身占用的进程号,在脚本中常用到,目的就是为了返回想要的唯一进程号

案例脚本:

#!/bin/bash
#Desc 停止jenkins

# 1. 初始化端口号,默认为6380
if [ "x" != "x$1" ] ;
then 
   port=$1
else 
   port=6380
fi

# 2. 获取jenkins 运行id
result=`ps -ef | grep jenkins | grep $port | grep -v grep | grep -v /bin/bash `

if [ "x" = "x$result" ] ;
then 
   echo "No jenkins running on port $port !"
else 
   echo "Find the running jenkins on port $port:"
   echo $result
   echo
fi

# 3. 获取jenkins pid
pid=`echo $result | awk -F " " '{print $2}'`

# 4. 杀死jenkins
if [ "x" != "x$pid" ] ;
then 
   kill -9 $pid 
   echo "Killed the process: $pid"
fi

2.sudo           普通用户被赋予权限操作root指令

详解: Linux用户配置sudo权限(visudo)_韩帅平的博客-CSDN博客_visudo

3.expect  指令        用来实现远程服务器自动交互功能

详解 :文章正在审核中... - 简书

案例脚本:

#!/bin/bash
#Desc 构建jenkin任务

# 执行测试
java=/opt/app/jdk1.8.0_152/jre/bin/java
jenkins_cli=/opt/app/jenkins/war/jenkins-cli-2.138.2.jar
jenkins_url=http://xx.xxx.xxx.xxx:6380/jenkins
user=xxx
pwd=xxx


# 触发测试任务
$java -jar $jenkins_cli -s $jenkins_url -auth $user:$pwd build $1
[root@vm-kvm12080-app bin]# cat rmt-apachectl.sh
#!/bin/bash
#Desc 远程apache管理命令
 

# 校验参数
if [ $# -lt 3 ]; then
   echo "[error] 命令格式不正确!"
   exit 3
fi

# 获取参数
ip=$1
passwd=xxx
signal=$3
user=xx

# 执行远程命令
expect -c "spawn ssh -t $user@$ip sudo /opt/app/apache24/bin/apachectl -k $signal
expect {
*yes/no* { send yes\r; exp_continue }
*password:* { send $passwd\r } 
}
interact

exit
"

4.部署微服务应用脚本案例

#声明变量:

run_dir=/opt/app/falcon-ms
tmp_dir=/opt/app/ms-wars/tmp
bk_dir=/opt/app/ms-wars/backup
ms_name=falcon-ms-quartz
log_file=/opt/applog/falcon-ms-logs/falcon-ms-starter/$ms_name.log
java=/opt/app/jdk/jdk1.8.0_181/bin/java

# 停止原来的服务 (printf$2:表示打印第二个字段。 awk '{printf$2}' : 一行一行的读取打印每行的第二个字段。xargs kill -9: 将其接收的进程号杀死)

ps -ef | grep $ms_name | grep -v grep | awk '{printf$2}' | xargs kill -9

# 清理日志(> 输出重定向)
echo "" > $log_file

# 备份
dt=`date  +"%Y%m%d"`
mv $run_dir/$ms_name.jar $bk_dir/$ms_name.jar.$dt

# 部署新包
mv $tmp_dir/$ms_name.jar $run_dir

# 启动服务 (>"和“2>" 这两个的结合体就是 ”&>" 结果就是你输入命令,正确和错误信息都不输出在屏幕上直接输到你重定向的一个文件内。)
nohup $java -jar $run_dir/$ms_name.jar &> $log_file &

5.linux 查找应用程序安装目录

如果命令 which 和 whereis 都找不到安装目录,可使用以下办法:

   示例: ps -ef|grep redis

              得到了进程号 xxxx

               然后 ls -l /proc/xxxx/cwd

顺便还可以找到配置文件路径:

示例:locate nginx.conf

6.查看端口占用

netstat -lunup

7.查看日志文件常用指令

  # 在/data/reports目录下查询test关键字文件
  grep -r "test"  /data/reports

  # 在/etc/目录下,查找带zcwyou关键词的文件
  find /etc/ -type f | xargs grep 'zcwyou'


  # 在目录/var/zcwyou里,找到.txt后缀的文件,文件名大小写敏感。即只能匹配.txt后缀的
  find /var/zcwyou -name '*.txt'


  # grep递归检索指定扩展名的文件内容(grep指定文件后缀名)的语法为:
  grep -rn --include='*.后缀名' "检索词"


  # linux下如何在.gz包中查找指定内容
  gunzip -c file.gz | grep '需要搜索的内容'
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诚信赢天下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值