Windows 和 Linux 下生成以当前时间命名的文件

在 Windows、Linux 操作系统,分别利用BAT批处理文件和Shell脚本,生成类似“20110228_082905.txt”以“年月日_时分秒”命名的文件。

Windows BAT批处理文件:

@echo off
set time_hh=%time:~0,2%
if /i %time_hh% LSS 10 (set time_hh=0%time:~1,1%)
set filename=%date:~,4%%date:~5,2%%date:~8,2%_%time_hh%%time:~3,2%%time:~6,2%
echo test >> %filename%.txt

Linux Shell 脚本:

#!/bin/sh
echo test >> $(date -d “today” +”%Y%m%d_%H%M%S”).txt

 

FreeBSD下安装mysql支持GBK字符集

在FreeBSD下安装mysql支持GBK字符集:

#cd/usr/ports/databases/mysql51-server
# make WITH_CHARSET=gbk WITH_XCHARSET=all WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes SKIP_DNS_CHECK=yes WITHOUT_INNODB=yes install clean
# cp /usr/local/share/mysql/my-small.cnf /etc/my.cnf
mysqld中加入bind_address=127.0.0.1
#rehash
#mysql_install_db
#chown –R mysql:mysql /var/db/mysql
#/usr/local/etc/rc.d/mysql-server forcestart
#/usr/local/bin/mysqladmin -u root password ‘new-password’

有的教程说还需要同时指定”WITH_COLLATION=gbk_chinese_ci“这一项,我没有加上,不知道以后会不会有问题出现的.

Mysql 支持的字符集简介

mysql 服务器可以支持多种字符集(可以用 show character set 命令查看所有 mysql 支持的字符集),在同一台服务器、同一个数据库、甚至同一个表的不同字段都可以指定使用不同的字符集,相比 oracle 等其他数据库管理系统,在同一个数据库只能使用相同的字符集,mysql 明显存在更大的灵活性。
mysql 的字符集包括字符集( CHARACTER )和校对规则( COLLATION )两个概念。字符集是用来定义 mysql 存储字符串的方式,校对规则则是定义了比较字符串的方式。字符集和校对规则是一对多的关系 , MySQL 支持 30 多种字符集的 70 多种校对规则。

每个字符集至少对应一个校对规则。可以用 SHOW COLLATION LIKE ‘utf8%‘; 命令查看 相关字符集的校对规则。

来源:http://blogold.chinaunix.net/u/18630/showart_1148914.html

“Xdebug MUST be loaded as a Zend extension in Unknown on line 0 “的解决办法

解决方法:

找到 php.ini 中的并修改如下:

写道
;extension=php_xdebug-2.1.0-5.2-vc6.dll
zend_extension_ts=”d:/AppServ\php5\ext\php_xdebug-2.1.0-5.2-vc6.dll” //如果有其它提示,将”_ts”去掉就可以了

xdebug 必须使用 zend_extension_ts 或者 zend_extension 来标明它是zend的扩展

写道

另:根据 PHP 版本,zend_extension 指令可以是以下之一:

zend_extension (non ZTS, non debug build)
zend_extension_ts ( ZTS, non debug build)
zend_extension_debug (non ZTS, debug build)
zend_extension_debug_ts ( ZTS, debug build)

ZTS:ZEND Thread Safety

可通过phpinfo()查看ZTS是否启用,从而决定用zend_extension还是zend_extension_ts。

extension意为基于php引擎的扩展

zend_extension意为基于zend引擎的扩展

可伸缩性最佳实践:来自eBay的经验

摘自:http://www.infoq.com/cn/articles/ebay-scalability-best-practices

在eBay,可伸缩性是我们每天奋力抵抗的一大架构压力。我们所做的每一项架构及设计决策,身前身后都能看到它的踪影。当我们面对的是全世界数以亿计的用户,每天的页面浏览量超过10亿,系统中的数据量要用皮字节(1015或250)来计算——可伸缩性是生死交关的问题。

在一个可伸缩的架构中,资源的消耗应该随负载线性(或更佳)上升,负载可由用户流量、数据量等测量。如果说性能衡量的是每一工作单元所需的资源消 耗,可伸缩性则是衡量当工作单元的数量或尺寸增加时,资源消耗的变化情况。换句话说,可伸缩性是整个价格-性能曲线的形状,而不是曲线上某一点的取值。

可伸缩性有很多侧面——事务的方面、运营的方面、还有开发的方面。我们在改善一个Web系统的事务吞吐量的过程中学到了很多经验,本文总结了其中若 干关键的最佳实践。可能很多最佳实践你会觉得似曾相识,也可能有素未谋面的。这些都是开发和运营eBay网站的众人的集体经验结晶。

最佳实践 #1:按功能分割

