1、删除某个目录下大小为0的文件,且7天以外的文件,除了t.txt文件永不删除(自己去创建)
提示:find 目录 -size 0;需要指定目录;
find $dir -type f -size 0 -exec rm -rf {} \;
2、显示CPU厂商信息
提示:/proc/cpuinfo 里面的厂家信息
awk '/vendor_id/{print $3}' /proc/cpuinfo
3、使用脚本自动创建逻辑卷
1 #!/bin/bash 2 check_disk(){ 3 read -p "请输入磁盘,例如/dev/sda:" disk 4 if [ -b $disk ];then 5 check_vg 6 return 0 7 else 8 echo "磁盘不存在" 9 check_disk 10 return 1 11 fi 12 } 13 check_vg(){ 14 read -p "请输入vgname:" vgname 15 echo $vgname |grep "[^[:punct:]]\{1,\}" >/dev/null 16 if [ $? -ne 0 ];then 17 echo "不能使用特殊字符,请重新输入" 18 check_vg 19 return 1 20 else 21 check_lv 22 return 0 23 fi 24 } 25 check_lv(){ 26 read -p "请输入lvname:" lvname 27 echo $lvname |grep "[^[:punct:]]\{1,\}" >/dev/null 28 if [ $? -ne 0 ];then 29 echo "不能使用特殊字符,请重新输入" 30 check_lv 31 return 1 32 else 33 judge_ 34 return 0 35 fi 36 } 37 judge_(){ 38 if [[ check_disk && check_vg && check_lv ]];then 39 pvcreate $disk 40 if [ $? -eq 0 ];then 41 vgcreate $vgname $disk 42 if [ $? -eq 0 ];then 43 lvcreate -n $lvname -L 2G $vgname 44 if [ $? -eq 0 ];then 45 echo "创建成功" 46 return 0 47 else 48 echo "$lvname逻辑卷未创建成功" 49 return 1 50 fi 51 else 52 echo "$vgname 卷组未创建成功" 53 return 1 54 fi 55 else 56 echo "$pvname物理卷未创建成功" 57 fi 58 exit 59 fi 60 } 61 check_disk
4、添加防火墙规则,开启某些服务或端口
提示:指定服务和端口,来开启;
iptables -I INPUT -s 192.168.0.0/24 -p tcp --dport 8087 -j ACCEPT
iptables -L -n //如何判断添加成功
1 #!/bin/bash 2 # 3 #******************************************************************** 4 #Author: 一枚肥仔!!! 5 #QQ: 1933899172 6 #Date: 2019-08-23 7 #FileName: firewall.sh 8 #URL: https://www.cnblogs.com/abels0025 9 #Description: The test script 10 #Copyright (C): 2019 All rights reserved 11 #******************************************************************** 12 iptables -I INPUT -s $1 -p $2 --dport $3 -j ACCEPT 13 a=$(iptables -L |head -n 3 |tail -n 1|awk '{print $4}') 14 if [ $a == $1 ];then 15 echo "添加成功!$(ptables -L |head -n 3 |tail -n 1)" 16 else 17 echo "添加失败!" 18 fi 19
5、监控某个固定网站的HTTP服务器的状态(测试返回码)
1 #!/bin/bash 2 # 3 #******************************************************************** 4 #Author: 一枚肥仔!!! 5 #QQ: 1933899172 6 #Date: 2019-08-23 7 #FileName: monitored_http.sh 8 #URL: https://www.cnblogs.com/abels0025 9 #Description: The test script 10 #Copyright (C): 2019 All rights reserved 11 #******************************************************************** 12 # 13 a=$(curl -o /dev/null -s -w %{http_code} http://www.$1.com) 14 #echo $a 15 if [ $a != 200 ];then 16 echo "==================$(date +%Y%m%d%H%M%S)===================== "> /tmp/http.$(date +%Y%m%d).log 17 echo "$1 网站存在问题!!!返回值$a" >> /tmp/http.$(date +%Y%m%d).log 18 19 else 20 echo "==================$(date +%Y%m%d%H%M%S)===================== "> /tmp/http.$(date +%Y%m%d).log 21 echo "$1 网站正常 返回值$a" >> /tmp/http.$(date +%Y%m%d).log 22 fi 23 mail -s '网站监测报告' mrl0001@163.com < /tmp/http.$(date +%Y%m%d).log 24
6、同时检查特定的软件包是否已经安装
提示:通过$@来传递参数,使用 rpm -q 来检查软件包是否安装
1 #!/bin/bash 2 # 3 #******************************************************************** 4 #Author: 一枚肥仔!!! 5 #QQ: 1933899172 6 #Date: 2019-08-23 7 #FileName: check_package.sh 8 #URL: https://www.cnblogs.com/abels0025 9 #Description: The test script 10 #Copyright (C): 2019 All rights reserved 11 #******************************************************************** 12 # 13 for i in $@;do 14 if [ $i == $(rpm -q gawk |cut -d"-" -f1) ];then 15 echo "=====$i 已安装!=====" 16 echo $(rpm -q $i) 17 else 18 echo "=====$i 未安装!=====" 19 fi 20 done
7、非交互自动生成SSH秘钥
提示:使用sshkey来生成秘钥对
ssh-keygen
8、通过MD5校验文件是否被修改
提示:md5sum
9、自动化对磁盘进行分区,格式化,挂载
10、编写NGINX的启动脚本
11、自动为其他脚本添加 /bin/bash 程序;
12、统计/var/log中有多少个文件,并统计出来一个总数
13、统计当前计算机中可以登录计算机的账户有多少个
14、批量下载指定网页中的图片
15、自动化一键安装LAMP环境
16、循环关闭局域网中所有主机
17、获取网段中的所有IP地址与MAC地址
18、找出/etc/passwd 中能登录的用户,并将对应在/etc/shadow 中第二列密码提出处理
19、显示本机Linux系统上所有开放的端口
20、通过shell脚本获取网站性能
curl -o /dev/null -s -w %{time_total}"\n" www.yy.com
-o 指定输出到空
-s 指定静默输出
-w %{option}
time_total 表示输网站的返回延时
time_namelookup 完成解析的时间
time_connect 建立到服务器的TCP连接所用的时间
time_redirect 重定向完成的时间
time_starttransfer 在发出请求后,web服务器返回数据的第一个字节所用的时间
http_code http返回值404,200,500等
size_download 下载网页或文件大小
size_upload 上传文件大小
size_header 响应头部
size_request 发送请求参数大小
size_download 传输速度
size_upload 平均上传速度
content_type 下载文件类型