分享9个实战及面试常用Linux Shell脚本编写

注意事项

1)开头加解释器:#!/bin/bash

2)语法缩进,使用四个空格;多加注释说明。

3)命名建议规则:变量名大写、局部变量小写,函数名小写,名字体现出实际作用。

4)默认变量是全局的,在函数中变量local指定为局部变量,避免污染其他作用域。

5)有两个命令能帮助我调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程。

6)写脚本一定先测试再到生产上。

1 获取随机字符串或数字

获取随机8位字符串:

获取随机8位数字:

cksum:打印CRC效验和统计字节

2 定义一个颜色输出字符串函数

function关键字定义一个函数,可加或不加。

3 批量创建用户

4 检查软件包是否安装

5 检查服务状态

6 检查主机存活状态

方法1: 将错误IP放到数组里面判断是否ping失败三次

方法2: 将错误次数放到FAIL_COUNT变量里面判断是否ping失败三次

方法3: 利用for循环将ping通就跳出循环继续,如果不跳出就会走到打印ping失败

7 监控CPU、内存和硬盘利用率

1)CPU

借助vmstat工具来分析CPU统计信息。

2)内存

3)硬盘

8 批量主机磁盘利用率监控

前提监控端和被监控端SSH免交互登录或者密钥登录。

写一个配置文件保存被监控主机SSH连接信息,文件内容格式:IP User Port

9 检查网站可用性

1)检查URL可用性

2)判断三次URL可用性

思路与上面检查主机存活状态一样。

总结

以上所述是小编给大家介绍的分享9个实战及面试常用Shell脚本编写,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Linux下使用Shell脚本获取终端宽度的解决方法

    获取终端大小时候的学习 在写shell脚本时想输出一行占满整个终端屏幕宽度的 横杠 发现for循环会导致执行缓慢 解决方法: 使用yes 命令 sed '50q' 显示50行 tr -d '\n' 删除 \n 多次重复输入相同字符可用yes yes "2" | sed '50q' | tr -d '\n' 想法来自:打印100个连续的符号,不用循环 ---------------------------------------------------------------------

  • Linux通过Shell脚本命令修改密码的两种方式

    交互方式修改密码 1. ssh 远程到主机: 2. 切换到root账号: [一般都是切换到root进行密码修改,如果普通用户修改自己的密码,要输入原密码,然后新密码要满足复杂度才OK]: 3. passwd username 使用passwd username 修改 username 的密码: 使用该命令会有提示,即进入了交互界面,输入密码即可. 使用脚本修改密码 很多时候我们可能需要远程执行服务器上的脚本来修改账号密码,此时就没有办法进行交互了. 此时可以使用如下两种方式修改密码: 方式1:

  • Linux crontab定时执行Shell脚本需要执行特定的命令时解决思路

    由于一些不可抗拒的原因,项目部署后需要定时检测项目是否正常运行,否则将执行重启命令. 在具体实施过程中发现,定时器执行无误,但是重启命令无法正常启动.多方查找发现Shell脚本中的Java命令需要引入环境变量方可正常执行.因此做了一下修改,脚本如下(仅供参考): 1.crontab执行配置 * * * * * cd /项目目录 && ./auto_start.sh >> /log/auto.out 2.Shell脚本 #!/bin/bash #导入环境变量 export LAN

  • linux环境下编写shell脚本实现启动停止tomcat服务的方法

    第一步:以管理员的身份进入控制台,在指定目录下新建一个shell脚本,我这里命名为tomcat.sh 第二步:编写shell脚本 #!/bin/bash tomcat_home=/usr/tomcat/apache-tomcat-8.0.48 SHUTDOWN=$tomcat_home/bin/shutdown.sh STARTTOMCAT=$tomcat_home/bin/startup.sh case $1 in start) echo "启动$tomcat_home" $STAR

  • Linux中shell脚本获取当前工作目录的方法

    如下: workdir=$(cd $(dirname $0); pwd) 步骤1 dirname $0,取得当前执行的脚本文件的父目录 步骤2 cd到父目录,即进入当前工作目录 步骤3 pwd显示当前工作目录 以上这篇Linux中shell脚本获取当前工作目录的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • linux shell脚本对未定义变量的判断以及if的用法详解

    环境 操作系统:win10 虚拟机:centos7 需求 因为公司有个脚本,是用于启动程序的,但是每次启动都要手动做如下两个操作: ①先查询之前的进程ID ②杀死之前的,在启动新了 时间长了弄得我很烦躁,所以就琢磨下,把上面的的操作一起整合到启动脚本里去. 最开始我是这么写的: #!/bin/bash echo "ggjob-search..." pid=`ps -ef|grep -w ggjob-search|grep -v grep|grep -v ggjob-search.sh|

  • Linux Crontab Shell脚本实现秒级定时任务的方法

    一.编写Shell脚本crontab.sh #!/bin/bash step=1 #间隔的秒数,不能大于60 for (( i = 0; i < 60; i=(i+step) )); do $(php '/home/www/php/crontab/crontab.php') sleep $step done exit 0 二.crontab -e 输入以下语句,然后:wq 保存退出 # m h dom mon dow command * * * * * /home/www/php/crontab

  • 使用Linux shell脚本实现FTP定时执行批量下载指定文件

    使用FTP定时批量下载指定文件的shell脚本,具体实例介绍如下所示: 1.目标FTP服务器地址 #FTP服务器地址 ip=10.19.15.23 2.FTP账号和密码 u=账号 p=密码 3.使用mget结合正则表达式下载文件 #获取昨天日期,为后面下载使用 T=`date -d yesterday +%Y%m%d` 4.连接FTP服务器,到指定路径下下载文件 ftp -n <<EOF open $ip user $u $p binary cd /hour #远程服务器文件目录 lcd /h

  • Linux启动jar包的shell脚本

    背景: 项目设备端需要运行jar包程序与服务端进行socket连接并发送数据,每次启动进程时,都需要在Linux终端输入启动jar包的命令,比较繁琐,随之尝试将启动jar包的命令写入shell脚本文件中,实现操作shell脚本启动jar包程序的功能. 编写的socdev.sh脚本文件中命令如下: #启动命令所在目录 HOME='/home/pi/Desktop/java' #获取mac地址(唯一的) mac=`ifconfig | grep eth0 | awk '{print $5}'` st

  • 在linux shell脚本中root切换到普通用户执行脚本或命令的方法

    需求: 安装deb包,设置程序安装后启动,不需要root权限启动程序 | 不能用root权限启动 其他开机启动选项 方法:root临时降低权限 secUser=`who am i | awk '{print $1}'` #echo $secUser su $secUser -c <指令> > /dev/null 2>&1 & #这一条命令的执行权限是临时的,只在本条语句起作用 id -u # 结果为0,还是root用户权限 附: su --help -c, --co

随机推荐