北京 网站建设|小程序|软件开发|app开发公司北京比较好的互联网公司

diannao/2026/1/23 4:53:34/文章来源:
北京 网站建设|小程序|软件开发|app开发公司,北京比较好的互联网公司,国内十大网站建设公司,双语网站后台怎么做博客迁往#xff1a;新地址 #xff08;点击直达#xff09; 新博客使用markdown维护#xff0c;线下有版本号库#xff0c;自己写的所以会定时更新同步#xff0c;同一时候提供更好的导航和阅读体验 csdn对markdown支持不好#xff0c;所以旧版不会花时间进行同步修订新地址 点击直达 新博客使用markdown维护线下有版本号库自己写的所以会定时更新同步同一时候提供更好的导航和阅读体验 csdn对markdown支持不好所以旧版不会花时间进行同步修订抱歉 ----------------------------------------------- fabric title是开发可是同一时候要干开发測试还有运维的活……为毛 task*3 不是 salary * 3 (o(╯□╰)o) 最近接手越来越多的东西公布和运维的工作相当机械加上频率还蛮高导致时间浪费还是长处多。 修复bug什么的測试提交版本号库(2分钟)ssh到測试环境pull部署2分钟rsync到线上机器A,B,C,D,E1分钟分别ssh到ABCDE五台机器逐一重新启动(8-10分钟) 13-15分钟 当中郁闷的是每次操作都是同样的命令一样要命的是在多个机器上非常难在本机一个脚本搞定主要时间都浪费在ssh敲命令上了写成脚本全然能够一键运行花两分钟看下运行结果 直到发现了fabric这货 作用 非常强大的工具 能够将自己主动化部署或者多机操作的命令固化到一个脚本里 和某些运维工具非常像用它主要是由于python….. 简单好用易上手 当然shell各种命令组合起来也能够上古神器和现代兵器的差别 环境配置 在本机和目标机器安装相应包注意都要有 sudo easy_install fabric眼下是1.6版本号或者用pip install一样的 安装完后能够查看是否成功安装 [ken~$] which fab /usr/local/bin/fab装完之后能够浏览下官方文档 然后能够动手了 hello world 先进行本机简单操作有一个初步认识样例来源与官网 新建一个py脚本: fabfile.py def hello():print(Hello world!)命令行运行 [ken~/tmp/fab$] fab hello Hello world!Done.注意这里能够不用fabfile作为文件名称可是在运行时需指定文件 [ken~/tmp/fab$] mv fabfile.py test.py fabfile.py - test.py [ken~/tmp/fab$] fab helloFatal error: Couldnt find any fabfiles!Remember that -f can be used to specify fabfile path, and use -h for help.Aborting. [ken~/tmp/fab$] fab -f test.py hello Hello world!Done.带參数 改动fabfile.py脚本 def hello(name, value):print(%s %s! % (name, value))运行 [ken~/tmp/fab$] fab hello:nameage,value20 age 20!Done. [ken~/tmp/fab$] fab hello:age,20 age 20!Done.运行本机操作 简单的本地操作: from fabric.api import localdef lsfab():local(cd ~/tmp/fab)local(ls)结果 [ken~/tmp/fab$] pwd;ls /Users/ken/tmp/fab fabfile.py fabfile.pyc test.py test.pyc [ken~/tmp/fab$] fab -f test.py lsfab [localhost] local: cd ~/tmp/fab [localhost] local: ls fabfile.py fabfile.pyc test.py test.pycDone.实战開始 如果你每天要提交一份配置文件settings.py到版本号库这里没有考虑冲突的情况 假设是手工操作 cd /home/project/test/conf/ git add settings.py git commit -m daily update settings.py git pull origin git push origin也就是说这几个命令你每天都要手动敲一次所谓daily job就是每天都要反复的机械化的工作让我们看看用fabric怎么实现一键搞定(其有用shell脚本能够直接搞定可是fab的优势不是在这里这里主要位后面本地远端操作做准备毕竟两个地方的操作写一种脚本便于维护) from fabric.api import localdef setting_ci():local(cd /home/project/test/conf/)local(git add settings.py)#后面你懂的懒得敲了…..混搭整合远端操作 这时候如果你要到机器A的/home/ken/project相应项目文件夹把配置文件更新下来 #!/usr/bin/env python # encoding: utf-8from fabric.api import local,cd,runenv.hosts[userip:port,] #ssh要用到的參数 env.password pwddef setting_ci():local(echo add and commit settings in local)#刚才的操作换到这里你懂的def update_setting_remote():print remote updatewith cd(~/temp): #cd用于进入某个文件夹run(ls -l | wc -l) #远程操作用rundef update():setting_ci()update_setting_remote()然后运行之 [ken~/tmp/fab$] fab -f deploy.py update [userip:port] Executing task update [localhost] local: echo add and commit settings in local add and commit settings in local remote update [userip:port] run: ls -l | wc -l [userip:port] out: 12 [userip:port] out:Done.注意假设不声明env.password运行到相应机器时会跳出要求输入密码的交互 多server混搭 操作多个server须要配置多个host #!/usr/bin/env python # encoding: utf-8from fabric.api import *#操作一致的服务器能够放在一组同一组的运行同一套操作 env.roledefs {testserver: [user1host1:port1,], realserver: [user2host2:port2, ]}#env.password 这里不要用这样的配置了不可能要求密码都一致的明文编写也不合适。打通全部ssh即可了roles(testserver) def task1():run(ls -l | wc -l)roles(realserver) def task2():run(ls ~/temp/ | wc -l)def dotask():execute(task1)execute(task2)结果 [ken~/tmp/fab$] fab -f mult.py dotask [user1host1:port1] Executing task task1 [user1host1:port1] run: ls -l | wc -l [user1host1:port1] out: 9 [user1host1:port1] out:[user2host2:port2] Executing task task2 [user2host2:port2] run: ls ~/temp/ | wc -l [user2host2:port2] out: 11 [user2host2:port2] out:Done.扩展 1.颜色 能够打印颜色在查看操作结果信息的时候更为醒目和方便 from fabric.colors import *def show():print green(success)print red(fail)print yellow(yellow) #fab -f color.py show2.错误和异常 关于错误处理 默认一组命令上一个命令运行失败后不会接着往下运行 失败后也能够进行不一样的处理 文档 眼下没用到兴许用到再看了 3.password管理 看文档 更好的password管理方式哥比較土没打通主要是server列表变化频繁我的处理方式是 1.host,user,port,password配置列表全部的都写在一个文件 或者直接搞到脚本里当然这个更........ env.hosts [ host1, host2 ] env.passwords { host1: pwdofhost1,host2: pwdofhost2, }  或者   env.roledefs {testserver: [host1, host2],realserver: [host3, ]}env.passwords {host1: pwdofhost1,host2: pwdofhost2,host3: pwdofhost3, }  2.依据key解析成map嵌套放到deploy中 另外命令事实上也能够固化成一个cmds列表的….. 初略就用到这些兴许有很多其它需求的时候再去捞文档了话说文档里好东西真多就是太多了看了晕。。。 The end! To be continue…. wklken Email: wklkenyeah.net Blog: http://www.wklken.com 2013-03-25 转载请注明出处谢谢 转载于:https://www.cnblogs.com/yxwkf/p/3901322.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/89057.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

