对于初学者而言,因为没有实战经验,写不出来Shell脚本很正常,如果工作了几年的运维老年还是写不出来,那就是没主动找需求,缺乏练习,缺乏经验.针对以上问题,总结了30个生产环境中经典的Shell脚本,通过这些需求案例,希望能帮助大家提升Shell编写思路,掌握编写技巧. 先了解下编写Shell过程中注意事项: 开头加解释器:#!/bin/bash 语法缩进,使用四个空格:多加注释说明. 命名建议规则:变量名大写.局部变量小写,函数名小写,名字体现出实际作用. 默认变量是全局的,在函数中变量loc…
本文目录 21.从FTP服务器下载文件 22.连续输入5个100以内的数字,统计和.最小和最大 23.将结果分别赋值给变量 24.批量修改文件名 25.统计当前目录中以.html结尾的文件总大 26.扫描主机端口状态 27.Expect实现SSH免交互执行命令 28.批量修改服务器用户密码 29.打印乘法口诀 30.getopts工具完善脚本命令行参数 21.从FTP服务器下载文件 #!/bin/bash if [ $# -ne 1 ]; then echo "Usage: $0 filenam…
本文目录 11.iptables自动屏蔽访问网站频繁的IP 12.判断用户输入的是否为IP地址 13.判断用户输入的是否为数字 14.给定目录找出包含关键字的文件 15.监控目录,将新创建的文件名追加到日志中 16.给用户提供多个网卡选择 17.查看网卡实时流量 18.MySQL数据库备份 19.Nginx服务管理脚本 20.用户根据菜单选择要连接的Linux主机 11.iptables自动屏蔽访问网站频繁的IP 场景:恶意访问,安全防范 1)屏蔽每分钟访问超过200的IP 方法1:根据访问日志…
#!/bin/bash function ergodic(){ ` # do # "/"$file ] # then # ergodic $"/"$file # else # "/"$file | cut -d' ' -f1 >> /home/huanghongbo/out # fi # done do echo $file done } INIT_PATH="/home/huanghongbo/" ergodic…
发布:JB01   来源:脚本学堂     [大 中 小] 分享一例shell脚本,实现可以批量转换目录下的文件编码,很实用的一个小shell,有需要的朋友参考下.原文地址:http://www.jbxue.com/article/13953.html本节内容: 一例批量转换目录下文件编码的shell脚本代码. 需求描述:由于从window转linux过来,很多原来win下的gbk文件需要转换成utf8. 以下脚本仅判断非utf8文件转换成utf8文件,并且默认非utf8文件为gbk,如果文件类…
普通Shell脚本在终端下运行时,环境变量来自于init/profile/.bash_profile等,就是在当前终端下可以得到的环境,比如PATH.在service模式下,脚本运行在受限的环境中:比如      service tomcat restart等同于      env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "/etc/init.d/tomcat" restart 其中…
编写Shell过程中注意事项: 开头加解释器:#!/bin/bash 语法缩进,使用四个空格:多加注释说明. 命名建议规则:变量名大写.局部变量小写,函数名小写,名字体现出实际作用. 默认变量是全局的,在函数中变量local指定为局部变量,避免污染其他作用域. 有两个命令能帮助我调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程. 写脚本一定先测试再到生产上. 1.获取随机字符串或数字 获取随机8位字符串: 方法1: # echo $RANDOM |md5sum |cut…
演示效果: 1.一级菜单 2.二级菜单 3.执行操作 脚本参考: #!/bin/bash #author lic(oldboy linux student) #date 1304 DISK_NO="/dev/sda1" NGINX_DIR="/usr/local/tdoa/nginx/sbin/nginx" MYSQL_DIR="/usr/local/tdoa/mysql/bin/mysqld_safe" SERVER1="WEB&qu…
一bash的数值测试 -v VAR变量VAR是否设置 数值测试:-gt 是否大于greater-ge 是否大于等于-eq 是否等于-ne 是否不等于  not equal-lt 是否小于-le 是否小于等于 -eq是否等于表示变量值是数字,=表示变量值是字符串 [root@centos7 ~]# num=10; [[ "$num" -eq 10 ]] && echo true || echo false true [root@centos7 ~]# num=50; [[…
搜索了网上好像并没有杀掉指定进程下所有子进程(包括子进程的子进程)的脚本,自己琢磨写了一版,虽说比较简单,但希望分享大家,帮助需要的人 #!/bin/sh # 递归找到进程最底层子进程并杀除. mainName=$1 echo "=====开始=====" #grep -v可以过滤掉grep的进程,但测试时有时会出现问题,所以加上获取第一行 mainId=`ps -ef |grep ${mainName}|grep -v 'grep' |head -1|cut -c 9-15`#也可以…