IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 那些瞎写的shell脚本(不断更新) -> 正文阅读

[PHP知识库]那些瞎写的shell脚本(不断更新)

check_cpu-mem.sh

#!/bin/bash


cpu_num=$(top -n 1|awk -F ' ' '{print $10}'|awk 'NR==8'|awk -F '.' '{print $1}')
#mem_num=$(top -n 1|awk -F ' ' '{print $11}'|awk 'NR==8')

detail=$(top -n 1)

date=$(date +%Y-%m-%d\ %H:%M:%S)

#echo $cpu_num >> /soft/scripts/top_detail.txt
if [ $cpu_num -ge 80 ];then
        echo $date >> /soft/scripts/top_detail.txt
        echo $detail >> /soft/scripts/top_detail.txt
        echo "========================================" >> /soft/scripts/top_detail.txt
        echo "========================================" >> /soft/scripts/top_detail.txt
        echo "================这是分界线========================" >> /soft/scripts/top_detail.txt
        echo "========================================" >> /soft/scripts/top_detail.txt
        echo "========================================" >> /soft/scripts/top_detail.txt
fi


for i in {1..10}
do
mem_num=$(top -n 1|awk -F ' ' '{print $11}'|awk 'NR==8')
echo $mem_num |grep :
if [ $? -eq 0 ];then
        sleep 2
        echo '无效数据'
else
        mem2_num=$(echo $mem_num|awk -F '.' '{print $1}')
        echo $mem2_num >> /soft/scripts/top_detail.txt
        if [ $mem2_num -ge 80 ];then
                echo $date >> /soft/scripts/top_detail.txt
                echo $detail >> /soft/scripts/top_detail.txt
                echo "========================================" >> /soft/scripts/top_detail.txt
                echo "========================================" >> /soft/scripts/top_detail.txt
                echo "================这是分界线========================" >> /soft/scripts/top_detail.txt
                echo "========================================" >> /soft/scripts/top_detail.txt
                echo "========================================" >> /soft/scripts/top_detail.txt
        fi

fi
done

check_php-fpm.sh

#!/bin/bash

php_num=$(ps -ef|grep php-fpm|wc -l)

if [ $php_num -ge 200 ];then
        echo "web128 php进程剧增" | mail -s 'The Watch' 810540895@qq.com
fi

check_tcp.sh

#!/bin/bash


redis=$(netstat -n |grep TIME_WAIT|grep 6379|wc -l)
mysql=$(netstat -n |grep TIME_WAIT|grep 3306|wc -l)
max=$(netstat -n |awk -F ' ' '{print $5}'|sort -r |uniq -c|sort -n|awk -F ' ' '{print $1}' |tail -n 1)
max_detail=$(netstat -n |awk -F ' ' '{print $5}'|sort -r |uniq -c|sort -n|awk -F ' ' '{print $1"\t"$2}' |tail -n 5)
date=$(date +%Y-%m-%d\ %H:%M:%S)

totle=$(netstat -an|wc -l)

ESTABLISHED=$(netstat -anp|grep ESTABLISHED|wc -l)
ESTABLISHED_detail=$(netstat -anp|grep ESTABLISHED)

if [ $redis -ge 10000 ];then
        echo "redis数量: " $redis "时间:" $date >> /soft/scripts/check_tcp.txt
fi

if [ $mysql -ge 10000 ];then
        echo "mysql数量: " $redis "时间:" $date >> /soft/scripts/check_tcp.txt
fi


if [ "$max" -ge 10000 ];then
        echo "最大可疑进程数量:" $max "可疑进程:" $max_detail "时间:" $date  >> /soft/scripts/detail.txt
fi

if [ $totle -ge 10000 ];then
        echo $date >> /soft/scripts/totle.txt
        echo $(netstat -an) >> /soft/scripts/totle.txt
        echo "========================================" >> /soft/scripts/totle.txt
        echo "========================================" >> /soft/scripts/totle.txt
        echo "================这是分界线========================" >> /soft/scripts/totle.txt
        echo "========================================" >> /soft/scripts/totle.txt
        echo "========================================" >> /soft/scripts/totle.txt
fi


