还没人评论 | 2009/06/25 | Category: Linux | Tags: awk linux shell
近期发现服务器在运行一段时间后内存使用量剧增,导致网站打开慢,于是做了一个简单脚本来实现内存监控。
脚本每5分钟运行一次,如果低于指定空闲内存数即重启相关服务,并向日志文件写入当前时间以及当前空闲内存数。
以下脚本将在每次执行时判断空闲内存数如果低于500MB就重启httpd和mysqld服务,并写入日志。
#!/bin/bash
#设置最低空闲内存数
LEASTMEM=500000
#获取free命令结果中的空闲内存数
FREEMEM=`free | awk '/Mem/ {print $4}'`
#设置日志文件路径
LOG=/var/cron/watchmemlog/restart.log
#判断系统空闲内存数是否低于设置好的最低空闲内存数
if [ "$FREEMEM" -lt "$LEASTMEM" ]; then
service httpd restart
service mysqld restart
#写入日志文件
echo "restart service at `date` | free mem: ${FREEMEM}" >> $LOG
fi; |
还没人评论 | 2009/06/11 | Category: PHP | Tags: IP国家对照表 MySQL php
最近项目中要用到IP国家对照表,于是google到一个由webhosting推出的免费的IP国家数据库:The IP to Country Database,更新速度也很快,使用起来也很方便。最新版:点击下载
在PHP使用之前,首先要把csv导入到MySQL中,用以下语句创建MySQL表,用来存放数据:
CREATE TABLE IF NOT EXISTS `ipcountry` (
`ip_from` int(10) unsigned NOT NULL default '0',
`ip_to` int(10) unsigned NOT NULL default '0',
`country_code2` char(2) NOT NULL,
`country_code3` char(3) NOT NULL,
`country_name` varchar(50) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='IP国家对照表'; |
然后用以下语句导入csv文件数据,注意csv文件路径和表名,这里以junnan_org数据库为例:
有3人评论 | 2009/06/09 | Category: Linux | Tags: shell ubuntu
生命在于折腾,上个月把Mac OS X装上体验一把之后我最终还是又回到了ubuntu的怀抱,从05年意外收到官方邮寄的包裹起,断断续续试用至今,现在最新的9.04版终于和Windows7一起在我的电脑里安家了。当然ubuntu的缺陷还是有的,比如中文字体显示问题,虽然新版的字体已经有很大改善,但渲染效果的还是不够完美,每次安装ubuntu都要费一番周折来解决字体发虚问题,前段时间在ubuntu中文论坛逛,发现有人发布了一个自动安装脚本来安装微软雅黑字体并设置渲染,安装上之后发现效果不错,可是每次安装都要联网下载字体文件,不够方便,今天有时间自己修改了一下脚本,把字体和脚本都放到一起,做了个离线安装版。
下载地址:(26.8MB,解压密码:junnan.org)
Rayfile下载 / 纳米盘下载 / 我的skydrive下载
使用方法:
下载压缩包,解压后在终端运行压缩包里的get-fonts.sh脚本,然后注销重新登录就可以看到效果了。
sh get-fonts.sh
修改自:Ubuntu全自动安装微软雅黑字体
在改完脚本后还发现了个雅黑和Consolas的嫁接版,改天测试一下效果,上图先:

btw: 这是第一篇在linux下面写的日志。:)
有1人评论 | 2009/05/20 | Category: 日记薄 | Tags: Mac OS X 苹果
很早就想尝试Mac OS X系统,完美的画面表现和用户体验让我这Windows审美极度疲劳者向往不已,去论坛了解了下,虽然Mac OS X已经支持intel平台,但安装难度还是很大,莫名其妙的硬件问题令很多人望而却步。
前几天在赢政上看到有人发布了一个“Mac OS X leopard for VMware”安装包,下载体验之后勾起了我的安装欲,最后我的本儿的硬盘分区经过我10+次的写入和格式化操作,终于完美地运行了Mac OS X Leopard 10.5.6。
安装包我选择的是iDeneb_v1.4_10.5.6.iso,安装前要先搞清楚PC的主要配置:
HP dv6812tx
主板:Intel AGTL+
CPU: Intel Core 2 Duo T8300
内存: Samsung DDR2 SDRAM 2G + 1G
北桥: Intel Crestline-PM PM965
南桥: Intel 82801HBM ICH8-DO
显卡:NVIDIA GeForce 8400M GS
声卡:Realtek ALC268 @ Intel 82801HBM ICH8M – High Definition Audio Controller
网卡:Realtek RTL8101E Family PCI-E Fast Ethernet NIC (NDIS 6.20)
无线网卡:Intel(R) PRO/Wireless 3945ABG Network Connection
安装时,自定义选项要勾选的项目:
简体中文
附加字体
X11
ALC268
ICHx Fixed
JMicronATA
Fix: -修复驱动
-ACPI-Fix -高级配置和电源管理驱动组件
-AppleSMBIOS -内存频率组件
-AppleSMBIOS-27-667
-FireWire Remove -移除火线驱动
-ApplePS2Controller -ps2接口补丁
-PowerOff_Fix -关机或休眠补丁
Video: -显卡驱动
NVidia:
NVinject 0.2.1 256MB
NVdarwin 1.2.5 256MB
Applications: 勾选全部
安装时用到的工具:
Easybcd 2.0
硬盘安装助手leopard-hd-install-helper-v03
xp启动文件
论坛:
麦友网:http://www.memac.cn
啃苹果论坛:http://www.kenapple.com/
好了,该上图了。