相关的功能部分应该合在一起,不相关的功能部分应该分割开来——不管你把它叫做SOA、功能分解还是工程秘诀。而且,不相关的功能之间耦合程度越松散,就越能灵活地独立伸缩其中的一部分。 Continue reading

CentOS 5.5 防火墙开启、关闭以及开放指定端口

之前有讲过公司新买的服务器使用的是CentOS 5.5,部署好Tomcat之后却发现输入114.80.*.*:8080(即ip:8080)却无法显示Tomcat默认的首页。因为以前部署在Win Server的VPS,Linux开发时也只用到localhost,所以就有点头大。

好吧,G一下网上有说是防火墙的问题,敲入

/etc/init.d/iptables stop

关闭之后再次查看114.80.*.*:8080(即ip:8080)发现果然成功。但是貌似安全隐患大大增加……使用

/etc/init.d/iptables status

查看防火墙信息,可以看到打开的端口。那么我们把需要使用的端口打开应该是一个比较可行的办法了,命令如下:

/sbin/iptables -I INPUT -p tcp –dport 8080 -j ACCEPT #8080为指定端口

/etc/init.d/iptables restart #重启防火墙以便改动生效,当然如果不觉得麻烦也可重启系统(命令:reboot)

/etc/rc.d/init.d/iptables save #将更改进行保存

当然了,还有另外直接在/etc/sysconfig/iptables中增加一行:

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT

永久关闭防火墙

chkconfig –level 35 iptables off #此方法源自网络,未实验,安全考虑拒绝使用此方法

SQL 的 MASTER到MASTER的主主循环同步

注意在进行配置前,请确保相应的3306端口可以端口:http://blog.haohtml.com/archives/7726

刚刚抽空做了一下MYSQL 的主主同步。
把步骤写下来,至于会出现的什么问题,以后随时更新。这里我同步的数据库是TEST
1、环境描述。
主机:192.168.0.231(A)
主机:192.168.0.232(B)
MYSQL 版本为5.1.21
2、授权用户。
A:
mysql> grant replication slave,file on *.* to ‘repl1’@’192.168.0.232’ identified by ‘123456’;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
B:
mysql> grant replication slave,file on *.* to ‘repl2’@’192.168.0.231’ identified by ‘123456’;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
然后都停止MYSQL 服务器。 Continue reading

linux实现daemon程序

国外相关文档:(http://www.google.com.hk/search?hl=zh-CN&source=hp&biw=1440&bih=785&q=c+daemon&btnG=Google+%E6%90%9C%E7%B4%A2&aq=f&aqi=&aql=&oq=)

http://www.netzmafia.de/skripten/unix/linux-daemon-howto.html

http://www.systhread.net/texts/200508cdaemon2.php

编写Linux系统下Daemon程序的方法步骤

一、引言 Daemon程序是一直运行的服务端程序,又称为守护进程。

本文介绍了在Linux下编写Daemon程序的步骤,并给出了例子程序。

二、Daemon程序简介

Daemon是长时间运行的进程,通常在系统启动后就运行,在系统关闭时才结束。一般说Daemon程序在后台运行,是因为它没有控制终端,无法和前台的用户交互。Daemon程序一般都作为服务程序使用,等待客户端程序与它通信。我们也把运行的Daemon程序称作守护进程。

三、Daemon程序编写规则

编写Daemon程序有一些基本的规则,以避免不必要的麻烦。

1、首先是程序运行后调用fork,并让父进程退出。子进程获得一个新的进程ID,但继承了父进程的进程组ID。

2、调用setsid创建一个新的session,使自己成为新session和新进程组的leader,并使进程没有控制终端(tty)。

3、改变当前工作目录至根目录,以免影响可加载文件系统。或者也可以改变到某些特定的目录。 Continue reading

用c语言实现的daemon实例

守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。
守护进程的编程本身并不复杂,复杂的是各种版本的Unix的实现机制不尽相同,造成不同Unix环境下守护进程的编程规则并不一致。这需要读者注意,照搬某些书上的规则(特别是BSD4.3和低版本的System V)到Linux会出现错误的。下面将全面介绍Linux下守护进程的编程要点并给出详细实例。
一. 守护进程及其特性
守护进程最重要的特性是后台运行。在这一点上DOS下的常驻内存程序TSR与之相似。其次,守护进程必须与其运行前的环境隔离开来。这些环境包括未关闭的文件描述符,控制终端,会话和进程组,工作目录以及文件创建掩模等。这些环境通常是守护进程从执行它的父进程(特别是shell)中继承下来的。最后,守护进程的启动方式有其特殊之处。它可以在Linux系统启动时从启动脚本/etc/rc.d中启动,可以由作业规划进程crond启动,还可以由用户终端(通常是shell)执行。  Continue reading