shell编程

  1 #第一题部署nginx反向代理三个web服务,调度算法使用加权轮询  4 #/bin/bash
  5 systemctl status nginx
  6 if(($?==4))
  7     then 
  8     yum install -y nginx
  9     if(($?==0))
 10         then
 11         #echo 'ok!'
 12         systemctl start nginx
 13         if(($?==0))
 14             then
 15             echo "Nginx is start!"
 16         else
 17             echo "nginx is Fail"    
 18         fi
 19     else
 20         echo""nginx  install is Fail!!!"
 21         
 22     fi 
 23 elif(($?==3))
 24     then
 25     systemctl start nginx
 26     if(($?==0))
 27         then
 28         echo "Nginx is start!"
 29     else
 30         echo "not start!!"
 31     fi
 32 elif(($?==0))
 33     then
 34     echo "alright!"
 35 else 
 36     echo "not start"    
 37 fi
 38 echo "Is writing...."
 39 grep 'upstream' /etc/nginx/nginx.conf
 40 if(($?!=0))
 41     then
 42     sed -ri '/^http/a upstream lzq {' /etc/nginx/nginx.conf
 43     sed -ri '/^upst/a server website1 weight=3;' /etc/nginx/nginx.conf
 44     sed -ri '/^server website1 /a server website2  /a website3;' 
 45 
 46 /etc/nginx/nginx.conf
 47     sed -ri '/^server yanlongweb2/a }' /etc/nginx/nginx.conf
 48     sed -ri '/^server yanlongweb3/a }' /etc/nginx/nginx.conf
 49     sed -ri '/^( +)(location)( )(/)/a proxy_pass http://lzq;' 
 50 
 51 /etc/nginx/nginx.conf
 52 fi
 53 echo "config write is OK!"
 54 systemctl reload nginx
 55 if(($?==0))
 56     then
 57     echo "balance is OK!"
 58 else
 59     echo "not OK!"
 60 fi
 61 systemctl status nfs
 62 if(($?==4))
 63     then 
 64     yum install rpcbind nfs-utils -y
 65     if(($?==0))
 66         then
 67         #echo 'Yes!'
 68         systemctl start nfs
 69         if(($?==0))
 70             then
 71             echo "nfs is start!"
 72         else
 73             echo "nfs is Fail!!!"    
 74         fi
 75     else
 76         echo"nfs install is Fail!!!"
 77         
 78     fi 
 79 elif(($?==3))
 80     then
 81     systemctl start nfs
 82     if(($?==0))
 83         then
 84         echo "nfs is start!"
 85     else
 86         echo "nfs not start!"
 87     fi
 88 elif(($?==0))
 89     then
 90     echo "alrgiht!"
 91 else 
 92     echo "bad"    
 93 fi
 94 echo "Is writing...."
 95 echo "/webindex 192.168.16.0/24(rw,sync,fsid=0)" > /etc/exports
 96 echo "config write is OK!"
 97 systemctl reload nfs
 98 if(($?==0))
 99     then
