远程服务器磁盘占用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| #!/bin/bash web1=192.168.10.161 nginx1=192.168.10.164
menu(){ cat<<EOF 1.web1=192.168.10.161 2.nginx1=192.168.10.164 3.自定义服务器 4.菜单 EOF } check_disk(){ ping -c 1 -w 1 $IP &>/dev/null if [ $? -eq 0 ];then echo "主机在线状态" disk_total=$(ssh root@$IP "lsblk | grep -E '^(sd|vd|hd)' | awk '{print \$1\":\"\$4}'") disk_used=$(ssh root@localhost "df / | grep / | awk '{print \$3/1024/1024 \"G\"}'") cat<<EOF IP=$IP 磁盘总容量=$disk_total 使用磁盘容量=$disk_used EOF else echo "主机离线状态" fi } echo "**************服务器磁盘资源利用率脚本*************" menu trap "" INT TSTP HUP while true do read -p "输入序号选择功能:" num case $num in 1) IP=$web1 check_disk ;; 2) IP=$nginx1 check_disk ;; 3) read -p "输入目标服务器IP:" IP check_disk ;; 4) menu ;; wangsheng) break ;; *) read -p "输入序号选择功能:" num ;; esac done
|

检查网站域名是否正常
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| #!/bin/bash check_url(){ status_code=$(curl -o /dev/null -s -w "%{http_code}\n" $url) [ $status_code -eq 200 ] && echo "域名$url状态正常" || echo "域名$url状态不正常(http状态码为$status_code)" }
case $1 in --help|-h) echo "Usage: $0 <URL>" ;; *) url=$1 [ -z $url ] && echo "未检测到url" && exit 1 check_url ;; esac
cat >url.txt<<EOF www.baidu.com durative.github.io www.wangsheng.com ifconfig.me EOF
echo "************常规检查**************" while read url do check_url done<url.txt
|

检查磁盘与内存使用率
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #!/bin/bash
echo "*******************磁盘占用率部分******************"
df / | grep / > disk_info.txt while read info do disk_part=$(echo "$info" | awk '{print $1}') disk_useage=$(echo "$info" | awk '{print $5}' | awk -F "%" '{print $1}') [ "$disk_useage" -gt 5 ] && echo "磁盘${disk_part}占用超过5%" || echo "磁盘${disk_part}正常" done<disk_info.txt
echo "*******************内存占用率部分******************"
mem_use=$(free -m | grep -i mem | awk '{print $3}') mem_total=$(free -m | grep -i mem | awk '{print $2}') mem_useage=$((mem_use * 100 / mem_total)) [ $mem_useage -gt 5 ] && echo "内存使用超过5%" || echo "内存占用正常" 
|

