<返回更多

9 个常用的 Shell 脚本,面试也常问~

2022-08-29    DevOps技术栈
加入收藏

作者:阿良 来自:DevOps技术栈

1、Dos 攻击防范(自动屏蔽攻击 IP)

2、linux 系统发送告警脚本

3、MySQL 数据库备份单循环

#!/bin/bash

DATE=$(date +%F_%H-%M-%S)

HOST=localhost

USER=backup

PASS=123.com

BACKUP_DIR=/data/db_backup

DB_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "show databases;" 2>/dev/null |egrep -v "Database|information_schema|mysql|performance_schema|sys")

for DB in $DB_LIST; do

BACKUP_NAME=$BACKUP_DIR/${DB}_${DATE}.sql

if ! mysqldump -h$HOST -u$USER -p$PASS -B $DB > $BACKUP_NAME 2>/dev/null; then

echo "$BACKUP_NAME 备份失败!"

fi

done

4、MySQL 数据库备份多循环

#!/bin/bash

DATE=$(date +%F_%H-%M-%S)

HOST=localhost

USER=backup

PASS=123.com

BACKUP_DIR=/data/db_backup

DB_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "show databases;" 2>/dev/null |egrep -v "Database|information_schema|mysql|performance_schema|sys")

for DB in $DB_LIST; do

BACKUP_DB_DIR=$BACKUP_DIR/${DB}_${DATE}

[ ! -d $BACKUP_DB_DIR ] && mkdir -p $BACKUP_DB_DIR &>/dev/null

TABLE_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "use $DB;show tables;" 2>/dev/null)

for TABLE in $TABLE_LIST; do

BACKUP_NAME=$BACKUP_DB_DIR/${TABLE}.sql

if ! mysqldump -h$HOST -u$USER -p$PASS $DB $TABLE > $BACKUP_NAME 2>/dev/null; then

echo "$BACKUP_NAME 备份失败!"

fi

done

done

5、Nginx 访问访问日志按天切割

#!/bin/bash

LOG_DIR=/usr/local/nginx/logs

YESTERDAY_TIME=$(date -d "yesterday" +%F)

LOG_MONTH_DIR=$LOG_DIR/$(date +"%Y-%m")

LOG_FILE_LIST="default.access.log"

for LOG_FILE in $LOG_FILE_LIST; do

[ ! -d $LOG_MONTH_DIR ] && mkdir -p $LOG_MONTH_DIR

mv $LOG_DIR/$LOG_FILE $LOG_MONTH_DIR/${LOG_FILE}_${YESTERDAY_TIME}

done

kill -USR1 $(cat /var/run/nginx.pid)

6、Nginx 访问日志分析脚本

7、查看网卡实时流量脚本

8、服务器系统配置初始化脚本

9、监控 100 台服务器磁盘利用率脚本

END

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>