说到shell脚本,估计没有运维人不会的(如果有,需要自觉补课了啊哈哈)Shell脚本编程是运维工程师必备的工作技能之一,之前也分享过很多文章,但是还有不少读者后台经常问我有没有相关的脚本分享分享。今天整理了279个Shell脚本案例,代码清晰,拿来即用,很多都是实用脚本,收藏起来不仅自己不用写了,还能提高Shell撰写能力,一举两得!除此之外,还准备了一些Shell脚本的编写规范、入门手册、编写指南等资源,今天一并分享给大家。*由于脚本案例太多,在此仅展示部分,完整版领取方式请见文末!部分脚本展示大概280来个,一次性全部更新分享出来给大家,也算是给读者们的一点小福利。#!/bin/bashDATE=$(date +%F_%H-%M-%S)HOST=localhostUSER=backupPASS=123.comBACKUP_DIR=/data/db_backupDB_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; doBACKUP_NAME=$BACKUP_DIR/${DB}_${DATE}.sqlif ! mysqldump -h$HOST -u$USER -p$PASS -B $DB > $BACKUP_NAME 2>/dev/null;thenecho '$BACKUP_NAME 备份失败!'fidone
#!/bin/bash # 日志格式: $remote_addr - $remote_user [$time_local] '$request' $status $body_bytes_sent '$http_referer' '$http_user_agent' '$http_x_forwarded_for' LOG_FILE=$1 echo '统计访问最多的10个IP' awk '{a[$1]++}END{print 'UV:',length(a);for(v in a)print v,a[v]}' $LOG_FILE |sort -k2 -nr |head -10 echo '----------------------' echo '统计时间段访问最多的IP' awk '$4>='[01/Dec/2018:13:20:25' && $4<='[27/Nov/2018:16:20:49'{a[$1]++}END{for(v in a)print v,a[v]}' $LOG_FILE |sort -k2 -nr|head -10 echo '----------------------' echo '统计访问最多的10个页面' awk '{a[$7]++}END{print 'PV:',length(a);for(v in a){if(a[v]>10)print v,a[v]}}' $LOG_FILE |sort -k2 -nr echo '----------------------' echo '统计访问页面状态码数量' awk '{a[$7' '$9]++}END{for(v in a){if(a[v]>5)print v,a[v]}}'
#!/bin/bash if [ $# -ne 1 ]; then echo 'Usage: $0 filename' fi dir=$(dirname $1) file=$(basename $1) ftp -n -v << EOF # -n 自动登录 open 192.168.1.10 # ftp服务器 user admin password binary # 设置ftp传输模式为二进制,避免MD5值不同或.tar.gz压缩包格式错误 cd $dir get '$file' EOF
|