手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2024年11月的文章

配置 fabric 穿越跳板机

在转这篇文章的时候,我觉得 很懒,所以我几乎没有排版就直接ctrl+c,ctrl+v就过来了

下面是正文,链接来源是:https://mozillazg.com/2013/12/python-fabric-gateway.html

说实话,跳板机给研发的日常工作添加了些许麻烦。 幸好 fabric 提供了穿越跳板机的功能,使跳板机不再影响我们的工作。

Python代码
  1. $ fab --version   
  2. Fabric 1.8.1   
  3. Paramiko 1.12.0  

Python代码
  1. # 跳板机  
  2. env.gateway = 'lisi@192.168.100.123'  
  3.   
  4. # 目标服务器  
  5. env.hosts = ['foo@111.111.111.111',  
  6.              'bar@111.111.111.112',  
  7.              'bar2@122.123.124.139',  
  8.             ]  
  9.   
  10. env.passwords = {  
  11.     'lisi@192.168.100.123:22''pssword3',  # 跳板机密码  
  12.     'foo@111.111.111.111:22''pssword4',   # 目标服务器密码  
  13.     'bar@111.111.111.112:22''pssword5',   # 目标服务器密码  
  14.     'bar2@122.123.124.139:22''pssword6',   # 目标服务器密码  
  15. }  
  16.  
  17. @task  
  18. @hosts(env.hosts)  
  19. def foobar():  
  20.     pass  

穿越跳板机的原理是: SSH 隧道技术 。

 

到这里转载结束。

之所以转这个,就是因为有些机器实在没有公网IP。所以只能从外面的LVS机器进行跳板处理。

mac外接显示器调整为竖屏

如果是纯手工调无非就是打开系统设置,但这样调整起来有点累。头得扭着半天,然后再慢慢对准它。

其实可以在“系统设置-显示器-排列”,可以先将外接显示器调整为主屏幕,然后回到第一个界面里,对它进行显示和方向进行调整。设置完后就OK了。
 
然后就方便了,只有有一个让人诟病的地方就是。。。即使竖起来了,你要是选择分屏,它还是只能左右 ,不能上下分屏!!!!
 

找回安装 软件时对:未知来源的允许

 新版的macOSx中,已经没有“未知来源”这个选项了。因此如果要装一些第三方的软件,可能就直接提示你安装包坏了,请拖到垃圾筒里。

当然方便的操作方法是,在终端执行:

XML/HTML代码
  1. sudo spctl --master-disable  

再打开系统与偏好设置,就会发现多了一个未知来源的选项。于是乎安装就能继续 了。

如果你比较小心谨慎,安装完后,可以再执行:

XML/HTML代码
  1. sudo spctl --master-enable  
关闭它

 

Yii2 静态方法 中怎么触发事件

在ActiveRecord的init中写了一个简单的事件触发:

PHP代码
  1. public function init(){    
  2.    $event = new XxxEvent();    
  3.    $this->on(self::EVENT_AFTER_UPDATE,[$event,'doSomeThing']);    
  4.     parent::init();    
  5. }    

就是这么简单,然后在程序中有一段触发:

PHP代码
  1. public static xxx(){  
  2.    self::updateAllCounters([],[]);  
  3. }  

然后发现,死活没有触发。追了一下代码发现,updateAllCounters没有从AR走,而是直接从db->createCommand()->execute走了

于是在下面加了一行:

self::trigger(self::EVENT_AFTER_UPDATE);

然而直接报错,说是trigger不支持静态调用,哦。。。trigger是非静态方法。

于是最后只能用万能的call_user_func_array的方法了:

PHP代码
  1. call_user_func_array([new self,'trigger'],[self::EVENT_AFTER_UPDATE]);  

有点贱,但总算实现了。

 

 

 

 

 

 

Yii2 updateAll tips

 Yii2 中的updateAll可以接受三个参数,$attributes,$condition,$params = null

第一个参数是要更新的值,第二个是条件,如果第二个条件中用了占位符,就必须 要有第三个条件。
平时我们查询 的时候用andWhere()可以连接很多参数,那么updateAll的时候,如果有多个参数怎么办?
Test::updateAll(['status'=>1],['status'=>0,'flag'=>1]);
如果参数都是固定值,这样的写法当然OK,如果有范围值就只能这样写了,比如flag != 1怎么办?
Test::updateAll(['status'=>1],['and',['status'=>0],['<>','flag',1]]);  
 
Over
 
PS:参考:http://www.yiiframework.com/doc-2.0/yii-db-query.html#where()-detail