【Python真的很强大】使用fabfile.py来自动化你的任务

Fabric简介:

通过ssh登录远程主机,可以部署应用程序和管理系统日常任务。如果你使用过SMB或NFS,你会觉得管理远程文件和本地文件没有什么差异。使用fab管理文件,你也会有如此感受。

  • 管理系统日常任务
    • 查询所有主机crontab中是否包含指定任务
      def checkCron(keywords):
          setSshAccount()
          result= run("crontab -l | grep -i \"%s\" | grep -vq '#'  && echo 'exists' || echo 'does not exist'" % keywords)
          print "%s:%s %s" % (env.host,keywords,result)
      
      
      #执行: fab checkCron:keywords='xyz_handler' --hide=everything -P  --skip-bad-hosts
      
      
       
    • 查询所有主机进程列表中是否包含指定程序
      def checkProcess(keywords):
          setSshAccount()
          result= run("ps -ef | grep -i \"%s\" | grep -vq 'grep'  && echo 'is running' || echo 'is not running'" % keywords)
          print "%s:%s %s" % (env.host,keywords,result)
      
      
      #fab checkProcess:keywords='tomcat' --hide=everything -P  --skip-bad-hosts
       
  • 部署应用
    def deploy():
    	  local('cd /my local dir && ./compile && ./jar-makefile')
    	  with cd('server dir'):
    	  	with settings(warn_only=True):
    	  		run('run.sh stop')
    			run('mv prod.jar prod.jar.ORG.%s' % datetime.datetime.now().strftime("%Y%m%d"))
    	  put('my local prod.jar','server dir')
    
     

猜你喜欢

转载自ucstudio.iteye.com/blog/2205757