10个运维拿来就用的 Shell 脚本,用了才知道有多爽,零基础入门到精通,收藏这一篇就够了

1、监控 MySQL 主从同步状态是否异常脚本

#!/bin/bashHOST=localhostUSER=rootPASSWD=123.comIO_SQL_STATUS= ( m y s q l − h (mysql -h (mysql−hHOST -u U S E R − p USER -p USER−pPASSWD -e ‘show slave status\G’ 2>/dev/null |awk ‘/Slave_.*_Running:/{print $1$2}’)for i in $IO_SQL_STATUS; do` `THREAD_STATUS_NAME=${i%:*}` `THREAD_STATUS=${i#*:}` `if [ "$THREAD_STATUS" != "Yes" ]; then` `echo "Error: MySQL Master-Slave $THREAD_STATUS_NAME status is $THREAD_STATUS!" |mail -s "Master-Slave Staus" [url=mailto:xxx@163.com]xxx@163.com[/url]` `fidone

2、目录文件变化监控和实时文件同步

#!/bin/bash MON_DIR=/optinotifywait -mqr --format %f -e create $MON_DIR |\while read files; do rsync -avz /opt /tmp/opt #echo “$(date +‘%F %T’) create $files” | mail -s “dir monitor” [url=mailto:xxx@163.com]xxx@163.com[/url]``done

3、批量创建 100 用户并设置密码脚本

#!/bin/bashDATE=$@USER_FILE=user.txtfor USER in $USER_LIST; do` `if ! id $USER &>/dev/null; then` `PASS=$(echo $RANDOM |md5sum |cut -c 1-8)` `useradd $USER` `echo $PASS |passwd --stdin $USER &>/dev/null` `echo "$USER $PASS" >> $USER_FILE` `echo "$USER User create successful."` `else` `echo "$USER User already exists!"` `fidone

4、批量检测网站是否异常脚本

#!/bin/bashURL_LIST="www.baidu.com [url=http://www.ctnrs.com]www.ctnrs.com[/url]"for URL in U R L L I S T ; d o ‘ ‘ F A I L C O U N T = 0 ‘ ‘ f o r ( ( i = 1 ; i < = 3 ; i + + ) ) ; d o ‘ ‘ H T T P C O D E = URL_LIST; do` `FAIL_COUNT=0` `for ((i=1;i<=3;i++)); do` `HTTP_CODE= URLL​IST;do‘‘FAILC​OUNT=0‘‘for((i=1;i<=3;i++));do‘‘HTTPC​ODE=(curl -o /dev/null --connect-timeout 3 -s -w “%{http_code}” KaTeX parse error: Undefined control sequence: \[ at position 9: URL) if \̲[̲ H T T P C O D …URL retry $FAIL_COUNT”` `let FAIL_COUNT++` `fi` `done` `if [ $FAIL_COUNT -eq 3 ]; then` `echo “Warning: $URL Access failure!”` `fi``done

5、批量主机远程执行命令脚本

#!/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)` `PORT=$(awk -v ip=$IP 'ip==$1{print $3}' $HOST_INFO)` `PASS=$(awk -v ip=$IP 'ip==$1{print $4}' $HOST_INFO)` `expect -c "` `spawn ssh -p $PORT $USER@$IP` `expect {` `\"(yes/no)\" {send \"yes\r\"; exp_continue}` `\"password:\" {send \"$PASS\r\"; exp_continue}` `\"$USER@*\" {send \"$COMMAND\r exit\r\"; exp_continue}` `}` `"` `echo "-------------------"done

6、一键部署 LNMP 网站平台脚本

