301和302 Http状态有啥区别?

301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于:

301 redirect: 301 代表永久性转移(Permanently Moved),

302 redirect: 302 代表暂时性转移(Temporarily Moved ),

当然 Http 状态 200 标示没有任何问题发生。
阅读全文
很多初学51单片机的网友会有这样的问题:AT89S51是什么?书上和网络教程上可都是8051,89C51等!没听说过有89S51 ?! 
阅读全文
用它在Alpine上生成各种级别的密钥,RSA、DSA和ECDSA三者的签名:


有些时候,我们在复制/移动文件到另一台机器时会用到scp,因为它比较安全。但如果每次

都要输入密码,就比较烦了,尤其是在script里。不过,ssh有另一种用密钥对来验证的方

式。下面写出我生成密匙对的过程,供大家参考。

关键点:
1)生成密钥的机器私钥不动,公钥给待连接的服务器。
2)公钥放到要待连接的机器上要改名为:authorized_keys。(mv id_rsa.pub authorized_keys)
3)权限得要是700:chmod -R 700 authorized_keys,在谁家就是chown 谁的权限,总之,在某人hime目录下面就只能某人读取即可,不需要其他人能读取或修改,一旦chown 后,755不必了,也是为了安全,# chmod 600 authorized_keys即可读取写入即可,记住:目录是700,里面的文件是600,也就是只能这个用户读取600,这个目录也是只能这个用户进入也就是目录得有x。