还没人评论 | 2009/05/10 | Category: Linux, 技术 | Tags: bash linux php 免费手机短信 网站状态监控
公司服务器所在机房因为种种原因,偶尔会出现网站访问不了的情况,参考了张宴的《Linux服务器系统监控框架与MSN、E-mail、手机短信报警的实现》并结合飞信的免费短信接口为服务器做了个监控脚本,在监控端服务器(公司内部服务器)部署完之后,每隔5分钟检测一次网站是否能正常访问,如果有异常则通过飞信免费发送警报短信到指定手机或者MSN上。
首先需要有一个已开通飞信的手机号,并把接收警报短信的手机号加为飞信好友(也可以自己给自己发),然后申请一个专门用来发送警报消息的msn帐号,并加为自己的msn好友。
有4人评论 | 2009/05/05 | Category: 日记薄 | Tags: 乳山 五一 托托 银滩
第一次带托托回家玩就摆了一个大乌龙,没想到汔车会提前一个小时到站,手机又没电,让她白等了半个小时,下午全家一起逛了下“国家4A级旅游度假区”-银滩,哈哈,然后再逛逛商场、公园、唱唱K,快乐而短暂的两天半就这样结束了。

还没人评论 | 2009/04/24 | Category: Database, Linux, PHP, 技术 | Tags: centos Libevent Memcache php
和上次安装mssql扩展一样难缠的问题,折磨了我几个小时,最终还是再次证明了是64位CentOS的问题而不是我的RP问题。
系统版本是5.2,把安装memcached的方法记录下先:
cd ~/memcached
wget -c http://www.monkey.org/~provos/libevent-1.4.10-stable.tar.gz
wget -c http://memcached.googlecode.com/files/memcached-1.2.8.tar.gz
#安装libevent
tar -zxvf libevent-1.4.10-stable.tar.gz
cd libevent-1.4.10-stable
./configure
make
make install
#安装memcached
cd ..
tar -zxvf memcached-1.2.8.tar.gz
cd memcached-1.2.8
./configure
make
make install
#如果是64位系统,还需要把libevent的文件复制到/usr/lib64/下,用来解决error while loading shared libraries的问题
cp -R /usr/local/lib/libevent* /usr/lib64/ |
好了,开始安装php的扩展,恶梦开始了,本以为直接用yum来安装php-devel.x86_64和php-pecl-memcache.x86_64这两个扩展就可以了,可装了后 phpinfo()里根本找不到memcache扩展,把已经装的这两个扩展remove重来,还是不行,goooooooooooooogle,找到了一篇文章《PHP Pecl Memcached module installation problems》,有救喽,先remove掉php-pecl-memcache.x86_64,然后执行了
pecl install memcache
顺利安装上了,打开/etc/php.d/看了下,没有memcache.ini,好吧,手动到/etc/php.ini加上了 extension=memcache.so,好了,重启httpd,刷新 phpinfo() ,竟然还没有,我郁闷了。。