2008年5月8日 星期四

16进制颜色代码对照表

#FFFFFF
#FFFFCC
#FFFF99
#FFFF66
#FFFF33
#FFFF00
#FFCCFF
#FFCCCC
#FFCC99
#FFCC66
#FFCC33
#FFCC00
#FF99FF
#FF99CC
#FF9999
#FF9966
#FF9933
#FF9900
#FF66FF
#FF66CC
#FF6699
#FF6666
#FF6633
#FF6600
#FF33FF
#FF33CC
#FF3399
#FF3366
#FF3333
#FF3300
#FF00FF
#FF00CC
#FF0099
#FF0066
#FF0033
#FF0000
#66FFFF
#66FFCC
#66FF99
#66FF66
#66FF33
#66FF00
#66CCFF
#66CCCC
#66CC99
#66CC66
#66CC33
#66CC00
#6699FF
#6699CC
#669999
#669966
#669933
#669900
#6666FF
#6666CC
#666699
#666666
#666633
#666600
#6633FF
#6633CC
#663399
#663366
#663333
#663300
#6600FF
#6600CC
#660099
#660066
#660033
#660000
#CCFFFF
#CCFFCC
#CCFF99
#CCFF66
#CCFF33
#CCFF00
#CCCCFF
#CCCCCC
#CCCC99
#CCCC66
#CCCC33
#CCCC00
#CC99FF
#CC99CC
#CC9999
#CC9966
#CC9933
#CC9900
#CC66FF
#CC66CC
#CC6699
#CC6666
#CC6633
#CC6600
#CC33FF
#CC33CC
#CC3399
#CC3366
#CC3333
#CC3300
#CC00FF
#CC00CC
#CC0099
#CC0066
#CC0033
#CC0000
#33FFFF
#33FFCC
#33FF99
#33FF66
#33FF33
#33FF00
#33CCFF
#33CCCC
#33CC99
#33CC66
#33CC33
#33CC00
#3399FF
#3399CC
#339999
#339966
#339933
#339900
#3366FF
#3366CC
#336699
#336666
#336633
#336600
#3333FF
#3333CC
#333399
#333366
#333333
#333300
#3300FF
#3300CC
#330099
#330066
#330033
#330000
#99FFFF
#99FFCC
#99FF99
#99FF66
#99FF33
#99FF00
#99CCFF
#99CCCC
#99CC99
#99CC66
#99CC33
#99CC00
#9999FF
#9999CC
#999999
#999966
#999933
#999900
#9966FF
#9966CC
#996699
#996666
#996633
#996600
#9933FF
#9933CC
#993399
#993366
#993333
#993300
#9900FF
#9900CC
#990099
#990066
#990033
#990000
#00FFFF
#00FFCC
#00FF99
#00FF66
#00FF33
#00FF00
#00CCFF
#00CCCC
#00CC99
#00CC66
#00CC33
#00CC00
#0099FF
#0099CC
#009999
#009966
#009933
#009900
#0066FF
#0066CC
#006699
#006666
#006633
#006600
#0033FF
#0033CC
#003399
#003366
#003333
#003300
#0000FF
#0000CC
#000099
#000066
#000033
#000000

7mini .1

用as3写了一个播放器
暂时就叫 7mini 版本是 .1




Loading...

2008年5月6日 星期二

ERROR 1418 (HY000) log_bin_trust_function_creators 解决

今天要写一个函数.但没有办法建提示错误如下:
ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

解决方式:(编缉my.cnf,添加如下)
[mysqld]
log_bin_trust_routine_creators = 1
重启mysql就好了

freebsd下如何重启mysql.

freebsd下如何重启mysql.(默认安装)
/usr/local/etc/rc.d/mysql-server restart

2008年5月5日 星期一

防止ssh恶意攻击

DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件,当发现重复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能。
 
DenyHosts官方网站为:http://denyhosts.sourceforge.net
 
以下是安装记录(以CentOS 4.3, DenyHosts 2.5 为例)
 
