收集整理的较为经典的shell脚本合计(六)

作者:微信小助手

发布时间:2020-06-08T22:30:55

文章出自  CSDN


点击蓝字波哥的IT人生,关注我们




50、删除某个目录下大小为 0 的文件

#!/bin/bash# 删除某个目录下大小为 0 的文件 #/var/www/html 为测试目录,脚本会清空该目录下所有 0 字节的文件dir="/var/www/html"find $dir -type f -size 0 -exec rm -rf {} \;

51、查找 Linux 系统中的僵尸进程

#!/bin/bash# 查找 Linux 系统中的僵尸进程 # awk 判断 ps 命令输出的第 8 列为 Z 是,显示该进程的 PID 和进程命令ps aux | awk '{if($8 == "Z"){print $2,$11}}'

52、提示用户输入年份后判断该年是否为闰年

#!/bin/bash# 提示用户输入年份后判断该年是否为闰年 # 能被4整除并且并不能被100整除的年份是闰年# 能被400整除的年份也是闰年read -p "请输入一个年份:" year if [ "$year" = "" ];then    echo "没有输入年份"    exitfi#使用正则测试变量 year 中是否包含大小写字母if [[ "$year" =~ [a‐Z] ]];then    echo "你输入的不是数字"    exitfi# 判断是否为闰年if [ $[year % 4] -eq 0 ] && [ $[year % 100] -ne 0 ];then    echo "$year年是闰年"  elif [ $[year % 400] -eq 0 ];then    echo "$year年是闰年"else    echo "$year年不是闰年"fi

53、生成随机密码(urandom 版本)

#!/bin/bash# 生成随机密码(urandom 版本)  # /dev/urandom 文件是 Linux 内置的随机设备文件# cat /dev/urandom 可以看看里面的内容,ctrl+c 退出查看# 查看该文件内容后,发现内容有些太随机,包括很多特殊符号,我们需要的密码不希望使用这些符号# tr ‐dc '_A‐Za‐z0‐9' < /dev/urandom# 该命令可以将随机文件中其他的字符删除,仅保留大小写字母,数字,下划线,但是内容还是太多# 我们可以继续将优化好的内容通过管道传递给 head 命令,在大量数据中仅显示头 10 个字节# 注意 A 前面有个下划线tr -dc '_A‐Za‐z0‐9' </dev/urandom | head -c 10

54、生成随机密码(字串截取版本)

#!/bin/bash# 生成随机密码(字串截取版本)  # 设置变量 key,存储密码的所有可能性(密码库),如果还需要其他字符请自行添加其他密码字符# 使用$#统计密码库的长度key="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"num=${#key}# 设置初始密码为空pass=''# 循环 8 次,生成随机密码# 每次都是随机数对密码库的长度取余,确保提取的密码字符不超过密码库的长度# 每次循环提取一位随机密码,并将该随机密码追加到 pass 变量的最后for i in {1..8}do    index=$[RANDOM%num]  pass=$pass${key:$index:1}doneecho $pass

55、生成随机密码(UUID 版本,16 进制密码)

#!/bin/bash# 生成随机密码(UUID 版本,16 进制密码) uuidgen

56、生成随机密码(进程 ID 版本,数字密码)

#!/bin/bash# 生成随机密码(进程 ID 版本,数字密码)echo $$

57、测试用户名与密码是否正确

#!/bin/bash# 测试用户名与密码是否正确 #用户名为 tom 并且密码为 123456,则提示登录成功,否则提示登录失败read -p "请输入用户名:"  userread -p "请输入密码:"    passif [ "$user" == 'tom' -a "$pass" == '123456' ];then  echo "Login successful"else  echo "Login Failed"fi

58、循环测试用户名与密码是否正确

#!/bin/bash# 循环测试用户名与密码是否正确  # 循环测试用户的账户名和密码,最大测试 3 次,输入正确提示登录成功,否则提示登录失败# 用户名为 tom 并且密码为 123456  for i in {1..3}do  read -p "请输入用户名:" user  read -p "请输入密码:"   passif [ "$user" == 'tom' -a "$pass" == '123456' ];then    echo "Login successful"     exitfidoneecho "Login Failed"

59、Shell 脚本的 fork 炸弹

#!/bin/bash# Shell 脚本的 fork 炸弹  # 快速消耗计算机资源,致使计算机死机# 定义函数名为.(点), 函数中递归调用自己并放入后台执行.() { .|.& };.


关注波哥,分享最有用的东西!

江湖规矩:如文章对您有帮助,请帮波哥转发分享、点赞哦!

扫码关注

绝对干货的公众号



推荐阅读



实战项目--kkitDeploy(客户端版)(强推,已开源)

实战项目--kkitDeploy(PaaS版)(强推)

实战项目--kkit3.0功能介绍(强推)

实战项目--kkit1.0功能介绍(强推,已开源)

面试题之---网络安全(2019年10月更新)

面试题之---k8s(2019年10月更新)

面试题之---运维工程师经典面试汇总(一)

经历贴之---外包接活却坐牢456天完整记录(强推)

脚本之---短信轰炸机

脚本之---QQ微信轰炸机

脚本之---linux流量监控利器

脚本之---linux系统巡检脚本合集

脚本之---linux批量用户管理脚本

脚本之---根据PID查看相关信息

脚本之---一键完成系统安全加固

脚本之---检查系统用户

脚本之---一键同步脚本文件夹

脚本之---一键升/降级k8s集群脚本

脚本之---一键升新增k8s集群node节点脚本

脚本之---k8s一键部署脚本(多版本通用版)(强推)

脚本之---一键部署ceph(luminous)集群脚本

脚本之---一键部署openvpn脚本

脚本之---一键(单双向)互信初始化服务器脚本

脚本之---一键初始化调优服务器脚本

脚本之---zabbixAgent一键部署脚本(windos/linux)

ansible---一键搭建redis5.0.5集群

工具之---地表最强CMDB自动抓取工具



点小花花,让他们知道你“在看”