赣州企业网站建设推广seo互联网营销培训

一、儿进程与僵尸进程 1、基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工…

wordpress怎么设计网站网站改版合同

关于祖龙娱乐 祖龙娱乐有限公司(下文简称“祖龙娱乐”)是一家总部位于北京的移动游戏开发公司,成立于 2014 年,拥有成功的大型多人在线角色扮演游戏移动游戏组合,如《六龙争霸》、《梦幻诛仙》和《万王之王 3D》。公司…

榆林做网站公司典型十大优秀网络营销案例

高精度前言 C中int不能超过2^31-1,最长的long long也不能超过2^63-1,所以我们在题目中如果碰到了很长很长的数,并且需要进行大数运算时,就需要高精度存储。 高精度总体思路 由于int和long long的限制,我们要想存放很长的数就需…

个人网站栏目猎头网招聘

前言: 最近导师布置了一些作业,其中有一个就是动态计算rem,我想到了两个版本,一种是不添加防抖,当视口发生变化时,就立即进行计算rem,还是一种就是使用防抖,当视口连续100毫秒没有发生变化时计…

推荐郑州网站建设公司广州越秀区房价

解析 呜呜呜不废啊 我只会跑n遍多重背包 感觉非常神仙的一道题 之所以只是蓝的可能是因为代码实现难度太低了吧 但感觉思想真的很难想到 也可能是我太菜了 容斥相关还是需要加强啊qwq 考虑如果没有硬币个数的限制的情况 显然就是个简单的完全背包了 然而如今有了硬币个数的限…

做问卷调查的是哪个网站好做电子商务网站建设工资多少钱

✨ 专栏介绍 在现代Web开发中,JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性,还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言,JavaScript具有广泛的应用场景&#x…

怎么做网站 教学网站产品怎么优化

