18 个一线工作中常用 Shell 脚本【实用版】
00 分钟
2021-7-2
2024-7-26
type
status
date
slug
summary
tags
category
icon
password
URL

1、检测两台服务器指定目录下的文件一致性

2、定时清空文件内容,定时记录文件大小

3、检测网卡流量,并按规定格式记录在日志中

4、计算文档每行出现的数字个数,并计算整个文档的数字总数

杀死所有脚本

5、从 FTP 服务器下载文件

6、连续输入5个100以内的数字,统计和、最小和最大

用户猜数字

7、监测 Nginx 访问日志 502 情况,并做相应动作

假设服务器环境为 lnmp,近期访问经常出现 502 现象,且 502 错误在重启 php-fpm 服务后消失,因此需要编写监控脚本,一旦出现 502,则自动重启 php-fpm 服务。

8、将结果分别赋值给变量

应用场景:希望将执行结果或者位置参数赋值给变量,以便后续使用。
方法1:
方法2:将位置参数192.168.1.1{1,2}拆分为到每个变量

9、批量修改文件名

示例:
把article改为bbs
方法1:
方法2:
方法3:
把一个文档前五行中包含字母的行删掉,同时删除6到10行包含的所有字母
1)准备测试文件,文件名为2.txt
2)脚本如下:

10、统计当前目录中以.html结尾的文件总大

方法1:
方法2:

11、扫描主机端口状态

用 shell 打印示例语句中字母数小于6的单词

12、输入数字运行相应命令

13、Expect 实现 SSH 免交互执行命令

Expect是一个自动交互式应用程序的工具,如telnet,ftp,passwd等。
需先安装expect软件包。
方法1:EOF标准输出作为expect标准输入
方法2:
方法3:将expect脚本独立出来
登录脚本:
执行命令脚本:写个循环可以批量操作多台服务器

14、监控 httpd 的进程数,根据监控情况做相应处理

15、批量修改服务器用户密码

Linux主机SSH连接信息:旧密码
内容格式:IP User Password Port
SSH远程修改密码脚本:新密码随机生成
生成新密码文件:

16、iptables 自动屏蔽访问网站频繁的IP

场景:恶意访问,安全防范
1)屏蔽每分钟访问超过200的IP
方法1:根据访问日志(Nginx为例)
方法2:通过TCP建立的连接
2)屏蔽每分钟SSH尝试登录超过10次的IP
方法1:通过lastb获取登录状态:
方法2:通过日志获取登录状态

17、根据web访问日志,封禁请求量异常的IP,如IP在半小时后恢复正常,则解除封禁

18、判断用户输入的是否为IP地址

方法1:
方法2:
增加版:
加个死循环,如果IP可用就退出,不可用提示继续输入,并使用awk判断。
来源:XAMPP中文用户组
—END—

评论