安装 # cd /usr/local/src
# wget http://mesh.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.5.tar.gz
# tar -zxvf DenyHosts-2.5.tar.gz
# cd DenyHosts-2.5
# python setup.py install
 
默认是安装到/usr/share/denyhosts目录的。
 
配置 # cd /usr/share/denyhosts/
# cp denyhosts.cfg-dist denyhosts.cfg
# vi denyhosts.cfg
 
根据自己需要进行相应的配置(解释见下文件的配置文件)
 
设置启动脚本 # cp daemon-control-dist daemon-control
# chown root daemon-control
# chmod 700 daemon-control
 
完了之后执行daemon-contron start就可以了。 # ./daemon-control start
 
如果要使DenyHosts每次重起后自动启动还需做如下设置: # cd /etc/init.d
# ln -s /usr/share/denyhosts/daemon-control denyhosts
# chkconfig �add denyhosts
# chkconfig �level 2345 denyhosts on
 
或者修改/etc/rc.local文件: # vi /etc/rc.local
 
加入下面这条命令 /usr/share/denyhosts/daemon-control start
 
DenyHosts配置文件: vi /etc/denyhosts.cfg
SECURE_LOG = /var/log/secure
#ssh 日志文件,它是根据这个文件来判断的。
HOSTS_DENY = /etc/hosts.deny
#控制用户登陆的文件
PURGE_DENY = 5m
#过多久后清除已经禁止的
BLOCK_SERVICE  = sshd
#禁止的服务名
DENY_THRESHOLD_INVALID = 1
#允许无效用户失败的次数
DENY_THRESHOLD_VALID = 10
#允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 5
#允许root登陆失败的次数
HOSTNAME_LOOKUP=NO
#是否做域名反解
ADMIN_EMAIL = iakuf@163.com
#管理员邮件地址,它会给管理员发邮件
DAEMON_LOG = /var/log/denyhosts
#自己的日志文件
 
然后就可以启动了: service denyhost start
 
可以看看/etc/hosts.deny内是否有禁止的IP,有的话说明已经成功了。

centOS 常用管理手札


for centOS
 
一、用户环境
#locale    显示系统语言环境      语言环境参数保存在/etc/sysconfig/i18n文件里 LANG最主要
#locale �a       查看系统对语言的支持情况
#LANG=zh_CN.GB2312       使系统支持以中文形式显示
 
#chkconfig kudzu --list  检查某个服务状态(包括各个级别0~6的状态)
#less /etc/sysconfig/hwconf 硬件信息
 

二、系统管理常用命令
 
1.      useradd redhat
 
2.      passwd redhat
 
3.      su �
 
4.      exit
 
5.      df �h 分区情况
 