4)服务端:放谁的Home目录下在服务端执行命令时就是谁。
5)客户端:在客户端登录时如不指明用户,就是客户端的用户名,如:客户端是root用户,不指名则是root@xx.xx.xx.xx去连接。如果服务端也是放/root/.ssh/authorized_key下,刚好,如客户端不是root,是test,则直接ssh是肯定连接不上的,因为变成了:test@xx.xx.xx.xx。
6)同样,你客户client端连接时是xiangdong,但你生成密钥时是root(公钥匙放到待连接机的/home/xiangdong/.ssh/下。),此时也是对不上的,得以root环境(因为他要找当时生成密钥的私钥,你client本地换成了xiangodng,它没有了。)
7)所以,鉴于6这种情况,最好生成时的用户和待连接的用户一样(实践证明如果lvops用户设置后,如果root下执行ssh -llvops xx.xx.xx.xx 也是需要密码的,而su到lvops就能免密码登陆成功,这块ansible是可以的,因为如xiangdong的/home/.ansible.cfg自己设置了id_rsa文件路径,而root下用ssh -l这种方法并没有带上id_rsa的路径去登陆,所以还是需要密码的。private_key_file = /home/xiangdong/irdcops_private_key  前面文件来自后面拷贝:private_key_file = /home/lvops/.ssh/id_rsa ,这块儿如果是root操作注意把irdcops_private_key权限为xiangdong且能读取,否则ansible没法读取也就会需要密码或报错的问题。http://jackxiang.com/post/8967/),这样就会省去指定也好,用户名对不上,还得指定才行的这些小问题引发连接不上的问题。  
第七点,也是实践证明了的,符合上面1-6点后,也就不用指明用户名了,如下:
[xiangdong@localhost .ssh]$ ssh 10.70.37.24
The authenticity of host '10.70.37.24 (10.70.37.24)' can't be established.
RSA key fingerprint is 56:94:6d:81:f3:e5:e2:8b:90:0a:93:3b:8e:7e:fd:c8.
Please type 'yes' or 'no': yes
Warning: Permanently added '10.70.37.24' (RSA) to the list of known hosts.
Last login: Thu May  5 17:27:03 2016 from 192.168.101.227

http://blog.csdn.net/kongqz/article/details/6338690
——————————————————生成步骤如下:——————————————————
第一步:生成密匙对,我用的是rsa的密钥。使用命令 "ssh-keygen -t rsa"


   [user1@rh user1]$ ssh-keygen -t rsa
   Generating public/private rsa key pair.
   Enter file in which to save the key (/home/user1/.ssh/id_rsa):
   Created directory '/home/user1/.ssh'.
   Enter passphrase (empty for no passphrase):
   Enter same passphrase again:
   Your identification has been saved in /home/user1/.ssh/id_rsa.
   Your public key has been saved in /home/user1/.ssh/id_rsa.pub.
   The key fingerprint is:
   e0:f0:3b:d3:0a:3d:da:42:01:6a:61:2f:6c:a0:c6:e7 user1@rh.test.com
   [user1@rh user1]$

我的:

Jackxiang:/usr/local/tads/htdocs/xxy/src/view/images #  ssh-keygen -t rsa
Generating 2048-bit rsa key pair
   3 o.oOo.oOo.oO
Key generated.
2048-bit rsa, root@Tencent, Tue Mar 02 2010 11:26:08 +0800
Passphrase :
Again      :
Key is stored with NULL passphrase.
(You can ignore the following warning if you are generating hostkeys.)
This is not recommended.
Don't do this unless you know what you're doing.
If file system protections fail (someone can access the keyfile),
or if the super-user is malicious, your key can be used without
the deciphering effort.
Private key saved to /root/.ssh2/id_rsa_2048_a
Public key saved to /root/.ssh2/id_rsa_2048_a.pub


注意,我这儿:
这儿公用密钥:/root/.ssh2/id_rsa_2048_a.pub
私有密钥:/root/.ssh2/id_rsa_2048_a
生成的过程中提示输入密钥对保存位置,直接回车,接受默认值就行了。接着会提示输入一

个不同于你的password的密码,直接回车,让它空着。当然,也可以输入一个。(我比较懒

,不想每次都要输入密码。) 这样,密钥对就生成完了。

其中公共密钥保存在 ~/.ssh/id_rsa.pub    =》 /root/.ssh2/id_rsa_2048_a.pub
私有密钥保存在 ~/.ssh/id_rsa                =》/root/.ssh2/id_rsa_2048_a


然后改一下 .ssh 目录的权限,使用命令 "chmod 755 ~/.ssh"   =》chmod 755  /root/.ssh2

   [user1@rh user1]$ chmod 755 /root/.ssh
   [user1@rh user1]$



之后把这个密钥对中的公共密钥复制到你要访问的机器上去(被以前需要密码访问的机器上),并保存为  

~/.ssh/authorized_keys   #My:    mv id_rsa_2048_a.pub authorized_key


   [user1@rh user1]$ scp ~/.ssh/id_rsa.pub rh1:/home/user1/.ssh/authorized_keys  //特别注意:这个是在服务器端操作的
   user1@rh1's password:
   id_rsa.pub                                    100%  228     3.2MB/s   00:00
   [user1@rh user1]$



之这样就大功告成了。之后你再用ssh scp sftp 之类的访问那台机器时,就不用输入密码

了,用在script上更是方便。


SSH服务的配置
1、配置SSH服务的运行参数,是通过修改配置文件/etc/ssh/sshd_config实现的。
2、因为SSH服务使用默认的配置已经能够很好的工作,如果仅仅提供SSH服务不需要修改。这里只介绍一
些常用的选项。
#Port 22
定义了SSH服务监听的断口号,SSH服务默认使用的端口号是22
#Proctocol 2,1
定义了SSH服务器使用SSH协议的顺序。默认识先使用SSH2协议,如果不成功则使用SSH1协议,为了安全起
见,可以设置只使用SSH2协议。
#ListenAddress 0.0.0.0
定义SSH服务器帮定的IP地址,默认绑定服务器所有可用的IP地址.
#PermitRootLogin yes
定义是否允许管理员登陆
#PermitEmptyPasswords no
定义是否允许空密码登陆.

#PasswordAuthentication no
定义是否使用口令认证方式,如果准备使用公钥认证可以设置为no
# ps aux|grep ssh
root      2649  0.0  0.0   3360   840 ?        Ss    2009   0:00 /usr/local/sbin/sshd -f /etc/ssh2/sshd2_config.l

vi  /etc/ssh2/sshd2_config.l
即可!


四 :
   吧 id_rsa ,拷到客户端,在服务器端吧id_rsa.pub 改名为authorized_keys


cat id_rsa.pub >> authorized_keys


注意:
ssh2的配置:
#PermitRootLogin yes
定义是否允许管理员登陆
#PermitEmptyPasswords no
定义是否允许空密码登陆.

把 id_rsa ,拷到客户端,在服务器端吧id_rsa.pub 改名为authorized_keys
mv id_rsa_2048_a.pub authorized_key  这个是公钥重新命名。而客户端则是安装在自己的机器上这儿是:id_rsa_2048_a
别弄反了!


写在最后:
root
Jackxiang:/root/.ssh2 # scp ~/.ssh2/id_rsa_2048_a /root/.ssh2/authorized_keys21
scp: warning: stat: id_rsa_2048_a (src): no such file (server msg: 'syserr: No such file or directory, file: /home/admin/.ssh2/id_rsa_2048_a')
Tencent:/root/.ssh2 # whoami
root

admin:x:0:100::/home/admin:/bin/bash

Jackxiang:/root/.ssh2 # ls /home/admin
***
不是真正的root,是root这个组的,于是得拷贝到:
/home/admin/.ssh2/  下,才行!


附送,方便一键ssh连接:


# User specific aliases and functions
alias df='df -Th'
alias l='ls -CF'
alias la='ls -A'
alias les='less -S'
alias topme='top -u `whoami`'
alias s33='ssh -Yi ~/.ssh/33 192.168.8.33'
alias s34='ssh -Yi ~/.ssh/33 192.168.8.34'
alias s35='ssh -Yi ~/.ssh/33 192.168.8.35'
alias s32='ssh -Yi ~/.ssh/33 192.168.8.32'
alias f32='sftp -oIdentityFile=~/.ssh/33 192.168.8.32'
alias s15='ssh -Yi ~/.ssh/15 192.168.8.15'
alias s16='ssh -Yi ~/.ssh/15 192.168.8.16'
alias s17='ssh -Yi ~/.ssh/15 192.168.8.17'
alias f15='sftp -oIdentityFile=~/.ssh/15 192.168.8.15'


都三年前写的了,
今年2011加上个参考:http://chenlb.blogjava.net/archive/2008/07/03/212293.html

actInit.yaml
225: { type: 225, total: 60, daylimit: { 2010-1-28: 20, 2010-1-29: 20, 2010-1-30: 20, 2010-2-01: 20  } }
226: { type: 226, total: 60, daylimit: { 2010-1-28: 20, 2010-1-29: 20, 2010-1-30: 20, 2010-2-01: 20  } }


yaml_prase.php

<?php

    require_once "spyc.php";
    $content = @file_get_contents("./actInit.yaml");
    $yaml = Spyc::YAMLLoad($content);
    print_r( $yaml );

?>


输出array的结果如下,符合多维数组的输出要求:

Array
(
    [225] => Array
        (
            [type] => 225
            [total] => 60
            [daylimit] => Array
                (
                    [2010-1-28] => 20
                    [2010-1-29] => 20
                    [2010-1-30] => 20
                    [2010-2-01] => 20
                )

        )

    [226] => Array
        (
            [type] => 226
            [total] => 60
            [daylimit] => Array
                (
                    [2010-1-28] => 20
                    [2010-1-29] => 20
                    [2010-1-30] => 20
                    [2010-2-01] => 20
                )

        )

)
<?php
    require_once "spyc.php";
    $content = @file_get_contents("./actInit.yaml");
    $yaml = Spyc::YAMLLoad($content);
    print_r( $yaml );

?>
house:
   family: { name: Doe, parents: [John, Jane], children: [Paul, Mark, Simone] }
   address: { number: 34, street: Main Street, city: Nowheretown, zipcode: 12345 }


Array
(
    [house] => Array
        (
            [family] => Array
                (
                    [name] => Doe
                    [parents] => Array
                        (
                            [0] => John
                            [1] => Jane
                        )

                    [children] => Array
                        (
                            [0] => Paul
                            [1] => Mark
                            [2] => Simone
                        )

                )

            [address] => Array
                (
                    [number] => 34
                    [street] => Main Street
                    [city] => Nowheretown
                    [zipcode] => 12345
                )

        )

)


阅读全文
http://blog.sina.com.cn/s/blog_4a654272010007d1.html阅读全文

来源:
http://www.w3school.com.cn/php/func_string_chr.asp


八进制为什么以0开头,十六进制为什么以0X开头?这个是计算机编程语言里面的约定。大部分计算机高级语言涉及到这里都是遵循一样的标准,以便于区分。
马上上手:
注释:ascii 参数可以是十进制、八进制或十六进制。通过前置 0 来规定八进制,通过前置 0x 来规定十六进制。

<?php
echo chr(52);//十进制没有什么开头
echo chr(052);//八进制以0开头
echo chr(0x52);//十六进制就以0x开头
?>输出:

4
*
R

为此,同样的52输出不同的结果字母,看是简单,还是仍然需要注意一下,偶尔会犯大错的,呵呵!
来源:http://www.39g.com/html/kaifa/262/2009/10/011415616641.htm阅读全文
<?php                    
                  
$user = ""; //数据库用户名                    
$password = "";//数据库密码                    
$db_name = "i";//数据库名                    
                  
$link = mysql_connect("localhost:3306",$user,$password);                    
mysql_select_db("$db_name",$link);                    
echo "<p>正在清空数据库,请稍等....<br>";                    
$result=mysql_query("SHOW tables",$link);                    
while ($currow=mysql_fetch_array($result)) {                    
mysql_query("drop TABLE IF EXISTS $currow[0]");                    
echo $currow[0]."<br>";                    
}                    
echo "<br>恭喜你清理MYSQL成功<br>";                    
?>

阅读全文
本机:windows XP
VM6:CentOS5.5

Step1:本机 ipconfig /all ,获得ip,子网掩码,网关和DNS。
Step2:填入CentOS5.5的network,如下图。
点击在新窗口中浏览此图片
#IP要是整冲突了,我把你手剁了!!!

Step3:执行下面的命令
echo -e "nameserver 首选DNS\nnameserver 备用DNS" >> /etc/resolv.conf
如,
echo -e "nameserver *.*.*.*\nnameserver *.*.*.*" >> /etc/resolv.conf

Step4:ping baidu.com看是否能通讯
如果能,说明设置正确;如果不能,说明echo那条命令输入错误,比如 -e和后面的双引号之间要有一个空格。

如果命令输入错了,就执行下面的命令,覆盖一下,

echo -e "nameserver 202.106.0.20\nnameserver 203.196.0.6" > /etc/resolv.conf


现在只是临时能上网~~虚拟机重启后便不能了,还需要更改一个文件~

Step5:
ls /etc/sysconfig/network*
vi /etc/sysconfig/network-scripts/ifcfg-eth0
添加,如下内容(三行),
IPADDR=*.*.*.*
NETMASK=*.*.*.*
GATEWAY=*.*.*.*
#数字自己填,你不会真的给我写上星星吧,当心你的手指头 _ _!

Step6:重启虚拟机,可以上网了!
成功的人生,首先要找到做人做事的起点,我们可以把这个起点称之为“1”。这个“1”,包括经济意义上的“1”和社会意义上的“1”。经济意义上的“1”,就是俗称的“第一桶金”,是干干净净、结结实实的本钱。社会意义上的“1”,就是做人的本份、做人的良知和常识。经济意义上的“1”好找,找到以后还可以添上若干个“0”,积累巨大的财富。但是社会意义上的“1”很难守住,一旦守不住,就会丢掉本份,迷失本性,忘了自己是谁,忘了自己从哪里来,这就危险了。人是会随着财富的增长、身份的变化有所改变的,但有些常理、本份的东西永远不应改变。 阅读全文
众所周知,IT应用即是企业业务核心。如今,有90%的关键性业务处理是通过IT系统来完成的。在整体业务的背后,如果没有IT应用程序来驱动每个业务的进行,那你根本就不可能进行创建、下订单,送货,雇佣雇员或进行记账的任何一个行为了。因此,我们可以很清楚地看到IT应用和质量、性能对于业务交易是至关重要的。阅读全文
我想显示1到5的所有数字,以下代码可以

#!/bin/sh
for i in 1 2 3 4 5
do
echo $i
done
那么我想显示1到100的数字呢。用for 循环该怎么写?

#!/bin/sh
for i in `seq 1 100`
do
echo $i
done


shell中循环取出文件中每一行赋予一变量的问题,試試:
cat a.txt | while read aa
do echo $aa
done


阅读全文
http://www.eb163.com/club/thread-1708-1-1.html
1.PID是一种闭环控制系统,根据控制量的实际值与设定的偏差来计算下一步的控制量;P使输入与输出成一种比例关系,I则
是对控制过程偏差的积分,使系统朝偏差减小的方向行进,最终达到消灭静差的目的,D则是用在有滞后和较大惯性的系统控
制中,而温度控制就是这样的,微分项可以“预测”误差变化的趋势,所以减小超调、消除震荡就靠它了。

2.算法选用位置式,数据类型用unsigned int
    很多资料上都推荐增量式,但这样一来必须选用float;用unsigned int的话,如果温差的差变化不大,大多数情况积分
项会被省咯,用定点数,则就得用double。
    而位置式则无此问题,个人理解,增量式积分在最终输出项了,即先乘积分系数,后积分,位置式则相反,所以选用位
置式用定点数损失不大。
    51单片机不适合用float、double;资源消耗太大了。

3.要想使波动范围小,那么数据输入精度非常重要
    如果输入的温度值精度为1度,想达到 -1度的控制精度,是不可能的,最少也得0.1度左右,有些资料推荐在计算前给温
度值*10,输出时再/10,这样做基本没什么作用,仅仅是方便了计算;基于温差变化而计算,若迟迟得不到温差变化,又怎
么能计算呢。

4.温度控制的范围也很重要
    也就是在用unsigned int、用定点数时,若控制的温度范围很大时,计算时会产生溢出,若选好范围即可解决,如控制
的范围为0-300度,其实根据位置式公式计算,温差在40度左右系统才会减小输出功率,那么我们在温差在40度之内后才开始
用PID控制,之前全功率加热,这样减小了数据量,也减轻了无效的计算,当然不能忘了温差为负数时,也要限制温差计算范
围,范围之外的关闭输出。

5.参数的整定很累人
    一定要按先比例后积分,再微分,同时要作好记录、分析,不要想着为节省三个系数都先给个经验值,再同时调,结果
很可能欲速则不达,本人已经有过教训了;最后当你对系统的加热过程越了解,也就越接近完成了。
PID的改良算法有很多,必要时要采用。

晓奇大侠是这方面的高手,他有一篇文章关于PID对我帮助很大,非常感谢他的帮助,我这里说的那里基本都说过。呵呵。
欢迎大家批评指正,我对PID也是只知皮毛,了解也很肤浅。
分页: 176/271 第一页 上页 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 下页 最后页 [ 显示模式: 摘要 | 列表 ]