良玉的博客 点点滴滴,积水成河_良玉的博客_页游、手游linux运维工程师之路

redmine二次开发,不同项目不同默认跟踪者

apps/redmine/htdocs/app/views/issues/new.html.erb

<% if @issue.safe_attribute? 'watcher_user_ids' -%>前加入:

<% if @issue.project_id != 2 -%>

    <% @issue.watcher_user_ids = [] %>

      <% if @issue.project_id = 4 -%>

        <% @issue.watcher_user_ids = ['1'] %>

      <% end %>

    <% end %>


重启apache即可


阅读全文...

使用微信推送报警消息及api

三种常见报警介质:

短信:它的好处是不用联网手机有信号就行,但是需要有短信网关,需要花钱

邮件:它也可以做到手机短信通知,基本现在邮箱都有这个功能,当然如果你使用qq邮箱微信也是可以推送邮件提醒的,完全免费

微信:对于我这种手机一响就会掏出来看一下的人比较方便,可定制化强, 完全免费


阅读全文...

解决shell当while read line 遇到exit 只退出循环,不退出脚本

 #!/bin/bash
while read line
do
        if [ "$line" == "do" ];then
                exit 2
        fi
        echo $line
done<<<"$(cat 1)"
echo aaa

<<<是bash的扩展,叫做here-string
加上双引号就能一次读一行结果

阅读全文...

php来实现telnet的连接、传递命令、获取返回值等功能

<?php
error_reporting(-1);
class Telnet {
var $sock = NULL;
 
function telnet($host,$port) {
 $this->sock = fsockopen($host,$port);
 socket_set_timeout($this->sock,1,0);
}
function close() {
 if ($this->sock)  fclose($this->sock);
 $this->sock = NULL;
}
 
function write($buffer) {
 $buffer = str_replace(chr(255),chr(255).chr(255),$buffer);
 fwrite($this->sock,$buffer);
}
function getc() {
 return fgetc($this->sock);
}
function read_till($what) {
 $buf = '';
 while (1) {
  $IAC = chr(255);
   
  $DONT = chr(254);
  $DO = chr(253);
   
  $WONT = chr(252);
  $WILL = chr(251);
   
  $theNULL = chr(0);
 
  $c = $this->getc();
   
  if ($c === false) return $buf;
  if ($c == $theNULL) {
   continue;
  }
 
  if ($c == "1") {
   continue;
  }
  if ($c != $IAC) {
   $buf .= $c;
  
   if ($what == (substr($buf,strlen($buf)-strlen($what)))) {
    return $buf;
   }
   else {
    continue;
   }
  }
  $c = $this->getc();
   
  if ($c == $IAC) {
   $buf .= $c;
  }
  else if (($c == $DO) || ($c == $DONT)) {
   $opt = $this->getc();
    //echo "we wont ".ord($opt)."\n";
   fwrite($this->sock,$IAC.$WONT.$opt);
  }
  elseif (($c == $WILL) || ($c == $WONT)) {
   $opt = $this->getc();
    //echo "we dont ".ord($opt)."\n";
   fwrite($this->sock,$IAC.$DONT.$opt);
  }
  else {
    //echo "where are we? c=".ord($c)."\n";
  }
 }
}
}
$telnet = new telnet("192.168.0.1",'8080');
#echo $telnet->read_till("password: ");
#$telnet->write("KONGXX\r\n");
#echo $telnet->read_till(":> ");
#$telnet->write("ls\r\n");
#echo $telnet->read_till(":> ");
echo $telnet->close();


阅读全文...

pip本地源镜像同步

安装distribute

   unzip distribute-0.7.3.zip
   cd distribute
   python setup.py install

安装virtualenv

    easy_install virtualenv

安装bandsnatch

    virtualenv bandersnatch


阅读全文...