1 你这是把腰带当裙子了?(良心建议:穿这裙子一定要专心...)▼2 真正充满味道的食堂!▼3 ???这又是一只有故事的猫▼4 女生的肚子可以多神奇?(dy&#xff…

网站营销的分类有哪些友情链接免费发布平台

原标题:光伏发电上网电价政策综述近些年,光伏发电上网电价相关政策不断推陈出新,在推进平价上网的同时,也积极对接了电力市场建设需要。本文梳理了光伏发电上网电价及补贴标准有关政策,供参考使用:1.普通光…

光伏发电国家最新政策短视频搜索优化

第一部分 HTML 第一章 职业规划和前景 职业方向规划定位: web前端开发工程师 web网站架构师 自己创业 转岗管理或其他 web前端开发的前景展望: 未来IT行业企业需求最多的人才 结合最新的html5抢占移动端的市场 自己创业做老板 随着互联网的普及we…

如何建一个免费试用网站网店营销推广实训平台

以下方法比较暴力,请谨慎使用 1,关闭并禁用故障转移集群的服务,如下 2,关闭故障转移集群中资源的自启动 3,重启服务器 4,手动关闭服务 net stop msdtc net stop winmgmt 5,分别对所有节点打…

教育 网站模板广西城乡建设厅网站

需求是这样的,从一个表读取数据,然后每次执行创建一个新表将值写入 读取这个表 写入到这个表 分别对应的是e、h列数据,代码如下: import pandas as pd import openpyxl import datetime dfpd.read_excel(rC:\Users\admin\Deskt…

做网站的工作是什么用一部手机制作网站

在本文中,我们主要介绍数据数据库的内容,自我感觉有个不错的建议和大家分享下 关于mongodb的利益,长处之类的这里就不说了,一唯要讲的一点就是mongodb中有三元素:数据库,合集,文档,其中“合集” 就是对应关…

有哪些免费网站可以做店招福千欣隆网站建设公司怎么样

本文所需的FM已调信号、原始音频、包络检波法解调后的音频、差分相位法解调后的音频,可通过以下链接进行下载。其中,FM已调信号文件较大共有两百多兆,故截取其部分上传,若有需要完整信号的请留言! FM调制解调音频文件.rar 已调信号:采样率为 F s = 5 m H z Fs=5mHz Fs=

大有网网站建设电影网站难吗

Spring和Hibernate整合的时候我们经常会有如下的配置代码 1&#xff0c;非JPA支持的配置 <!-- 配置 Hibernate 的 SessionFactory 实例: 通过 Spring 提供的 LocalSessionFactoryBean 进行配置 --> <!-- FacotryBean 配置的时候返回的不是本身而是返回的FactoryBean 的…

福田网站开发手机有软件做ppt下载网站有哪些

时间不期&#xff0c;10月份已经结束了&#xff0c;2015年也快过去了&#xff0c;时间过得真是太快了&#xff0c;快到自己都未能意识到自己已经是工作了两年多时间了。而之前推辞自己没有做好事情的时候&#xff0c;还在使用这件事之前没有做过这样的借口&#xff0c;这使我感…

开发公司房子出售怎么不交税电商关键字优化

题意&#xff1a; 给一个二叉树的层次遍历&#xff0c;问是什么类型的堆&#xff0c;是大顶堆还是小顶堆&#xff0c;然后输出这个树的后续遍历 题解&#xff1a; 大小堆根直接比较a[i]与a[i/2]即可 因为给的树的层次遍历&#xff0c;i就是i/2儿子 后序遍历&#xff0c;对于…

怎么给网站做反链建筑网片是干什么用的

是由于eslint检测出现bug 解决方法有两种 v-for 后添加 :keyitem <li v-for"item in list" :key"item"> 在build处关闭eslint检测 ...(config.dev.useEslint ? [createLintingRule()] : []),

南京玄武网站建设南京手机网站制作公司

前言在一次数据库故障后&#xff0c;我们发现业务库会根据业务的等级会划分多个 MySQL 实例&#xff0c;许多业务库会同时属于一个 MySQL 实例&#xff0c;当一个库引发问题后整个实例的状态是不可控的。从而导致这个实例上的所有业务不稳定甚至造成中断。故障反思微服务架构微…

哪些行业没有做网站提升网站的访问速度

目录 介绍 编写格式与执行方式 Shell脚本文件编写规范 脚本文件后缀名规范 首行格式规范 注释格式 shell脚本HelloWord入门案例 需求 效果 实现步骤 脚本文件的常用执行三种方式 介绍 3种方式的区别 小结 多命令处理 Shell变量 环境变量 目标 Shell变量的介绍 变量类型 系统环境…

如何查看自己制作的网站网页制作ppt模板

SSRF&#xff08;Server Side Request Forgery&#xff09;服务器端请求伪造漏洞是一种安全漏洞&#xff0c;攻击者利用该漏洞可以发起任意的网络请求&#xff0c;并可能访问内部系统资源。 SSRF漏洞的原理是&#xff0c;服务器端应用程序未对从用户输入中获取的URL进行充分验…