if [ $ESTABLISHED -ge 300 ];then
        echo $date >> /soft/scripts/ESTABLISHED_detail.txt
        echo $ESTABLISHED_detail >> /soft/scripts/ESTABLISHED_detail.txt
        echo "========================================" >> /soft/scripts/ESTABLISHED_detail.txt
        echo "========================================" >> /soft/scripts/ESTABLISHED_detail.txt
        echo "================这是分界线========================" >> /soft/scripts/ESTABLISHED_detail.txt
        echo "========================================" >> /soft/scripts/ESTABLISHED_detail.txt
        echo "========================================" >> /soft/scripts/ESTABLISHED_detail.txt
fi

nginx_log_mv.sh

#!/bin/bash
mv /txdata/server/openresty-1.13.6.2/nginx/logs/access.log /txdata/server/openresty-1.13.6.2/nginx/logs/access.log.$(date +%F)
if [ $? -eq 0 ];then
        nginx -s reload
fi

sed.sh(替换某个文件夹下面的所有文件中的字符串为另一个字符串)

#!/bin/bash
for file in /biz-code/crontab/check/*
do
sed -i 's/dev/check/g' $file
done

restart_project.sh

#!/bin/bash

#root_path="/biz-code"
root_path='/biz-code'
git_path="https://gitee.com/xxxxx"
init_file=("init.sh.dev" "init.sh.check" "init.sh.release")
projects=("aristotle" "hume" "plato" "socrates" "marx");


#项目下载
read -p "请输入项目编号: 【'1:aristotle' '2:hume' '3:plato' '4:socrates' '5:marx'】 " project
cd $root_path
git_full_path=$git_path/${projects[$project-1]}.git
echo ""
echo "========================"
echo "当前路径:" $root_path
echo "需要下载的项目:" ${projects[$project-1]}
echo "git地址:" $git_full_path 
echo ""

#判断路径是否存在(存在不git clone)
if [ ! -d ${projects[$project-1]} ];then
   
   #二次确认是否下载
   read -r -p "是否进行下载? [Y/n] " input
   if  [ $input != 'Y' ] &&[ $input != 'y' ]
   then
        echo "取消下载"
        exit 0
   fi

   #git clone 项目
   git clone $git_full_path
   if [ $? -eq 0 ];then
      echo '项目代码已下载'
   else
      echo '项目代码下载失败,请检查' $soucre_address
      exit
   fi
else
   echo "========================"   
   echo "项目已经存在"
	
fi



cd $root_path/${projects[$project-1]}
path=`pwd`
echo ""
echo "========================"
echo "当前路径:" $path
echo ""

# 拉取最新分支
git pull
if [ $? -eq 0 ];then
    echo "拉取代码成功"
else
    echo "拉取代码失败"
    exit
fi

#切换分支
read -p "请输入分支: " branch
git checkout $branch
git pull
if [ $? -eq 0 ];then
	echo "分支切换成功"
else
	echo "分支切换失败,请检查"
	exit
fi
echo ""
echo "========================"
echo  "当前分支:" $branch
echo "" 


#切换环境
read -p "请输入环境编号:【1:测试服 2:验收服 3:正式服】: " env
if [[ $env > "3" || $env == "0" ]]
then
     echo "环境数据错误"
     exit 0
fi	


docker_file=''
script_path=''
#workerman
if [[ $project == 1 || $project == 2 ]];then
	script_path='./Scripts'
	docker_file=$script_path/docker-compose.yml
# thinkphp5
elif [[ $project == 3 ]];then
	script_path='./scripts'
	docker_file=$script_path/plato.compose
elif [[ $project == 4 ]];then
	script_path='./scripts'
	docker_file=$script_path/docker.compose
fi 

cp $script_path/${init_file[$env-1]} init.sh && chmod +x init.sh && ./init.sh
        if [ $? -eq 0 ];then
                echo '环境切换成功'
        else
                echo '环境切换失败,请检查'
                exit
        fi

#go

# 启动项目
echo ""
echo "正在启动项目"
echo $docker_file
echo ""
docker-compose -f $docker_file stop
docker-compose -f $docker_file up -d
if [ $? -eq 0 ];then
	echo '项目重新启动成功'
else
        echo '项目重启失败,请检查'
fi

check_env.sh

#!/bin/bash

project=(redis elastic kibana web php hume aristotle)
for i in ${project[*]}
do
	docker ps |grep $i
done
if [ $? -eq 0 ];then
echo ''
else
	for i in ${project[*]}
	do
        	docker restart $i
	done
fi


  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 15:58:20  更:2022-04-06 15:58:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 19:53:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码