6.      du �sh  /*      统计文件或目录使用空间的大小
 
7.      fdisk �l  /dev/sda
 
8.      netconfig        配置网络参数
 
9.      ifconfig          显示网络配置信息
 
10.  service network restart
 
11.  route �n          查看路由信息(默认路由)
 
12.  ping �b 192.168.0.255    扫描整个网段(检查活动主机)
 
13.  ifconfig eth0 10.0.0.254 netmask 255.255.255.0  修改IP地址
 
14.  ifconfig eth0显示指定网卡参数
 
15.  修改IP信息后会删除默认路由,需手工添加
 
route add default gw 192.168.0.1
 
16.  ifconfig route 修改过的参数不会保存,重启后会消失
 
要用service network restart命令把参数保存到文件ifcfg-eth0
 
/etc/sysconfig/network-scripts/ifcfg-eth0
 
可以vi直接修改该文件,然后service network restart 重新启用网络服务
 
17.  redhat-config-network-tui是redhat独有的配置工具,当用这个命令配置网络参数后,会写入到/etc/sysconfig/networking/profiles/目录里,并且比network-scripts/ifcfg-eth0优先,所以用过这个工具配置就不要再使用netconfig,或者先将profiles目录清空
 
三、文件系统维护
 

ext2/ext3通过数据块储存文件
 
格式化文件系统:
 
mkfs.ext3 �b 4096 �i 8192 �m 5 /dev/sdb4
 
-b      数据块大小
 
-i inode节点表示的字节数(或数据块大小)
 
-m 5      为管理员保留的磁盘管理空间5% 
 
ls �lh /mnt/u
 
du �sh /mnt/u
 
df �lh
 
#tune2fs �l /dev/sdb1          打印文件系统属性
 
#df
 
tune2fs 调整ext2/ext3文件系统特性的工具
 
-l 查看文件系统信息
 
-m      保留块百分比
 
-c <count>  设置强制自检的挂载次数
 
-i <n day>  设置强制自检的间隔时间
 
-j          ext2转成ext3
 
 
 
tune2fs �c -1 /dev/sdb1    不管挂载多小次都不自检
 
tune2fs �c -1 �i 0 /dev/sdb1  让分区永远不自检
 
#mkfs.ext2 /dev/sdb4  格式化成ext2
 
#tune2fs �j /dev/sdb4  转换为ext3
 
#df �T              查看分区信息
 
判断间ext2还是ext3:
 
tune2fs �l /dev/sdb1 | grep features
 
看Filesystem features: has_journal
 
是否有has_journal,有则是ext3文件系统
 
 
 
grep �i "name"  不区分大小写
 
df �T 分区类型
 
fsck      检查文件系统数据完整性的工具
 
用法一、fsck �t ext2 /dev/sdb1
 
  二、fsck.ext3 /dev/sdb1
 
#more /etc/fstab
 
如发现挂载选项有1或2,那么应该进行自检了
 
#fsck.ext3 �y /dev/sdb1          自动修复错误
 

四、管理磁盘文件系统
 

mount 设备名 挂载点
mount /dev/fd0 /mnt/floppy
光驱(IDE) /dev/cdrom    (/dev/hdx)
光驱(SCSI)/dev/scdN    (N=0,1…)
硬盘(IDE) /dev/hdX      (X=a,b,c…)
硬盘(SCSI)/dev/sdX      (X=a,b,c…)
U盘        /dev/sdX      (X=a,b,c…)
 
弹出光盘#eject
收回#eject �t
因为USB设备内置USB-SCSI转换接口,所以被认为是SCSI硬盘
#mkdir /mnt/u
#mount /dev/sda1 /mnt/u
默认内核已支持SCSI和USB接口
#modprobe usb-storage          检查usb-storage模块是否已加载,否则无法自动识别USB设备
 
#mount �t vfat /dev/hda2 /mnt/c
#mount �t ntfs /dev/hda3 /mnt/d 需重新编译内核才能支持NTFS
#mount �t iso9660 /dev/cdrom /mnt/cdrom
#mount �t vfat �o iocharset=gb2312 /dev/sdb1 /mnt/u
常用字符编码有gb2312和utf8
#mount /dev/sdb2 /mmt/d �o iocharset=utf8,ro,uid=redhat,umask=0077 
 
Linux下使用U盘
#ls /dev          确认设备已识别
#mount -o iocharset=gb2312 /dev/sda1
more后ctrl+F向下翻页(或空格)ctrl+b(上滚)
ls -a            显示隐藏文件(以.开头的文件)
文件权限rws        s表示执行这个程序的使用者,临时拥有和所有者一样的权力身份来执行该程序
cp -r 源  目的    -r参数表示连子目录一起拷贝
rm -i            确认删除
  -r            删除子目录
  -f            强制删除
du                磁盘或目录使用了多少空间
df                磁盘或目录剩余可用空间
cat >file1        等价你输入文字,输完后ctrl+C或ctrl+D结束
>>符号表示在文件尾附加,>符号表示创建新文件
less  可上下滚动文件内容
which    在$PATH设置的目录查找文件
 
五、使用磁盘配额
 

默认系统内核已支持quota
 
mount �o usrquota,grpquota /dev/sdb1 /mnt/d1 或
 
mount �o remount,usrquota,grpquota /
 
也可以修改 /etc/fstab文件来启用每个文件系统的配额 ---- 添加选项usrquota,grpquota
 
例:
 
将LABEL=/home  /home  ext3  defaults  1 2
改为
LABEL=/home  /home  ext3  defaults,usrquota  1 2
 

#init 1      (进入单用户环境)
 
#quotacheck �cvuga  或 quotacheck �cvag  /dev/sdb1    (a代表all)(g代表用户组)
 
#quotaon �a 激活
 
#edquota �u redhat          进VI编缉用户配额
 
编缉用户可用的字节数,软性的,硬性的,文件数,软件性的,硬性的
 
quota �u redhat      查看用户磁盘配额
 
edquota �t          配置过期时间
 
edquota命令能为一系列用户设置同一配额。假设已为用户ez设立了配额,以下命令将为随后的用户(即mj、jm和tp)复制完全相同的配额限制:
 
$ sudo /usr/sbin/edquota -up ez mj jm tp
 
quotaoff /mnt/sdb1  关闭磁盘配额
 
quotaon /mnt/sdb1    开启
 
repquota命令按用户(-u)或组(-g)报告配额使用情况。用repquota -a命令可以得到所有文件系统的报告。
 
如果想检查单个用户(-u)或组(-g),可以使用quota命令。单个用户可以用此命令检查他们自己的配额使用情况。
 
关于putty 0.58的简单设置
 
1.      修改语言环境 LANG=zh_CN.utf8
 
2.      修改传输数据的字符集translationàUTF8
 
3.      修改外观appearance字体font为新宋体
 
  ls �ld      显示文件属主,详细信息
 
六、Raid
 

安全的动态磁盘策略
linux内核可以模拟RAID控制器,用来管理硬盘,但只支持级别0,1,4,5
RAID0 又称striping
把连续的数据访问分散到多个磁盘上来提高存储性能,速度最快,但最危险。
RAID1 又称Mirror或Mirroring
最大限度的保证用户数据的可用性和可修复性,用户数据100%自动复制到另外一个硬盘上,速度稍慢,因为要同时写多个硬盘。
RAID5    最少需三个硬盘
不对存储的数据时行备份,而把数据和对应的奇偶校验信息分别存储在不同的磁盘上,当一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
RAID0+1      也称RAID10
结合RAID0和RAID1的优点,很多公司在应用
 
Linux中的软件RAID
1.默认内核已支持软件RAID控制器
2.需安装raidtools工具来创建管理RAID设备,raidtools包含有RAID创建管理工具和默认的示范性配置文件,安装完后编辑/etc/raidtab这配置文件,它可以从raidtools中的示范配置文件里(在/usr/share/doc/raid-~/目录下)复制。最后用以下命令创建RAID设备:
 
#mkraid /dev/md0
#mkraid -f /dev/md0
#mkraid -R /dev/md0
  后两个命令是强制创建,覆盖以前建的超级块。
 
  但Fedora Core5不使用这个,而用mdadm工具。
3.软件RAID设备文件名:/dev/mdN        (N=0,1,2…)
4.软件RAID设备可以当分区看待,需格式化后挂载
#mkfs.ext3    /dev/md1
#mount /dev/md1 /opt
5.停止RAID设备
#umount /opt
#raidstop /dev/md0
  要永久删除RAID设备,还需删除raidtab文件,否则重启后RAID仍起作用。
6.显示RAID设备信息
#lsraid -A -a /dev/md1
7.RAID1故障模拟
  假设sdb1与sdc1两个磁盘做RAID1,sdb1磁盘坏了,加入新一块磁盘sdd1。
#raidsetfaulty /dev/md1 /dev/sdb1
#raidhotadd /dev/md1 /dev/sdd1       
#more /proc/mdstat                    查看磁盘修复过程
#raidhotremove /dev/sdb1
  最后还要修改raidtab文件。
 
使用mdadm来创建和管理RAID
RAID0
      添加硬盘
      RAID设备的成员是硬盘分区,需先对硬盘分区,分区不能在同一物理硬盘上
      #fdisk /dev/sdb
      n创建主分区,t分区类型fd,w写保存
      #fdisk /dev/sdc
      #mdadm �Cv /dev/md0 �l0 �n2 /dev/sdb1 /dev/sdc1
              -C,--create            创建一个新的阵列
              -v,verbose            显示细节
              /dev/md0              阵列设备的名称
              -l,--level=              阵列级别,如0,1,4,5,6
              -n,--raid-devices=  阵列活动数目
              /dev/sd[bc]1          阵列包含的设备列表
      #more /proc/mdstat              查看阵列状态
      #mkfs.ext3 /dev/md0    创建文件系统
      #mount /dev/md0 /mnt/raid
      让系统自动挂载,修改/etc/fstab,添加
      /dev/md0      /mnt/raid        ext3 defaults 0 0
 
RAID5 故障模拟
      前面已创建了一个RAID5设备md0
      #mdadm �Cv /dev/md0 �l5 �n3 �x1 �c128 /dev/sd[b,c,d,e]1
      1.将/dev/sdb1标记为已损坏的设备
      #mdadm /dev/md0 �f  /dev/sdb1
      这时阵列开始重构和恢复数据
      2.移除损坏的设备
      #mdadm /dev/md0 �r /dev/sdb1
      3.将新设备添加到阵列
      注意,一:对硬盘正确分区,二:添加设备名要与被移除的一致,如sdb1
      #mdadm /dev/md0 �a /dev/sdb1
     
生成配置文件/etc/mdadm.conf
格式如下:
DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 ARRAY /dev/md10 level=raid10 num-devices=4 UUID=12334343dkfj
 
其中UUID信息通过#mdadm �D /dev/md10得到
#mdadm �Ds 扫描该文件信息
 
常用阵列维护命令
1.启用阵列
      #mdadm �As /dev/md0
      -A    启用已存在的阵列
      -s    以/etc/mdadm.conf为依据
      没有创建mdadm.conf文件,则采用如下方法启用
      #mdadm �A /dev/md0 /dev/sd[bc]1
2.停止阵列
      #mdadm �S /dev/md0
3.显示阵列详细信息
      #mdadm �D /dev/md0

2008年4月18日 星期五

正则匹配email - 不全面[php]

匹配 数字or字母 @ 数字or字母 . 数字or字母

<?php
if(preg_match("/^\w{1,32}@\w{1,16}.\w{1,3}(.\w{1,3})?$/", $string)) {
  return true;
} else {
  return false;
}
?>

2008年4月12日 星期六

Zend studio 6 for eclipse 自带插件 phpDocumentor 生成文档 编码问题




用了大概2个月的Zend for eclipse
其中一个插件功能我很喜欢,就是phpDocumentor 了,自动生成代码文档
但是其中还是有个小问题的,默认的生成编码是iso-8859-1。但是我是用utf-8来编写代码的,而且注释用了中文。直接打开生成后的文档就会出现乱码[这个时候放在apache里用网站方式浏览倒不会出现乱码了,因为编码以apache指定的优先]。
于是我决定应该解决这个小问题。

开始第一步查出什么地方指定了编码
我用emedit在文件中查找,发现了原来编码的指定是做在模板里的而不是想我想的放在某个配置文件里。
模板路径见下,我的zend按在D:\
D:\Program Files\Zend\Zend Studio for Eclipse - 6.0.0\plugins\com.zend.php.phpdocumentor_6.0.0.v20080107\Resources\phpdocumentor\phpDocumentor\Converters\HTML
我只用html,在上一层目录里还有 chm、xml、pdf等

这个目录里还分frames和smarty这两类生成的时候我都要用所以替换编码就在这个目录进行

用emedit 在文件中替换 功能将iso-8859-1替换成 utf-8就好了

然后再生成下,发现可以直接打开而不乱码了。