博客中毒了

Posted by 冰河 at 19:51 7 Responses » 22,277 Views
062012

今天无意中备份博客的时候发现从VPS上拷贝下来的程序被小红伞报毒。查杀结果如下:

Continue reading »

OpenVZ查看真实内存使用值

Posted by 冰河 at 15:22 1 Response » 15,108 Views
052012

转载一篇不错的文章

OpenVZ的内存模型和Xen或者一般的Linux Kernel不同,导致free命令看不到真实内存使用的值。
OpenVZ上free看到的是虚拟环境(Virtual Environment, VE)中所有程序向系统声明的可能要求内存的最大值,比如C程序:

  1. int *p = malloc(1024*1024*sizeof(int));

向系统声明需要4M内存,但内存实际上并不是在程序声明需要内存时就分配,而是在实际使用时分配,即上面的程序不会让linux内核立即分配内存。
但是OpenVZ提供的/proc/user_beancounters却可以反映出VE实际使用了多少内存,而且,可以反映出有多少是在母鸡的swap里面的,从一定程度上可以判断母鸡是否超售了。
/proc/user_beancounters里面的physpages对应的held值是VE实际使用的物理内存(以4k为单位),oomguarpages则是VE实际使用的物理内存+swap,两者相减,就是VE使用的swap。 Continue reading »

博客搬家到BuyVM VPS

Posted by 冰河 at 01:07 8 Responses » 24,847 Views
032012

折腾独立博客除了内容外就是域名、主机和程序了。

域名从icyhe.com换成了binghe.org;程序从emlog换成了wordpress;主机从免费主机到美国主机再到北京BGP多线机房,最终搬到了国外的VPS。VPS是前几天BuyVM放货的时候抢到的,没想着搬,本打算VPS当SSH&VPN主机用,博客继续使用北京BGP多线机房,毕竟速度快还不用备案而且空间9月才到期。但是2012.4.2发生了一件不愉快的事导致博客被停掉。本来以为是技术问题,后来咨询下发现对方态度很恶劣,坚持让我搬走。空间都用了2年了,既然人家话都说到那份上,我也没再辩驳。

之前在123Systems买的128MB内存VPS使用lnmp.org的一键安装包死活通不过,但是在BuyVM上却出奇的顺利。于是修改域名A记录,绑定域名,上传文件&恢复数据库,一气呵成。

现在博客已经能访问了,欢迎大家批评指正~~~

UPDATE1:貌似出现好几次502了。看来内存确实不够用。

UPDATE2:把修改php-cgi的进程数由默认的5改成了3,貌似内存剩余40MB,之前是负十几MB。修改方法:

vi /usr/local/php/etc/php-fpm.conf

<valuename=”max_children”>3</value>

UPDATE3:vsftpd安装有点问题,程序是装上了,但是service没配置好。可以使用yum install vsftpd覆盖安装解决。

128MB小内存VPS安装LNMP

Posted by 冰河 at 18:59 2 Responses » 45,072 Views
302012

买了个128MB内存的VPS,想装WordPress折腾下。软件当然首选LNMP,系统尝试了几次还是选Debian。话说高配置的机器还是推荐Centos,文档多,出了问题也好解决。但是像128MB内存的机器还是Debian省资源。

从lnmp.org下了一键安装包。可是尝试无数次都失败。最后看log发现是mysql安装失败。nginx和php都编译并安装,唯独mysql编译的时候out of memory了。于是想用一键安装包的脚本安装nginx和php等软件,mysql用apt-get安装。研究下了一键安装脚本,发现过于繁琐,虽然lnmp.org提供的一键安装包省事而且也能提高网站的访问体验,但是系统开销是很大的。

找来找去无意中看到了一个很神奇的脚本lowendbox的lowendscript。研究下了果断决定用这个脚本安装。

下面是LEB脚本包含的软件和对系统的修改
安装/替换的软件

dropbear to replace openssh. Invoked from xinetd.
inetutils-syslogd to replace rsyslog.
exim4 to replace sendmail (if installed). Re-configured to allow Internet delivery.
cron
nginx
mysql. Re-configured to remove innodb support, remove query cache and reduce key buffer size.
php with built-in FastCGI interface. Running only 1 child process and respawn after 5,000 requests.

对系统/软件的修改:

Removing some commonly bundled applications that should not be there in the first place for a minimal distro (apache2, sendmail, bind9, samba, nscd, etc).
MySQL root is given a new password (which can be found in ~root/.my.cnf)
Installing each WordPress site under /var/www/. It will create appropriate database, users and password for the site. Continue reading »

282012

安装OpenVPN需要主机支持tun,安装PPTP需要主机支持tun和ppp。

首先要检测你的VPS是否开启了TUN和PPP,联系你的服务器提供商,直接询问。如果没有开启,可以要求他们开启。

自行检测的方法:

检测TUN

cat /dev/net/tun

返回:

cat: /dev/net/tun: File descriptor in bad state 说明正常

检测是支持PPP模块

cat /dev/ppp

返回:

cat: /dev/ppp: No such device or address 说明正常 Continue reading »

262012