#!/bin/bashNGINX_V=1.15.6PHP_V=5.6.36TMP_DIR=/tmp INSTALL_DIR=/usr/local PWD_C=$PWD echoecho -e "\tMenu\n"echo -e "1. Install Nginx"echo -e "2. Install PHP"echo -e "3. Install MySQL"echo -e "4. Deploy LNMP"echo -e "9. Quit" function command_status_check() {` `if [ $? -ne 0 ]; then` `echo $1` `exit` `fi} function install_nginx() { cd T M P D I R ‘ ‘ y u m i n s t a l l − y g c c g c c − c + + m a k e o p e n s s l − d e v e l p c r e − d e v e l w g e t ‘ ‘ w g e t [ u r l = h t t p : / / n g i n x . o r g / d o w n l o a d / n g i n x − ] h t t p : / / n g i n x . o r g / d o w n l o a d / n g i n x − [ / u r l ] TMP_DIR` `yum install -y gcc gcc-c++ make openssl-devel pcre-devel wget` `wget [url=http://nginx.org/download/nginx-]http://nginx.org/download/nginx-[/url] TMPD​IR‘‘yuminstall−ygccgcc−c++makeopenssl−develpcre−develwget‘‘wget[url=http://nginx.org/download/nginx−]http://nginx.org/download/nginx−[/url]{NGINX_V}.tar.gz tar zxf nginx- N G I N X V . t a r . g z ‘ ‘ c d n g i n x − {NGINX_V}.tar.gz` `cd nginx- NGINXV​.tar.gz‘‘cdnginx−{NGINX_V} ./configure --prefix=$INSTALL_DIR/nginx ` --with-http_ssl_module \ --with-http_stub_status_module \ --with-stream command_status_check "Nginx - 平台环境检查失败!" make -j 4 command_status_check "Nginx - 编译失败!" make install command_status_check "Nginx - 安装失败!" mkdir -p $INSTALL_DIR/nginx/conf/vhost alias cp=cp ; cp -rf $PWD_C/nginx.conf $INSTALL_DIR/nginx/conf rm -rf $INSTALL_DIR/nginx/html/* echo "ok" > $INSTALL_DIR/nginx/html/status.html echo '<?php echo "ok"?>' > $INSTALL_DIR/nginx/html/status.php $INSTALL_DIR/nginx/sbin/nginx command_status_check "Nginx - 启动失败!"``}`` ``function install_php() { cd $TMP_DIR yum install -y gcc gcc-c++ make gd-devel libxml2-devel \ libcurl-devel libjpeg-devel libpng-devel openssl-devel \ libmcrypt-devel libxslt-devel libtidy-devel wget [url=http://docs.php.net/distributions/php-]http://docs.php.net/distributions/php-[/url]${PHP_V}.tar.gz tar zxf php-${PHP_V}.tar.gz cd php-${PHP_V} ./configure --prefix=$INSTALL_DIR/php \ --with-config-file-path=$INSTALL_DIR/php/etc \ --enable-fpm --enable-opcache \ --with-mysql --with-mysqli --with-pdo-mysql \ --with-openssl --with-zlib --with-curl --with-gd \ --with-jpeg-dir --with-png-dir --with-freetype-dir \ --enable-mbstring --enable-hash command_status_check "PHP - 平台环境检查失败!" make -j 4 command_status_check "PHP - 编译失败!" make install command_status_check "PHP - 安装失败!" cp php.ini-production $INSTALL_DIR/php/etc/php.ini cp sapi/fpm/php-fpm.conf $INSTALL_DIR/php/etc/php-fpm.conf cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod +x /etc/init.d/php-fpm /etc/init.d/php-fpm start command_status_check "PHP - 启动失败!"``}`` ``read -p "请输入编号:" number``case $number in 1) install_nginx;; 2) install_php;; 3) install_mysql;; 4) install_nginx install_php ;; 9) `exit;;``esac

7、一键查看服务器资源利用率

