工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆
浏览模式: 标准 | 列表全部文章

golang exec交互执行

 package main

    import (     "bytes"     "fmt"     "os/exec" )     func main() {     in := bytes.NewBuffer(nil)     cmd := exec.Command("sh")     cmd.Stdin = in     go func() {         in.WriteString("echo hello world > test.txt\n")         in.WriteString("exit\n")     }()     if err := cmd.Run(); err != nil {         fmt.Println(err)         return     } }

bind DNSSEC

 

BIND简易教程(3):DNSSec配置

http://www.cnblogs.com/anpengapple/p/5879363.html
 
DNS BIND之dnssec安全实例配置-根节点
http://blog.csdn.net/zhu_tianwei/article/details/45075577
 

用 BIND 搭建高可用性 DNSSEC 仅权威服务器

https://www.v2ex.com/t/143009

VMware Workstation克隆CentOS 没有网卡eth0 无法开启网络服务

 

解决办法:

因为这台虚拟机是通过克隆而来,MAC地址和源虚拟机一样,因此需要修改MAC地址 
步骤如下: 
1.vi /etc/sysconfig/network-scripts/ifcfg-eth0 
将HWADDR修改为: 
在虚拟机设置中

2.删除 /etc/udev/rules.d/70-persistent-net.rules 然后重启 
rm /etc/udev/rules.d/70-persistent-net.rules 
reboot

-------------

cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth1"

 

BOOTPROTO="static"

 


Nginx支持多域名ssl证书

 接下来我们详细叙述一下能让nginx支持多域名证书的过程,主要分为如下两个大步骤:编译安装openssl和编译安装nginxnginx平滑升级,不影响业务)。

一、编译安装openssl

wget http://www.openssl.org/source/openssl-0.9.8l.tar.gz

tar zxvf ./openssl-0.9.8l.tar.gz

cd ./openssl-0.9.8l

#编译的时候需要加上enable-tl***t参数

./config enable-tl***t

make

make install

二、编译安装nginxnginx平滑升级)

tar xzvf nginx-1.0.12.tar.gz

cd nginx-1.0.12

#备份原来的nginx配置

mv /usr/local/nginx /usr/local/nginx_old

#安装nginx

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_gzip_static_module  --with-http_stub_status_module --with-openssl=../openssl-0.9.8l/

make;make install

cd /usr/local/nginx

#备份新安装的配置目录

mv conf conf_bak

mv logs logs_bak

#拷贝原来的配置文件目录

cp -ar /usr/local/nginx_old/conf .

cp -ar /usr/local/nginx_old/logs .

#测试配置文件

/usr/local/nginx/sbin/nginx -t

#查找nginx主进程

ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'

#执行切换操作

kill -USR2 912

kill -WINCH 912

kill -QUIT 912

 

安装完成使用/usr/local/nginx/sbin/nginx  -V查看一下是否支持TLS SNI,检测如下:

nginx version: nginx/1.0.12

TLS SNI support enabled

configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with-openssl=../openssl-0.9.8l/

Ok,显示已经支持了TLS SNI,在输入https访问,终于能显示正确的证书了! 注意目前如果使用xp上的IE去访问的话还是会提示证书有问题,因为xp上任何版本的IE都不支持TLS SNI

 
 这里说下Linux 系统怎么通过openssl命令生成 证书。

  首先执行如下命令生成一个key
  openssl genrsa -des3 -out ssl.key 1024
  然后他会要求你输入这个key文件的密码。不推荐输入。因为以后要给nginx使用。每次reload nginx配置时候都要你验证这个PAM密码的。
  由于生成时候必须输入密码。你可以输入后 再删掉。

  mv ssl.key xxx.key
  openssl rsa -in xxx.key -out ssl.key
   rm xxx.key
   然后根据这个key文件生成证书请求文件
   openssl req -new -key ssl.key -out ssl.csr
   以上命令生成时候要填很多东西 一个个看着写吧(可以随便,毕竟这是自己生成的证书)

    最后根据这2个文件生成crt证书文件
   openssl x509 -req -days 365 -in ssl.csr -signkey ssl.key -out ssl.crt
    这里365是证书有效期 推荐3650哈哈。这个大家随意。最后使用到的文件是key和crt文件。

    如果需要用pfx 可以用以下命令生成
    openssl pkcs12 -export -inkey ssl.key -in ssl.crt -out ssl.pfx

    在需要使用证书的nginx配置文件的server节点里加入以下配置就可以了。
   ssl on;
   ssl_certificate /home/ssl.crt;
   ssl_certificate_key /home/ssl.key;
   ssl_session_timeout 5m;
   ssl_protocols SSLv2 SSLv3 TLSv1;
   ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
   ssl_prefer_server_ciphers on;
    然后重启nginx就大功告成了