100     echo "NFS service is start!"
101 else
102     echo "Sorry!!"
103 fi
104 
105 #第二题所有web服务使用共享存储nfs,保证所有web都对其有读写权限,保证数据一致性
106 #/bin/bash
107 systemctl status nginx
108 if(($?==4))
109         then
110         yum install -y nginx
111         if(($?==0))
112                 then
113                 #echo 'ok!'
114                 systemctl start nginx
115                 if(($?==0))
116                         then
117                         echo " Nginx is start !!"
118                 else
119                         echo "nginx is Fail!!!" 
120                 fi
121         else
122                 echo"nginx install is Fail!!!"
123 
124         fi
125 elif(($?==3))
126         then
127         systemctl start nginx
128         if(($?==0))
129                 then
130                 echo "Nginx is start!"
131         else
132                 echo "sorry!!"
133         fi
134 elif(($?==0))
135         then
136         echo "alright!"
137 else
138         echo "fail"    
139 fi
140 echo "IS writing...."
141 sed -ri '/^( +)(location)( )(/)/a root /nginxwebservice;' 
142 
143 /etc/nginx/nginx.conf
144 sed -ri '/^root /nginxwebservice/a index web.html;' 
145 
146 /etc/nginx/nginx.conf
147 echo "config write is OK!"
148 systemctl reload nginx
149 if(($?==0))
150         then
151         echo "balance is OK!"
152 else
153         echo "fail!!"
154 fi
155 systemctl status nfs
156 if(($?==4))
157     then 
158     yum install rpcbind nfs-utils -y
159     if(($?==0))
160         then
161         #echo 'Yes!'
162         systemctl start nfs
163         if(($?==0))
164             then
165             echo "nfs is start OK!!"
166         else
167             echo "nfs is Fail!!!"    
168         fi
169     else
170         echo"nfs install is Fail!!!"
171         
172     fi 
173 elif(($?==3))
174     then
175     systemctl start nfs
176     if(($?==0))
177         then
178         echo " nfs is start OK!!!"
179     else
180         echo "fail!!"
181     fi
182 elif(($?==0))
183     then
184     echo "alright!"
185 else 
186     echo "bad"    
187 fi
188 echo "is writing...."
189 mount -t nfs 192.168.16.120:/website/ /nginxwebservice/
190 echo "config write is OK!"
191 systemctl reload nfs
192 if(($?==0))
193     then
194     echo "NFS  is OK!"
195 else
196     echo "bad!"
197 fi
198 
199 #第三题shell脚本-监控及邮件提醒 
200 
201 #!/usr/bin/python
202 # -*- coding: UTF-8 -*-
203 import sys
204 import smtplib
205 import email.mime.multipart
206 import email.mime.text
207 
208 server = 'smtp.163.com'
209 port = '25'
210 
211 def sendmail(server,port,user,pwd,msg):
212     smtp = smtplib.SMTP()
213     smtp.connect(server,port)
214     smtp.login(user, pwd)
215     smtp.sendmail(msg['from'], msg['to'], msg.as_string())
216     smtp.quit()
217     print('邮件发送成功email has send out !')
218 
219 
220 if __name__ == '__main__':
221     msg = email.mime.multipart.MIMEMultipart()
222     msg['Subject'] = '服务器报警请注意!'
223     msg['From'] = 'python4_mail@163.com'
224     msg['To'] = 'woshixinfode@sina.com'
225     user = 'python4_mail'
226     pwd = 'sbalex3714'
227     content='%s
%s' %('
'.join(sys.argv[1:4]),' '.join(sys.argv[4:]))
228
229 #格
式处理,专门针对我们的邮件格式 230 231 txt = email.mime.text.MIMEText(content, _charset='utf-8') 232 msg.attach(txt) 233 234 sendmail(server,port,user,pwd,msg) 235 236 #监控内容 237 #/bin/bash 238 bu=`free | awk 'NR==2{print $6}'` 239 to=`free | awk 'NR==2{print $2}'` 240 mem=`expr "scale=2;$bu/$to" |bc -l | cut -d. -f2` 241 if(($mem >= 70)) 242 then 243 msg="TIME:$(date +%F_%T) 244 HOSTNAME:$(hostname) 245 IPADDR:$(ifconfig |awk 'NR==2{print $2}') 246 MSG:内存溢出了!已经用了${mem}%" 247 echo $msg 248 /usr/bin/pymail.py $msg 249 fi 250 systemctl status nginx 251 if(($?!=0)) 252 then 253 msg="TIME:$(date +%F_%T) 254 HOSTNAME:$(hostname) 255 IPADDR:$(ifconfig |awk 'NR==2{print $2}') 256 MSG: Nginx 进程出现异常请注意查看!" 257 echo $msg 258 /usr/bin/pymail.py $msg 259 fi 260 systemctl status nfs 261 if(($?!=0)) 262 then 263 msg="TIME:$(date +%F_%T) 264 HOSTNAME:$(hostname) 265 IPADDR:$(ifconfig |awk 'NR==2{print $2}') 266 MSG: NFS 进程出现异常请注意查看!" 267 echo $msg 268 /usr/bin/pymail.py $msg 269 fi
原文地址:https://www.cnblogs.com/lzq1987/p/6623384.html