#!/bin/bashfunction cpu() {` `NUM=1` `while [ $NUM -le 3 ]; do` util=vmstat |awk '{if(NR==3)print 100-$15"%"}' user=vmstat |awk '{if(NR==3)print $13"%"}' sys=vmstat |awk '{if(NR==3)print $14"%"}' iowait=vmstat |awk '{if(NR==3)print $16"%"}' `echo "CPU - 使用率: $util , 等待磁盘IO响应使用率: $iowait"` `let NUM++` `sleep 1` `done} function memory() { `` total=free -m |awk ‘{if(NR2)printf “%.1f”,KaTeX parse error: Expected 'EOF', got '}' at position 7: 2/1024}̲’ ` `` `` used=…NF/1024}’`` echo “内存 - 总大小: ${total}G , 使用: ${used}G , 剩余: KaTeX parse error: Expected ‘EOF’, got ‘}’ at position 16: {available}G"``}̲`` ``function…(df -h |awk ‘/^/dev/{print $1}’) for p in f s ; d o ‘ ‘ m o u n t e d = fs; do` `mounted= fs;do‘‘mounted=(df -h |awk ‘ 1 = = " ′ 1==“’ 1==”′p’”{print KaTeX parse error: Expected ‘EOF’, got ‘}’ at position 3: NF}̲’)` `siz…(df -h |awk ‘ 1 = = " ′ 1==“’ 1==”′p’“{print KaTeX parse error: Expected ‘EOF’, got ‘}’ at position 2: 2}̲’)` `use…(df -h |awk ‘ 1 = = " ′ 1==“’ 1==”′p’”{print KaTeX parse error: Expected ‘EOF’, got ‘}’ at position 2: 3}̲’)` `use…(df -h |awk ‘ 1 = = " ′ 1==“’ 1==”′p’“{print $5}‘) echo “硬盘 - 挂载点: $mounted , 总大小: $size , 使用: $used , 使用率: KaTeX parse error: Expected ‘EOF’, got ‘}’ at position 26: …nt”` `done``}̲`` ``function…(ss -antp |awk '{status[$1]++}END{for(i in status) printf i”:“status[i]” "}’) echo “TCP连接状态 - $summary”} cpumemorydisktcp_status

8、找出占用 CPU 内存过高的进程脚本

ps -eo user,pid,pcpu,pmem,args --sort=-pcpu |head -n 10 ps -eo user,pid,pcpu,pmem,args --sort=-pmem |head -n 10

9、自动发布 Java 项目(Tomcat)

#!/bin/bash``DATE=$(date +%F_%T)``   ``TOMCAT_NAME=$1``TOMCAT_DIR=/usr/local/$TOMCAT_NAME``ROOT=$TOMCAT_DIR/webapps/ROOT``   ``BACKUP_DIR=/data/backup``WORK_DIR=/tmp``PROJECT_NAME=tomcat-java-demo``   ``# 拉取代码``cd $WORK_DIR``if [ ! -d $PROJECT_NAME ]; then`   `git clone [url=https://github.com/lizhenliang/tomcat-java-demo]https://github.com/lizhenliang/tomcat-java-demo[/url]`   `cd $PROJECT_NAME``else`   `cd $PROJECT_NAME`   `git pull``fi``   ``# 构建``mvn clean package -Dmaven.test.skip=true``if [ $? -ne 0 ]; then`   `echo "maven build failure!"`   `exit 1``fi``   ``# 部署``TOMCAT_PID=$(ps -ef |grep "$TOMCAT_NAME" |egrep -v "grep|$$" |awk 'NR==1{print $2}')``[ -n "$TOMCAT_PID" ] && kill -9 $TOMCAT_PID``[ -d $ROOT ] && mv $ROOT $BACKUP_DIR/${TOMCAT_NAME}_ROOT$DATE``unzip $WORK_DIR/$PROJECT_NAME/target/*.war -d $ROOT``$TOMCAT_DIR/bin/startup.sh``   

10、自动发布 PHP 项目脚本

#!/bin/bashDATE=$(date +%F_%T) WWWROOT=/usr/local/nginx/html/$1 BACKUP_DIR=/data/backupWORK_DIR=/tmpPROJECT_NAME=php-demo # 拉取代码cd $WORK_DIRif [ ! -d $PROJECT_NAME ]; then` `git clone [url=https://github.com/lizhenliang/php-demo]https://github.com/lizhenliang/php-demo[/url]` `cd $PROJECT_NAMEelse cd $PROJECT_NAME git pullfi # 部署if [ ! -d $WWWROOT ]; then mkdir -p $WWWROOT rsync -avz --exclude=.git W O R K D I R / WORK_DIR/ WORKD​IR/PROJECT_NAME/* $WWWROOTelse` `rsync -avz --exclude=.git $WORK_DIR/$PROJECT_NAME/* $WWWROOTfi

题外话

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我们和网安大厂360共同研发的的网安视频教程,之前都是内部资源,专业方面绝对可以秒杀国内99%的机构和个人教学!全网独一份,你不可能在网上找到这么专业的教程。

内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识,而且包含了中级的各种渗透技术,并且还有后期的CTF对抗、区块链安全等高阶技术。总共200多节视频,200多G的资源,不用担心学不全。
在这里插入图片描述
因篇幅有限,仅展示部分资料,需要见下图即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
侵权,请联系删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值