Archive for July, 2009

[Shell编程] 字符编码转换的脚本

2009.7 8

程序中遇到汉字真是麻烦,弄的程序原本是gbk或者是gb2312的。现在服务器上都是utf-8,汉字全是乱码。只好写个shell,来自动转换。

#!/bin/bash
for i in $(find $1)
do
        file $i |grep text 1>/dev/null 2>&1

        if [ $? -eq 0 ] ;then
        echo $i
        basename=$(basename $i)
        echo basename = $basename
        path=${i%$basename}
        echo path=$path
        iconv -f gb2312 -t utf-8 $i >$path/${basename}.utf
        cat $path/${basename}.utf>$i
        fi
done

有两个难点,就是在判断是不是文本文件还有原来的编码的问题。先写成这样,以后再改!

[建站日志] 新网站

2009.7 6

忙活了几天,也没个成果。

前段时间,在做一个图片的网站。做的太简单了,简直不堪入目。mm.sunliguo.com
还有个bbs,这两个程序都是参考或者修改别人的。都是用shell脚本写的,很麻烦。比起php,可麻烦了。
看着别人做网站都赚了钱,自己也不能闲着。反正闲着也是闲着。
先说技术问题,看来是只有再学习php了。我记得很早就接触了,就是没有系统的学习过。因为自己没有坚持下来。好在php好学,学过的也没怎么忘记。再就是数据库,大二时候学过的Oracle,基本是废弃了!
linux服务器的东东,我可一直没有落下。所说以前在上面做过的服务,都有些生疏,但是毕竟自己亲手做过,问题不大。Apache的配置不复杂,日志和虚拟主机是重点。
现在的访问量还不大,今天40多个ip访问(窃喜中^_^)。大多是首页,我在百度贴吧或者百度知道上留下的地址。看来推广网站有成效了。apache的日志每天都保存在一个文件中,现在还没有来得及分析。改天再学习下那个分析软件,用perl写的。应该不复杂。
最后,数据安全是最重要的。虽说自己写的这些东东对别人不重要,但是都是自己的心血,以后能看到也是一种幸事!不管怎样做好备份工作。小的文件可以发到自己的邮箱中。大的文件异地备份。再就是备份时候加密。现在网络越来越不安全了。改天写个备份方案。
linux服务器本身的漏洞也不能小觑。日志得时刻关注。
再就是以后的网站规划,做个phpwind或者Discuz! 还有个文件管理的东东,应该像的网盘一样的东东。可以修改一下 navphp ,这个对中文可是一点都不支持。
先这样了,啥时候弄好了这些。我也该退休了!
2009-07-07:
今天把phpwind安装上了,配置还算比较简单。若把它当成个图片网站,就是在添加图片的时候比较麻烦。应该去修改一下flyphp这套程序。
flyphp好久没有更新了。在linux安装总是不成功,没有找到原因。现在Windows下用xampp安装上再把数据库导入linux下看看。

[Linux] Linux同步时间

2009.7 5

Linux服务器的时间不是太准,就同步下时间:
0 0 * * * /usr/sbin/ntpdate time.nist.gov&& /usr/sbin/hwclock -w
太简单了,只用两个命令就搞定了。!^_^

或者是 ntpdate -u pool.ntp.org 上面的服务器好像是不管用了。
ps:
我好不容易写的那么多代码,现在服务器等不上去了。我好后悔没有备份啊!:( ,肠子都要悔青了!

 

linux修改系统时间

一:更新系统时间的方式

1、手动修改

1、date工具

作用:显示和设置系统时间

-d  <字符串> 显示字符串所指的日期与时间,比如:"-1 day" 表示当前日期的前一天,必须要加双引号
​
-s  <字符串> 设置当前的时间和日期 #年月日使用(-)分隔,时分秒使用(:)分隔

全部修改:

date -s "YYYY-YY-DD HH:mm:ss"

使用date修改的时间是临时生效的

2、hwclock工具
-s, --hctosys   # 以硬件时钟为准,校正系统时钟
​
-w, --systohc   # 以系统时钟为准,校正硬件时钟

2、自动更新

[AMP] htmlentities函数导致中文乱码

2009.7 3

再用 PHP Navigator 的时候,发现不能正常浏览中文字符。

它的代码很简单,因为我也能看懂了。最后定位到filestatus这个函数,它用来显示文件的一些属性。然后再找到显示文件名的地方,其实是个变量$filename:

$filename=wordwrap(htmlentities($file,ENT_QUOTES), 15, "
n",1);

然后再查阅php的手册,发现问题在htmlentities这个php函数上。它的第三个参数用来指定编码。因为默认的是ISO-8859-1 ,所以我修改成utf-8。
但是显示还是不太正常,一些字符还是乱码。这总比全是乱码好吧。
php还有个函数跟这个差不多htmlspecialchars,它只转换几个特殊的字符。
PHP Navigator 还有创建目录,修改文件名等地方还不支持汉字,我要修改一下。然后提交给他们,我也为开源项目做贡献了。等我修改完成了,我的php水平一定大涨!
2009-07-06:
哈哈,今天到PHP Navigator的网站上看了一下我的留言,他们居然回复了。由于E文水平低,不知道他们看懂了没有。
navphp

[Shell编程] shell 参数替换

2009.7 2

今天在分析一个shell脚本的时候遇到了一个变量 ${2:15}。经我查阅shell经典参考书ABS后,得到如下解释:

${var:pos} 变量从位置pos开始扩展。
说得很抽象,我就自己弄了个例子:

[root@localhost ~]# a=12345
[root@localhost ~]# echo ${a:2}
345
[root@localhost ~]# echo ${a:3}
45

结果一目了然,就是取某个变量开始多少个位置后的东西。
顺便再学习几个知识点:
mv $filename ${filename%$1}$2
从一个改变文件扩展名的脚本中摘取的 $1 是更改前的扩展名,$2 是更改后的扩展名。${filename%$1}的一个是从$1的右边开始,去掉$1。也就是去了扩展名。

[工作] 与高考同行(一)

2009.7 2

7月2号,进入了高考提前批的录取工作。
由于我公司在山东招办有两套设备,为了使高考录取工作顺利进行,我将在招生办陪伴我们的设备50多天。
我看了一下高考录取的时间安排,各批次之间会有几天休息的时间。其余时间都会7X24小时呆在这里。
今天中午吃的还不错,肚子里又添了几样菜:济南过年乱炖、毛血旺、拔丝马蹄等。看来跟着共产党走是没有错的!我现在也开始信仰马克思主义了!
晚上肚子又多了一样菜:酱骨头,这让我想起了在济宁大骨头火锅吃的那顿饭。也是啃骨头。这顿饭4个人,才100元。
2009-07-03:
中午:光棍鸡
晚上:风味鱼丸 酱肉包子
2009-07-05:
大蒜烧鳝鱼 汇菜