批量安装LAMP服务器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
| #!/bin/bash
cat >lamp_host.txt<<EOF localhost EOF
cat >lamp.sh<<'EOF1'
os=$(cat /etc/redhat-release | awk '{print $4}' | awk -F '.' '{print $1}') [ $os -eq 7 ] && echo "系统版本为centos7" || echo "系统版本不为centos7"
systemctl disable firewalld --now &> /dev/null [ $? -eq 0 ] && echo "firewall已关闭" || echo "firewall关闭错误" sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config setenforce 0 echo "selinux已关闭"
echo "apache开始安装" yum -y remove httpd httpd-devel &> /dev/null yum -y install httpd httpd-devel wget &> /dev/null systemctl enable httpd --now &> /dev/null sleep 3 systemctl is-active httpd &> /dev/null if [ $? -ne 0 ]||[ $(ss -tunlp | grep -c 80) -lt 2 ];then echo "http启动失败,请检查系统环境" else echo "http服务启动测试完成" fi
echo "test" > /var/www/html/index.html http_status=$(curl -o /dev/null -s -w "%{http_code}\n" localhost) [ $http_status -ne 200 ] && echo "http启动失败,http状态码$http_status,请检查系统环境" || echo "http网页测试完成"
echo "mysql开始安装" yum -y remove mariadb mariadb-server mariadb-libs mariadb-devel &> /dev/null rm -rf /usr/local/mysql useradd mysql -M -s /sbin/nologin &> /dev/null && echo "mysql用户创建" if [ -f mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz ];then echo "当前目录已存在mysql5.7.44二进制包" else echo "当前目录下不存在mysql5.7.44二进制包,开始在线下载" wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz &> /dev/null fi tar -xf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz [ $? -eq 0 ] && echo "解压完成" mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql mkdir /usr/local/mysql/data -p mkdir /usr/local/mysql/logs -p chown -R mysql:mysql /usr/local/mysql echo "为二进制文件创建软链接" for file in /usr/local/mysql/bin/*;do ln -s "$file" "/bin/$(basename "$file")" &> /dev/null done echo "my.cnf编辑" cat > /etc/my.cnf << EOF2 [mysql] default-character-set=utf8mb4 socket=/usr/local/mysql/logs/mysql.sock [mysqld] port=3306 basedir=/usr/local/mysql datadir=/usr/local/mysql/data log-error=/usr/local/mysql/logs/mysqld.log socket=/usr/local/mysql/logs/mysql.sock character-set-server=utf8mb4 default-storage-engine=INNODB log-output=FILE default-authentication-plugin=mysql_native_password EOF2 chown mysql:mysql /etc/my.cnf echo "mysql初始化开始" mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ \ --datadir=/usr/local/mysql/data/ &> /dev/null cat > /usr/lib/systemd/system/mysqld.service << EOF3 [Unit] Description=MySQL Server Documentation=man:mysqld(8) After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf LimitNOFILE=65536 LimitNPROC=65536 EOF3 systemctl daemon-reload systemctl restart mysqld.service sleep 3 systemctl is-active mysqld.service &> /dev/null if [ $? -ne 0 ]||[ $(ss -tunlp | grep -c 3306) -lt 1 ];then echo "mysql启动失败,请检查系统环境" else echo "mysql服务启动测试完成" fi
echo "进行mysql密码修改" my_passwd=$(cat /usr/local/mysql/logs/mysqld.log | grep root | grep generated | awk '{print $11}') ln -s /usr/local/mysql/logs/mysql.sock /tmp/mysql.sock &> /dev/null mysqladmin -uroot -p"$my_passwd" password 'root' &> /dev/null mysql -uroot -p"root" -e "exit" &> /dev/null [ $? -eq 0 ] && echo "数据库密码修改完成" || echo "数据库密码修改失败"o "php开始安装"
echo "php开始安装" yum -y remove php php-mysql php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-bcmath &> /dev/null yum -y install php php-mysql php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-bcmath &> /dev/null cat>/var/www/html/info.php<<EOF5 <?php phpinfo(); ?> EOF5 systemctl restart httpd sleep 3 status_code=$(curl -o /dev/null -s -w "%{http_code}\n" localhost/info.php) [ $status_code -eq 200 ] && echo "php测试网页状态正常" || echo "php测试网页状态正常(http状态码为$status_code)" EOF1
for host in $(cat lamp_host.txt) do scp lamp.sh root@${host}:/root &> /dev/null [ $? -eq 0 ] && echo "脚本传送成功" || echo "脚本传送失败,请检查ssh设置" ssh root@${host} "chmod +x lamp.sh" ssh root@${host} "sh lamp.sh" done
|

拉黑异常IP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #!/bin/bash yum -y install net-tools &> /dev/null
mapfile -t ips < <(netstat -an | grep EST | awk -F '[: ]+' '{print $4}' | sort | uniq -c | awk '$1 >= 50 {print $2}')
for ip in "${ips[@]}"; do firewall-cmd --add-rich-rule="rule family=ipv4 source address=$ip reject" --permanent done echo "已拉黑 $(ip)" firewall-cmd --reload
|
-
Next Post
MySQL多实例
-
Previous Post
Tomcat综合案例