错误代码:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Traceback (most recent call last):
File “/usr/bin/yum”, line 29, in yummain.user_main(sys.argv[1:], exit_code=True)
File “/usr/share/yum-cli/yummain.py”, line 309, in user_main errcode = main(args)
File “/usr/share/yum-cli/yummain.py”, line 178, in main result, resultmsgs = base.doCommands()
File “/usr/share/yum-cli/cli.py”, line 345, in doCommands self._getTs(needTsRemove)
File “/usr/lib/python2.4/site-packages/yum/depsolve.py”, line 101, in _getTsself._getTsInfo(remove_only)
File “/usr/lib/python2.4/site-packages/yum/depsolve.py”, line 112, in _getTsInfopkgSack = self.pkgSack
File “/usr/lib/python2.4/site-packages/yum/__init__.py”, line 661, in pkgSack = property(fget=lambda self: self._getSacks(),
File “/usr/lib/python2.4/site-packages/yum/__init__.py”, line 501, in _getSacksself.repos.populateSack(which=repos)
File “/usr/lib/python2.4/site-packages/yum/repos.py”, line 232, in populateSackself.doSetup()
File “/usr/lib/python2.4/site-packages/yum/repos.py”, line 79, in doSetupself.ayum.plugins.run(‘postreposetup’)
File “/usr/lib/python2.4/site-packages/yum/plugins.py”, line 179, in runfunc(conduitcls(self, self.base, conf, **kwargs))
File “/usr/lib/yum-plugins/fastestmirror.py”, line 181, in postreposetup_hookall_urls = FastestMirror(all_urls).get_mirrorlist()
File “/usr/lib/yum-plugins/fastestmirror.py”, line 333, in get_mirrorlistself._poll_mirrors()
File “/usr/lib/yum-plugins/fastestmirror.py”, line 376, in _poll_mirrorspollThread.start()
File “/usr/lib/python2.4/threading.py”, line 416, in start_start_new_thread(self.__bootstrap, ())
thread.error: can’t start new thread

Continue reading »

222011

public class Test {

public  static  void  encode(byte[]  in,  byte[]  out,  int  password)
{
int  len  =  in.length;

int  seed  =  password  ^  0×3810860;
for  (int  i  =  0  ;  i  <  len;  ++i)  {
/**
*因为JVM中涉及byte、short、char类型的运算操作首先会把这些值转换成int类型,
* 然后对int类型的值进行运算,所以需要把运算结果强制转换成byte类型
*/
byte  a  =  (byte)(  (  in[i]  ^  seed  )  >>>  5  );//把异或后的值存放在a的低3位
byte  b  =  (byte)(  (  (  ((int)in[i])  <<  20 )  ^  seed  )  >>>  (20-3)  );//把异或后的值存放在b的高5位
a  &=  0×7;//0×7:0000 0111;将a中未存储有效数的位清零
b  &=  0xf8;//0xf8:1111 1000;将b中未存储有效数的位清零
out[i]  =  (byte)(a  |  b);
seed  =  ((seed  ^  out[i])  *  7321  +  out[i]);
}
}

public  static  void  decode(byte[]  in,  byte[]  out,  int  password)
{
int  len  =  in.length;

int  seed  =  password  ^  0×3810860;
for  (int  i  =  0  ;  i  <  len;  ++i)  {
//  fill  the  code  here
}
}
public  static  void  main(String  []  args)  throws  Exception
{
int  password  =  0x808d0625;
byte[]  buf1  =  {-36,  -108,  -73,  95,  56,  80,  -103,  -49,  59,  -52,  -30,  70,  -93,  88,  110,  -128,  88,  -42,  1,  114,  -117,  -67,  -84,  55,  24,  -107,  -97,  -51,  60,  -117,  113,  38,  110,  -103,  -70,  100,  54,  -126,  };
byte[]  buf2  =  new  byte[buf1.length];
decode(buf1,  buf2,  password);
System.out.println(new  String(buf2,  “GBK”));
}
} Continue reading »

博客再次长草

Posted by 冰河 at 16:20 4 Responses » 11,113 Views
262011

实习项目任务重,再加上各种找工作。

等工作定下来再维护吧。

JAVA中使用LDAP进行用户认证

Posted by 冰河 at 11:18 1 Response » 20,257 Views
302011

转篇文章自用

LDAP的英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。现在LDAP技术不仅发展得很快而且也是激动人心的。在企业范围内实现LDAP可以让运行在几乎所有计算机平台上的所有的应用程序从 LDAP目录中获取信息。LDAP目录中可以存储各种类型的数据:电子邮件地址、邮件路由信息、人力资源数据、公用密匙、联系人列表,等等。通过把 LDAP目录作为系统集成中的一个重要环节,可以简化员工在企业内部查询信息的步骤,甚至连主要的数据源都可以放在任何地方。
Continue reading »

042011

虽然Lingoes好久不更新了,但是最近其最新的版本却一直提示软件过期。下面是来自官方论坛的解决方法:

最近有部分用户出现”一直提示软件过期” 的问题, 解决的办法是点击过期提示对话框中的 “立即升级” 按钮, 完成后重启软件即可.如果还不行的话, 请从此处下载 system.inc 文件, 拷贝到灵格斯安装目录下覆盖原文件, 即可解决.

另外, 我们在近几日内就会推出正式版本, 彻底解决Beta版过期问题, 以方便大家使用, 请稍加耐心等候, 谢谢!

希望如作者所说,Lingoes能尽快推出更新版本!

UPDATE1:2011-08-26 灵格斯词霸2.7.6发布。

UPDATE2:Lingoes好像服务器经常连不上,查词查例句都不方便,换有道词典了。

© 2009 - 2024 冰河的博客