企业级-Shell脚本案例
文章平均质量分 55
日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员。目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目。有的单位甚至用shell脚本的编写能力来衡量这个linux系统管理员的经验是否丰富。
南宫乘风
当你的才华撑不起你的野心时,只有静下心学习才是唯一的出路
展开
-
Python域名解析
需求日常使用阿里云域名解析服务需要登录阿里云账号进行操作,但是这样手工操作费时费力。因此,我们需要使用Python编写程序来实现域名解析功能,以便快速方便地完成域名解析任务。具体实现过程为:通过调用阿里云API接口获取用户授权,然后使用Python的DNS解析库对域名进行解析,并将解析结果存储到本地或者发送到指定邮箱。这样就可以省去手动登录阿里云的步骤,大大提高了工作效率。原创 2023-03-21 10:45:13 · 1021 阅读 · 0 评论 -
Linux任务分析脚本
首先我们日常运维中,服务器会跑大量的任务。(1)我们可以通prometheus和grafana 展示整个服务器的cpu 内存 和磁盘IO的趋势(2)可以每台部署相应的脚本,可以定位到每个时间段执行的业务,所消耗的各项资源统计前十的CUP消耗应用(降序 )ps aux|head -1 && ps aux|grep -v PID|sort -rn -k +3|head统计前十的内存消耗应用(降序)ps aux|head -1 && ps.原创 2022-05-06 17:06:55 · 1673 阅读 · 0 评论 -
Linux操作系统账号密码失效检测
根据我开发的邮件接口上调用操作,触发告警GO的WEB编程(GIN实现邮件接口报警)Gin编写邮件接口(支持多人发送)Gin编写邮件告警接口(添加优化日志记录)首先,我们Linux操作系统可以创建多个用户账号。但是为了系统安全考虑,我们会给账号密码设置有效期和复杂难度,防止非法操作爆破我们的机器。但是每次修改完,到规定时间需要修改账号密码,这个每次人工来看,比较麻烦,所以做个账号密码到期的警告。当密码快要过期时,我们可以发邮件告警。账号密码过期设置function Che原创 2021-12-23 15:39:37 · 2925 阅读 · 0 评论 -
openssh-8.6p1批量编译安装升级
近期因为业务系统等保,发现ssh有好多的漏洞,需要更新升级。负责的服务器有点多,不能单个手动编译,所以采用 ansible + 脚本方式批量编译安装相关下载软件地址:https://download.csdn.net/download/heian_99/35589407本次升级主要解决上次升级造成的隐患,并添加12222端口,隐患:(1)sshd无法开机自启 主机重启后,sshd无法起来,需要他们手动重启 (2)ssh的配置文件目录不对 ,没办法统一管理(3)sshd无法开.原创 2021-10-30 14:55:04 · 702 阅读 · 0 评论 -
Shell帮你掌管上千台服务(多线程)
日常服务器运维时,我们都会批量管理多台服务器。脚本,批量化,使我们工作中必不可少的。首先我们需要一台堡垒机,负责免秘钥的登录和分发任务等等堡垒机到主机需要一套ssh-keygen来管理...原创 2021-06-09 20:42:08 · 626 阅读 · 0 评论 -
Shell监控公网IP-变化邮件报警
Shell监控公网IP-变化邮件报警公司用的网线IP,但是有时IP会改变,导致部分业务有问题,我们又不能及时发现,会造成一定的影响。现在使用shell监控公网的IP,如发生变化,立即邮件报警。企业级-Shell案例2——发送告警邮件centos邮件报警可以参考这个,默认是mailx脚本#!/bin/bashdirfile='/home/ip_change'new_ip=`curl icanhazip.com` #获取新公网ipmail_user=1794@q..原创 2021-05-01 13:58:35 · 1369 阅读 · 0 评论 -
SaltStack脚本安装
无聊,近期痴迷编程,没事就写写shell和Python代码练练手。这次写了个自动安装saltstack的shell代码菜单功能比较low,相对比较省事。多台主机安装方便。仅供参考,大佬勿喷 #!/bin/bash#颜色控制red='\033[1;31m'black='\033[0m'Orange='\033[35m'background='\033[0m'minion_file='/etc/salt/minion'datetime=`date +"%F %T"`.原创 2021-02-27 18:39:16 · 377 阅读 · 0 评论 -
Redhat机器巡检脚本
此脚本适合Redhat系列centos系列,内存缓存计数位置不同,可能不准确#!/bin/bash##系统信息##sys_check(){os_type=`uname`echo "操作系统类型是:$os_type"os_banben=`cat /etc/redhat-release`echo "操作系统版本号是:$os_banben"os_neihe=`uname -r`echo "操作系统的内核是:$os_neihe"os_time=`date +%F_%T`echo .原创 2021-02-25 14:11:07 · 497 阅读 · 0 评论 -
Mysql数据库备份脚本
数据库备份#!/bin/bashUSER=jumpserverPASS=jumpserverDBDIR=/databak/Data_Backup#DAY=`date +%Y%m%d`#年月MONTH=`date +%Y%m`#日期时间DT=`date '+%Y%m%d%H%M'`#主机ipDBIP=`cat /etc/sysconfig/network-scripts/ifcfg-eth0 | grep IPADDR | awk -F '"' '{print $2}'`#创建备原创 2021-02-25 14:07:58 · 373 阅读 · 0 评论 -
Docker一键部署GitLab+Jenkins【本地持久化】
docker-compose安装配置二进制安装1、下载最新版的 docker-compose 二进制执行文件。sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-comp...原创 2020-03-31 15:34:57 · 1151 阅读 · 1 评论 -
Linux自动批量增加公钥
自动增加公钥需求:提示要输入对方的ip和root密码,然后可以自动把本机的公钥增加到对方机器上,从而实现密钥认证。1.在使用之前,先安装epel源,yum install expect -y2.写分发脚本,后缀为exp#!/usr/bin/expect#!/bin/bash#name:南宫乘风#email:heian99@163.com#自动添加公钥到指定的服务器se...原创 2020-03-30 13:41:03 · 822 阅读 · 0 评论 -
主机存活监控
单个服务器监控监控远程的一台机器(假设ip为192.168.1.100)的存活状态,当发现宕机时发一封邮件给你自己#!/bin/bash#name:南宫乘风#email:heian99@163.comip="192.168.1.100"while true ; do # 利用ping检查主机是否存活 ping -c 4 $ip > /dev/null 2&g...原创 2020-03-28 17:59:29 · 731 阅读 · 1 评论 -
企业级-Shell案例18——目录入侵检测与告警
入侵检测与告警对某目录里创建,删除文件监控。挖矿病毒 :应用程序和系统漏洞勒索病毒/usr/bin/wwwroot 串改,注入脚本编写 yum install -y infoify-tool#!/bin/bashMON_DIR=/optinotifywait -mqr --format %f -e create $MON_DIR |\while ...原创 2020-01-21 17:18:08 · 907 阅读 · 0 评论 -
企业级-Shell案例17——DOS攻击防范(自动屏蔽攻击IP)
DOS攻击防范(自动屏蔽攻击IP)DOS 拒绝服务攻击点 ---> 点原理:tcp半连接脚本编写判断一分钟ip访问界面的次数,如果超出一定的次数,那就屏蔽异常ip#!/bin/bashDATE=$(date +%d/%b/%Y:%H:%M)#nginx日志LOG_FILE=/usr/local/nginx/logs/demo2.access.log#分...原创 2020-01-21 16:49:43 · 1439 阅读 · 0 评论 -
企业级-Shell案例16——自动发布PHP项目
自动发布PHP项目拉去代码同步代码(rsync)#!/bin/bashDATE=$(date +%F_%T)WWWROOT=/usr/local/nginx/html/$1BACKUP_DIR=/data/backupWORK_DIR=/tmpPROJECT_NAME=php-demo# 拉取代码cd $WORK_DIRif [ ! -d $PROJECT...原创 2020-01-21 16:10:18 · 606 阅读 · 0 评论 -
企业级-Shell案例15——自动发布Java项目(Tomcat)
自动发布Java项目(Tomcat)需求:代码已经到版本仓库,执行shell脚本一键部署流程步骤:java --> jar/war-->tomcat/resin jar-jar脚本编写#!/bin/bashDATE=$(date +%F_%T)TOMCAT_NAME=$1TOMCAT_DIR=/usr/local/$TOMCAT_NA...原创 2020-01-21 16:01:02 · 720 阅读 · 0 评论 -
企业级-Shell案例14——Nginx访问日志自动按天(周、月)切割
Nginx访问日志自动按天(周、月)切割适用于企业级分析,可以更加准确、速度分析日志。方便使用。设置凌晨定时任务,每天可以自动切割日志。#!/bin/bash#nginx日志目录LOG_DIR=/www/server/nginx/logs#获取到上一天的时间YESTERDAY_TIME=$(date -d "yesterday" +%F)#归档日志取时间LOG_MONTH...原创 2020-01-21 14:40:10 · 816 阅读 · 0 评论 -
企业级-Shell案例13——Nginx访问日志分析
Nginx访问日志分析分析客户访问是否正常访问最多的IP 访问最多的页面 访问页面状态码的数量 根据时间段来访问最多的IPUV:用户访问次数 (天)PV:总页面访问次数(天)访问最多的IP awk '{a[$1]++}END{print "UV:",length(a);for(v in a)print v,a[v]}' access.log |sort -k2 -nr...原创 2020-01-21 14:14:12 · 993 阅读 · 0 评论 -
企业级-Shell案例12——MySql数据库备份脚本
MySql数据库备份脚本mysql备份数据库,使用企业级,可以防止数据库出错。分库备份mysqldump -uroot -pxxx -B A > A.sql#!/bin/bashDATE=$(date +%F_%H-%M-%S)HOST=localhostUSER=backupPASS=123.comBACKUP_DIR=/data/db_backupDB_L...原创 2020-01-21 13:42:41 · 884 阅读 · 0 评论 -
企业级-Shell案例11——监控MySQL主从同步状态是否异常脚本
监控MySQL主从同步状态是否异常脚本流程图主从同步master binlogsave写 --> master -->binlong --> relaylog -->slave脚本编写#!/bin/bash HOST=localhostUSER=rootPASSWD=123.comIO_SQL_STATUS=$(my...原创 2020-01-19 14:53:24 · 873 阅读 · 0 评论 -
企业级-Shell案例10——一键部署LNMP网站平台脚本
一键部署LNMP网站平台脚本网站浏览流程图L :LinuxN : NginxM :MysqlP :PHPuser --> Nginx--> PHP-->MysqlCentos软件安装1、yum安装2、源码编译 1)./configure 2)make 3)make install3、二进制安...原创 2020-01-19 14:32:45 · 884 阅读 · 0 评论 -
企业级-Shell案例9——批量主机远程执行命令脚本
批量主机远程执行命令脚本多台主机同时执行命令expect脚本编写#!/bin/bashCOMMAND=$*HOST_INFO=host.infofor IP in $(awk '/^[^#]/{print $1}' $HOST_INFO); do USER=$(awk -v ip=$IP 'ip==$1{print $2}' $HOST_INFO) PO...原创 2020-01-19 13:54:33 · 1177 阅读 · 0 评论 -
企业级-Shell案例8——批量检测网站是否异常并邮件通知
批量检测网站是否异常脚本检测网站运行是否正常,如果不能正常访问,发送邮件通知管理员curl -o /de/dev/null -s -w "%{http_code}" www.baidu.com访问失败,也又可能和网络等等原因有关。所以我们要进行次数判断,超出一定的次数。那就发送邮件。脚本编写#!/bin/bash URL_LIST="www.baidu.com...原创 2020-01-18 18:14:53 · 1169 阅读 · 0 评论 -
企业级-Shell案例7——监控多台服务器磁盘利用率脚本
监控多台服务器磁盘利用率脚本SSHssh root@192.168.1.99 "df -h"但每次要使用密码,不推荐使用。可以使用秘钥登录。创建秘钥【一直回车就行】ssh-keygen把公钥复制到需要被控的服务器ssh-copy-id root@192.168.1.99在被传公钥的服务器的root的.ssh下ls .ssh/...原创 2020-01-18 17:16:17 · 1769 阅读 · 0 评论 -
企业级-Shell案例6——查看网卡的实时流量
查看网卡的实时流量监控流量脚本编写#!/bin/basheth0=$1echo -e "流量进入--流量传出 "while true; do old_in=$(cat /proc/net/dev |grep $eth0 |awk '{print $2}') old_out=$(cat /proc/net/dev |grep $eth0 |awk '{print...原创 2020-01-18 15:50:52 · 956 阅读 · 0 评论 -
企业级-Shell案例5——找出占用CPU 内存过高的进程
找出占用CPU 内存过高的进程脚本背景:服务器CPU占用高,找出最高的分析,看是否进程正确,是否是垃圾进程分析占用CPU最高的应用ps -eo user,pid,pcpu,pmem,args --sort=-pcpu |head -n 10分析占用内存最高的应用ps -eo user,pid,pcpu,pmem,args --sort=-pmem |head -n...原创 2020-01-18 14:40:38 · 1084 阅读 · 0 评论 -
企业级-Shell案例4——一键查看服务器利用率
一键查看服务器利用率背景:web访问过慢,服务器内存搞cpu 60% 内存 利用率 硬盘 利用率 TCP连接状态脚本编写#!/bin/bashfunction cpu(){ util=$(vmstat | awk '{if(NR==3)print $13+$14}') iowait=$(vmstat | awk '{if(NR==3)pri...原创 2020-01-18 14:21:08 · 1042 阅读 · 0 评论 -
企业级-Shell案例3——批量创建多个用户并设置密码
批量创建多少个用户并设置密码背景:多名新人入职单个用户创建添加 useradd zhang改密码 passwd zhang脚本编写#!/bin/bashUSER_LIST=$@USER_FILE=./user.infofor USER in $USER_LIST;do if ! id $USER &>/dev/null; t...原创 2020-01-18 11:45:08 · 1283 阅读 · 0 评论 -
企业级-Shell案例2——发送告警邮件
发送告警邮件安装软件yum install mailx -y配置文件进入qq邮箱首页,点击设置>账户,然后找到下图截取的地方(需要设置的,如图)设置完之后呢,就要把生成的授权码作为邮箱的password的啦~配置/etc/mail.rc文件【下面的配置qq是假的,别用】#设置发件人名称set from=1832025651@qq.com#设置邮件服务器...原创 2020-01-18 11:15:22 · 1430 阅读 · 0 评论 -
企业级-Shell案例1——服务器系统配置初始化
服务器系统配置初始化背景:新购买10台服务器并已安装Linux操作系统需求:安装系统新能分析工具已经其他的工具 设置时区并同步时间 禁用selinux 清空防火墙默认策源 历史命令显示操作时间 禁止root远程登录 禁止定时任务发送邮件 设置最大打开文件数 减少Swap使用 系统内核参数的优化脚本编写#/bin/bash# 安装系统性能分析工具及其他yum...原创 2020-01-18 10:48:05 · 2014 阅读 · 0 评论