|
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')
|
|
|