思维发散-减轻运维十倍工作量

-------------------

蓝色粗体:人名

红色字体:加粗重点(或者作者PS)
----------------------------------

 第一次更新:更改标题,感谢fancy0042425的建议。

[9楼]        fancy0042425 删除 回复
2012-05-24 16:32:44
呵呵呵,写的真好啊,我们还是同一个QQ群里的呢。是你的标题有些问题,不知道看出来没有,或许因为你是名人,所以大家都不讲,不过,觉得还是讲讲比较好吧-----把十倍改成90%吧,稍微科学点。
 

煮酒品茶:此篇其实做为论证思路的重要性,可能灵光一闪,你就会发现其实事情就是这么的简单。像老男孩博客多次强调的一样,思路最重要。话说看Linux运维趋抛那个“构建高可用备份”后我悟了。真悟了。那篇文章讲的是本地压缩和导出数据库然后上传至远程FTP目录中。完成一次备份。思维扩展,举一反三。我们可不可以从远程上下载东西放至本地,从而更加简化运维的工作,批量的,同时我想单个的主机更新什么东西,可以吗?举个例说,今天我们要更新nginx的版本,这事肯定得零晨做。我又不想加班。可以更加方面吗?当然可以,脚本嘛。思维扩散下。不扯了。说例吧。
思路过程:
一、构建一台WEB服务器,并指定一个下载目录(当然FTP也可以)
二、本地写个脚本,定时从WEB服务器上下载脚本。(发散下,我怎么确定是不是当天的任务?下载文件名改成当天日期就成。区分了吧)
三、下载后执行脚本(继续发散,我可以以包的方式安装,里面加个installtool就行,installtool作为我们安装的脚本,当然也可以全脚本的如wget http://*/nginx.tar.gz 然后再解压啥的)
 
煮酒品茶:这样就完成一次批量更新。郁闷,那我想单个主机更新怎么办?或者某几个要更新怎么办?(继续发散思维,我可以在本地脚本上加这么一句wget http://ip/本机IP+当天时间.tar.gz),那么是不是实现了我们单机更新的目的?
 
缺点:WEb服务器被日了,并且规则被未授权用户给知晓了。那全部死了,当然如果你web服务器做不到安全,那么你的产品线也不够安全。
 
思路讲完了,那我们实践一下呗,最简单的啊。随便装个包。
 
----------------------------------------
本地脚本:
vim updatetool
 
   
   
   
   
  1. i=`date +%Y-%m-%d` 
  2. wget http://192.168.100.80/192.168.100.89-installtool-$i.tar.gz 
  3. tar -zxvf 192.168.100.89-installtool-$i.tar.gz 
  4. chmod +x 192.168.100.89-installtool-$i 
  5. ./192.168.100.89-installtool-$i 
  6.   
  7. wget http://192.168.100.80/installtool-$i.tar.gz 
  8. tar -zxvf installtool-$i.tar.gz 
  9. chmod +x installtool-$i 
  10. ./installtool-$i 
-------------------------------------------
chmod +x updatetool
 
WEB服务放数据
-----------------------------------------------------------
IP包为往 ~/test/1.txt 写数据为hello I'm 192.168.100.89
>echo "hello I'm 192.168.100.89">~/test/1.txt
批量包为往 ~/test/2.txt 写数据为Hello I'm installtoll
>echo "hello I'm installtool">~/test/2.txt
-----------------------------------------------
 
   
   
   
   
  1. [root@localhost ~]# cat 192.168.100.89-installtool-2012-04-26 
  2. echo "hello I'm 192.168.100.89">~/test/1.txt 
  3. [root@localhost ~]# cat installtool-2012-04-26 
  4. echo "hello I'm installtool">~/test/2.txt 
-------------------------------------------------------------
 
--------------------------------------------
最终效果
[root@localhost ~]# ls
192.168.100.89-installtool-2012-04-26         installtool-2012-04-26.tar.gz
192.168.100.89-installtool-2012-04-26.tar.gz  test
anaconda-ks.cfg                               test2
Desktop                                       test5
install.log                                   time
install.log.syslog                            updatetool
installtool-2012-04-26
[root@localhost ~]# ll test
total 8
-rw-r--r-- 1 root root 25 Apr 26 00:33 1.txt
-rw-r--r-- 1 root root 22 Apr 26 00:33 2.txt
[root@localhost ~]# cat test/1.txt
hello I'm 192.168.100.89
 
然后再添加任务计划就好了,每天零晨三点执行这个文件
[root@localhost ~]# crontab -l
 
   
   
   
   
  1. 0 3 * * * sh ~/updatetool 
 
煮酒品茶:至于细节如何更改是个人的事情,这样就好像了个远程***一样,服务端放啥客户端就更新啥。
 
最后:还是得感谢最有爱的 dn833 哈哈,送你一个情人!