js

 //var url = "http://www.test.net/install.html";

var url = "http://www.test.net/t.php";  
var param = "name=david&age=30";  
var obj = new ActiveXObject("WinHttp.WinHttpRequest.5.1");  
obj.Open("GET", url, false);  
obj.Option(4) = 13056;  
obj.Option(6) = false; //false可以不自动跳转,截取服务端返回的302状态。  
obj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");  
obj.setRequestHeader("Referer", "http://www.baidu.com");
obj.setRequestHeader("User-Agent","Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322)");
//obj.setRequestHeader("REMOTE_ADDR","1.1.1.8");
//obj.setRequestHeader("CLIENT-IP","1.1.1.3");
obj.setRequestHeader("X-FORWARDED-FOR","1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.4,1.1.1.41.1.1.4");
//obj.setRequestHeader("HTTP_CLIENT_IP","1.1.1.5");
//obj.setRequestHeader("X-ClientIP","1.1.1.6");
//obj.setRequestHeader("HTTP_X_FORWARDED_FOR","1.1.1.7");
obj.setRequestHeader("REMOTE_ADDR","1.1.1.8");
obj.setRequestHeader("X-Real-IP","1.1.1.9");
obj.setRequestHeader("X-REAL-IP","1.1.1.11");
 
obj.Send(param);  
WScript.Echo(obj.responseText);

新浪短网址API接口

 copy来的~~~
以下appley未经过审核⋯⋯

新浪短网址接口的稳定性和跳转速度还是很给力的,现给出其API说明。
该接口支持两种返回格式:xml和json
对应的URL请求地址为:

xml:http://api.t.sina.com.cn/short_url/shorten.xml
json:http://api.t.sina.com.cn/short_url/shorten.json

请求方式:GET
请求参数:
  source:应用的appkey
  url_long:需要转换的长链接

举个例子:
xml:http://api.t.sina.com.cn/short_url/shorten.xml?source=3271760578&url_long=http://www.douban.com/note/249723561/
返回内容为:
<urls>
     <url>
          <url_short>http://t.cn/zWXySpZ</url_short>
          <url_long>http://www.douban.com/note/249723561/</url_long>
          <type>0</type>
     </url>
</urls>

json:http://api.t.sina.com.cn/short_url/shorten.json?source=3271760578&url_long=http://www.douban.com/note/249723561/
返回内容为:
[{"url_short":"http://t.cn/zWXySpZ","url_long":http://www.douban.com/note/249723561/","type":0}]

background-size 设置背景图片的大小

 

background-size

设置背景图片的大小,以长度值百分比显示,还可以通过covercontain来对图片进行伸缩。

语法:

background-size: auto | <长度值> | <百分比> | cover | contain

取值说明:

1、auto:默认值,不改变背景图片的原始高度和宽度;

2、<长度值>:成对出现如200px 50px,将背景图片宽高依次设置为前面两个值,当设置一个值时,将其作为图片宽度值来等比缩放

3、<百分比>:0%~100%之间的任何值,将背景图片宽高依次设置为所在元素宽高乘以前面百分比得出的数值,当设置一个值时同上;

4、cover:顾名思义为覆盖,即将背景图片等比缩放以填满整个容器

5、contain:容纳,即将背景图片等比缩放至某一边紧贴容器边缘为止

提示:大家可以在右边的编辑窗口输入自己的代码尝试不同取值的效果。

linux crontab 实现每秒执行

 

  1. #!/bin/bash  
  2.   
  3. step=2 #间隔的秒数,不能大于60  
  4.   
  5. for (( i = 0; i < 60; i=(i+step) )); do  
  6.     echo "OK"  
  7.     sleep $step  
  8. done  
  9.   
  10. exit 0  


#!/bin/bash
step=3
for (( i = 0; i < 60; i=(i+step) )); do
id=`ps ax | grep ".php" | grep -v grep | awk -F" " '{print $1}'`
echo $id
if [ "$id"x = x ];then
        echo "no"
else
        sleep 1
        nid=`ps ax | grep ".php" | grep -v grep | awk -F" " '{print $1}'`
        if [ "$id" == "$nid" ];then
                echo $nid
                kill $id
        fi
        echo $id
fi
sleep $step
done
 
exit 0