九王爷

九王爷的府邸


  • 首页

  • 分类

  • 归档

  • 标签

数据库的自动备份与数据库被破坏后的恢复( mysqlhotcopy )

发表于 2008-03-09 | 分类于 Other

当数据库服务器建立好以后,我们首先要做的不是考虑要在这个支持数据库的服务器运行哪些受MySQL提携的程序,而是当数据库遭到破坏后,怎样安然恢复到最后一次正常的状态,使得数据的损失达到最小。

  或者说,仅仅是数据库服务器的建立,只能说明它能做些什么,并不代表它能稳定的做些什么。灾难恢复的效率及全面性,也是系统的稳定性的一个准因素,尤其对于一个服务器系统。

  这一节,介绍数据库自动备份以及数据库被破坏后的恢复的方法。在这里,我们使用mysqlhotcopy,并且定义一段Shell脚本来实现数据库的自动备份,并且,让整个数据自动备份与数据恢复过程都基于Shell

建立数据库备份所需条件





[1] 建立自动备份脚本

  在这里,为了使数据库备份和恢复的符合我们的实际要求,用一段符合要求的Shell脚本来实现整个备份过程的自动化。

[root@sample ~]# vi mysql-backup.sh  ← 建立数据库自动备份脚本,如下:

#!/bin/bash

PATH=/usr/local/sbin:/usr/bin:/bin

# The Directory of Backup
BACKDIR=/backup/mysql

# The Password of MySQL
ROOTPASS=**  ← 将星号替换成MySQL的root密码

# Remake the Directory of Backup
rm -rf $BACKDIR
mkdir -p $BACKDIR

# Get the Name of Database
DBLIST=ls -p /var/lib/mysql | grep / | tr -d /

# Backup with Database
for dbname in $DBLIST
do
mysqlhotcopy $dbname -u root -p $ROOTPASS $BACKDIR | logger -t mysqlhotcopy
done



[2] 运行数据库自动备份脚本

[root@sample ~]# chmod 700 mysql-backup.sh  ← 改变脚本属性,让其只能让root用户执行

[root@sample ~]# ./mysql-backup.sh   ← 运行脚本

[root@sample ~]# ls -l /backup/mysql/   ← 确认一下是否备份成功

total 8
drwxr-x— 2 mysql mysql 4096 Sep 1 16:54 mysql   ← 已成功备份到/backup/mysql目录中


[3] 让数据库备份脚本每天自动运行

[root@sample ~]# crontab -e  ← 编辑自动运行规则(然后会出现编辑窗口,操作同vi)

00 03 * /root/mysql-backup.sh   ← 添加这一行到文件中,让数据库备份每天凌晨3点进行


测试自动备份正常运转与否(备份恢复的方法)





  这里,以通过实际操作的过程来介绍问题出现后的恢复方法。

[1] 当数据库被删除后的恢复方法

  首先建立一个测试用的数据库。

[root@sample ~]# mysql -u root -p   ← 用root登录到MySQL服务器
Enter password:  ← 输入MySQL的root用户密码

Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 8 to server version: 4.1.20

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.

mysql> create database test;  ← 建立一个测试用的数据库test
Query OK, 1 row affected (0.00 sec)

mysql> use test  ← 连接到这个数据库
Database changed

mysql> create table test(num int, name varchar(50));  ← 在数据库中建立一个表
Query OK, 0 rows affected (0.07 sec)

mysql> insert into test values(1,’Hello,BSD’);  ← 插入一个值到这个表(这里以“Hello,BSD”为例)
Query OK, 1 row affected (0.02 sec)

mysql> select * from test;  ← 查看数据库中的内容
+——+————-+
| num | name    |
+——+————-+
|1   | Hello,BSD |  ← 确认刚刚插入到表中的值的存在
+——+————-+
1 row in set (0.01 sec)

mysql> exit  ← 退出MySQL服务器
Bye



  然后,运行刚才建立的数据库备份脚本,备份刚刚建立的测试用的数据库。

[root@sample ~]# cd ← 回到脚本所在的root用户的根目录

[root@sample ~]# ./mysql-backup.sh  ← 运行脚本进行数据库备份



  接下来,我们再次登录到MySQL服务器中,删除刚刚建立的测试用的数据库test,以便于测试数据恢复能否成功。

[root@sample ~]# mysql -u root -p  ← 用root登录到MySQL服务器
Enter password:  ← 输入MySQL的root用户密码

Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 13 to server version: 4.1.20

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.

mysql> use test  ← 连接到测试用的test数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> drop table test;  ← 删除数据中的表
Query OK, 0 rows affected (0.04 sec)

mysql> drop database test;  ← 删除测试用数据库test
Query OK, 0 rows affected (0.01 sec)

mysql> show databases;
+————-+
| Database |
+————-+
| mysql   |  ← 确认测试用的test数据库已不存在、已被删除
+————-+
1 row in set (0.01 sec)

mysql> exit  ← 退出MySQL服务器
Bye



  以上,我们就等于模拟了数据库被破坏的过程。接下来,是数据库被“破坏”后,用备份进行恢复的方法。

[root@sample ~]# /bin/cp -Rf /backup/mysql/test/ /var/lib/mysql/  ← 复制备份的数据库test到相应目录

[root@sample ~]# chown -R mysql:mysql /var/lib/mysql/test/  ← 改变数据库test的归属为mysql

[root@sample ~]# chmod 700 /var/lib/mysql/test/  ← 改变数据库目录属性为700

[root@sample ~]# chmod 660 /var/lib/mysql/test/*  ← 改变数据库中数据的属性为660


  然后,再次登录到MySQL服务器上,看是否已经成功恢复了数据库。

[root@sample ~]# mysql -u root -p  ← 用root登录到MySQL服务器
Enter password:  ← 输入MySQL的root用户密码

Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 14 to server version: 4.1.20

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.

mysql> show databases;  ← 查看当前存在的数据库
+————-+
| Database |
+————-+
| mysql   |
| test    |  ← 确认刚刚被删除的test数据库已经成功被恢复回来!
+————+
2 rows in set (0.00 sec)

mysql> use test  ← 连接到test数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;  ← 查看test数据库中存在的表
+——————-+
| Tables_in_test |
+——————-+
| test      |
+——————-+
1 row in set (0.00 sec)

mysql> select * from test;  ← 查看数据库中的内容
+——+————–+
| num | name    |
+——+————–+
| 1   | Hello,BSD |  ← 确认数据表中的内容与删除前定义的“Hello,BSD”一样!
+——+————–+
1 row in set (0.01 sec)

mysql> exit  ← 退出MySQL服务器
Bye



  以上结果表示,数据库被删除后,用备份后的数据库成功的将数据恢复到了删除前的状态。

[2] 当数据库被修改后的恢复方法

  数据库被修改,可能存在着多方面的原因,被入侵、以及相应程序存在Bug等等,这里不作详细介绍。这里将只介绍在数据库被修改后,如果恢复到被修改前状态的方法。

  具体和上面所述的“数据库被删除后的恢复方法”相类似。这里,测试用数据库接着使用刚刚在前面用过的test。这里为了使刚刚接触数据库的朋友不至于理解混乱,我们再次登录到MySQL服务器上确认一下刚刚建立的测试用的数据库test的相关信息。

[root@sample ~]# mysql -u root -p  ← 用root登录到MySQL服务器
Enter password:  ← 输入MySQL的root用户密码

Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 14 to server version: 4.1.20

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.

mysql> show databases;  ← 查看当前存在的数据库
+————-+
| Database |
+————-+
| mysql   |
| test    |
+————+
2 rows in set (0.00 sec)

mysql> use test  ← 连接到test数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;  ← 查看test数据库中存在的表
+——————-+
| Tables_in_test |
+——————-+
| test      |
+——————-+
1 row in set (0.00 sec)

mysql> select * from test;  ← 查看数据库中的内容
+——+————–+
| num | name    |
+——+————–+
| 1   | Hello,BSD |
+——+————–+
1 row in set (0.01 sec)

mysql> exit  ← 退出MySQL服务器
Bye



  然后,我们再次运行数据库备份脚本,将当前状态的数据库,再做一次备份。

[root@sample ~]# cd  ← 回到脚本所在的root用户的根目录

[root@sample ~]# ./mysql-backup.sh  ← 运行脚本进行数据库备份


  接下来,我们再次登录到MySQL服务器中,对测试用的数据库test进行一些修改,以便于测试数据恢复能否成功。

[root@sample ~]# mysql -u root -p  ← 用root登录到MySQL服务器
Enter password:  ← 输入MySQL的root用户密码

Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 15 to server version: 4.1.20

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.

mysql> use test  ← 连接到test数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update test set name=’Shit,Windows’;  ← 然后将test中表的值重新定义为“Shit,Windows”(原来为“Hello,BSD”)
Query OK, 1 row affected (0.07 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from test;  ← 确认test中的表被定义的值
+——+——————–+
| num | name      |
+——+——————-+
| 1   | Shit,Windows |  ← 确认已经将原test数据库表中的值修改为新的值“Shit,Windows”
+——+——————-+
1 row in set (0.00 sec)

mysql> exit  ← 退出MySQL服务器
Bye



  以上,我们就等于模拟了数据库被篡改的过程。接下来,是数据库被“篡改”后,用备份进行恢复的方法。

[root@sample ~]# /bin/cp -Rf /backup/mysql/test/ /var/lib/mysql/  ← 复制备份的数据库test到相应目录


  然后,再次登录到MySQL服务器上,看数据库是否被恢复到了被“篡改”之前的状态。

[root@sample ~]# mysql -u root -p  ← 用root登录到MySQL服务器
Enter password: 
← 输入MySQL的root用户密码

Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 16 to server version: 4.1.20

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.

mysql> use test  ← 连接到test数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from test;  ← 查看数据库中的内容
+——+—————-+
| num | name    |
+——+—————-+
| 1  | Hello,BSD  | ← 确认数据表中的内容与被修改前定义的“Hello,BSD”一样!
+——+—————-+
1 row in set (0.01 sec)

mysql> exit  ← 退出MySQL服务器
Bye



  以上结果表示,数据库被修改后,用备份后的数据库成功的将数据恢复到了被“篡改”前的状态。

测试后…





  测试完成后,将测试用过的遗留信息删除。

[root@sample ~]# mysql -u root -p  ← 用root登录到MySQL服务器
Enter password:  ← 输入MySQL的root用户密码

Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 19 to server version: 4.1.20

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.

mysql> use test  ← 连接到test数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> drop table test;  ← 删除test数据库中的表
Query OK, 0 rows affected (0.01 sec)

mysql> drop database test;  ← 删除测试用数据库test
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;  ← 查看当前存在的数据库
+————-+
| Database |
+————-+
| mysql   |  ← 确认测试用数据库test不存在、已被删除
+————-+
1 row in set (0.00 sec)

mysql> exit  ← 退出MySQL服务器
Bye



——–
  以上介绍了用我们自己建立的一段Shell脚本,通过mysqlhotcopy来备份数据库的方法。

  对于许多个人爱好者来说,组建服务器可能不是很考虑数据被破坏以及数据被破坏后的恢复工作。但不能不说,对于服务器来说,数据破坏后的恢复效率也是区 别业余和专业的因素之一。所以笔者建议,在您配置好了Web服务器以及MySQL服务器等等的时候,千万不要急于应用它,而要想办法在有限的(硬件、软 件)条件下使它“坚不可摧”之后,再考虑应用的问题。

  而且,以上介绍的方法中提到的数据库自动备份脚本虽然被设置为每天定时运行,但当您运行某些与MySQL相关联的程序(论坛、社区等等)时,做一些可 能危及数据安全的操作的时候,运行数据库备份脚本即时备份当前状态数据库,也是非常有帮助的,至少可以在出现问题后保证数据库方面的可恢复性。

多功能Mysql数据库自动备份shell脚本

发表于 2008-03-09 | 分类于 Other

`#!/bin/bash

#Setting

#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式

#默认情况下备份方式是mysqldump+gzip,还可以是tar,mysqldotcopy

#默认情况下,用root(空)登录mysql数据库,备份至/root/数据库名xxxxx.gz
DBName=mysql
DBUser=root
DBPasswd=
BackupPath=/root/
LogFile=/root/mysqlbak.log
DBPath=/var/lib/mysql/
BackupMethod=mysqldump

#BackupMethod=mysqlhotcopy

#BackupMethod=tar

#Setting End

NewFile=”$BackupPath$DBName”$(date +%y%m%d).gz
DumpFile=”$BackupPath$DBName”$(date +%y%m%d)
OldFile=”$BackupPath$DBName”$(date +%y%m%d –date=’5 days ago’).gz

echo “——————————————-“ >> $LogFile
echo $(date +”%y-%m-%d %H:%M:%S”) >> $LogFile
echo “————————–” >> $LogFile

#Delete Old File
if [ -f $OldFile ]
then
rm -f $OldFile >> $LogFile 2>&1
echo “[$OldFile]Delete Old File Success!” >> $LogFile
else
echo “[$OldFile]No Old Backup File!” >> $LogFile
fi

if [ -f $NewFile ]
then
echo “[$NewFile]The Backup File is exists,Can’t Backup!” >> $LogFile
else
case $BackupMethod in
mysqldump)
if [ -z $DBPasswd ]
then
/usr/local/mysql/bin/mysqldump -u $DBUser –opt $DBName | gzip > $NewFile
else
/usr/local/mysql/bin/mysqldump -u $DBUser -p$DBPasswd –opt $DBName | gzip > $NewFile
fi
echo “[$NewFile]Backup Success!” >> $LogFile
;;
mysqlhotcopy)
rm -rf $DumpFile
mkdir $DumpFile
if [ -z $DBPasswd ]
then
/usr/local/mysql/bin/mysqlhotcopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1
else
/usr/local/mysql/bin/mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1
fi
tar czvf $NewFile $DumpFile >> $LogFile 2>&1
echo “[$NewFile]Backup Success!” >> $LogFile
rm -rf $DumpFile
;;
*)
/etc/init.d/mysqld stop >/dev/null 2>&1
tar czvf $NewFile $DBPath$DBName >> $LogFile 2>&1
/etc/init.d/mysqld start >/dev/null 2>&1
echo “[$NewFile]Backup Success!” >> $LogFile
;;
esac
fi

echo “——————————————-“ >> $LogFile`

ispconfig Translation HowTo

发表于 2008-03-08 | 分类于 Other

Hi all ..

I translated ispconfig to czech language .. and here is small guide how you can translate ispconfig to your language too .. sorry for my english ..

I hope it somebody helps ..

I wanted use utf-8 but it was not work properly .. so I used my national charset encoding .. I translated to czech language so I used cz as my lang and iso-8859-2 charset encoding.

1. copy english language files

you can use this to locate .lng and .hlp english files:

Code:

locate en.lng

if you want translate help files too ..

Code:

locate *.hlp |grep en

You can copy /root/ispconfig/isp/standard_index.html_en too if you want have localize standard index

copy these files to new one .. in my case I copied its to cz.lng, cz*.hlp and standard_index.html_cz

2. change setting in config.inc.php
edit /home/admispconfig/ispconfig/lib/config.inc.php from

Code:

$go_info[“server”][“lang”] = “en”; $go_info[“theme”][“charset”] = “iso-8859-1”;

to your language setting .. in my case to

Code:

$go_info[“server”][“lang”] = “cz”; $go_info[“theme”][“charset”] = “iso-8859-2”;

3. first testing if everything is ok ..
reload your ispconfig .. if you don’t see any changes all is ok

4. Now translate text in new created files to your language ..
remember that you have to use right charset encoding .. same as you will use on ispconfig pages. It will be a lot of work .. you will translate a lot of sentenses more than once .. so be patient .. sometimes check your work by reloading ispconfig .. it should be partialy translated ..

Done? Now you have to change charset encoding in some files.

5. changing and adding meta tags

For properly working encoding you have to change or insert meta tags to some files .. here is list of its ..

change from

Code:

to (change to your needs)

Code:

or simply insert new line with (change to your needs)

Code:

in

/home/admispconfig/ispconfig/web/index.html (you can change title to your needs too ..)

menu files (put meta tag after tag):
/home/admispconfig/ispconfig/web/admin/inhalt_tree.php
/home/admispconfig/ispconfig/web/help/inhalt_tree.php
/home/admispconfig/ispconfig/web/isp_dns/inhalt_tree.php
/home/admispconfig/ispconfig/web/isp_fakt/inhalt_tree.php
/home/admispconfig/ispconfig/web/isp_file/inhalt_tree.php
/home/admispconfig/ispconfig/web/isp_kunde/inhalt_tree.php
/home/admispconfig/ispconfig/web/isp_manager/inhalt_tree.php
/home/admispconfig/ispconfig/web/multidoc/inhalt_tree.php
/home/admispconfig/ispconfig/web/tools/inhalt_tree.php

“loading folders” files (put meta tag after tag):
– in these files change english text to your language too if you don’t like “loading folders”

/home/admispconfig/ispconfig/web/admin/vorladen.php
/home/admispconfig/ispconfig/web/help/vorladen.php
/home/admispconfig/ispconfig/web/isp_dns/vorladen.php
/home/admispconfig/ispconfig/web/isp_fakt/vorladen.php
/home/admispconfig/ispconfig/web/isp_file/vorladen.php
/home/admispconfig/ispconfig/web/isp_kunde/vorladen.php
/home/admispconfig/ispconfig/web/isp_manager/vorladen.php
/home/admispconfig/ispconfig/web/multidoc/vorladen.php
/home/admispconfig/ispconfig/web/tools/options/vorladen.php
/home/admispconfig/ispconfig/web/tools/vorladen.php

6. Translating of error pages

Go to /root/ispconfig/isp/ and copy error_en to error_XX (in my case error_cz) and edit *.html files in created directory.

And it is all .. that was quite easy .. wasn’t that?

Little suggestion for Falco and Till .. if it is possible it would be nice to have meta tags in files listed here with charset encoding variable from config.inc.php file .. translation will be more easy ..

SupuS

ispconfig2.2.21 BUG

发表于 2008-03-08 | 分类于 Other

使用范围:此BUG只在不支持apache reload的机器上出现。

症状:创建新站点后不能自动读取新的配置,以致每次都要手动重启才能是新站点生效

原因分析:通过log及创建站点过程分析是由于创建站点后ispconfig使用reload命令来重新读取配置,但有的apache不支持此命令

解决方法: vim /root/ispconfig/scripts/lib/config.lib.php 下查找

$mod->system->daemon_init($dist_httpd_daemon, “reload“);

将其中的reload更换成graceful

ok,测试通过

大家都来抵制QQ

发表于 2008-03-08 | 分类于 Other
      99年的时候认识了QQ,那时候还叫OICQ,因该是国内即时通讯的先驱。那时候QQ是一种身份的象征是作为新时代青年所必不可少的一种工具。然而近10年过去了,现在的QQ的通讯方面的功能与99年的时候没有多大的区别。但体积增加了数十倍。目前的QQ程序,官方打包发行版本为24.05MB,解压缩后,我这边显示是70多M。虽然现在大家的硬盘都大了,也不在乎这几十M的区别。但心里总是不舒服,因为这多出来的几十M应该说都跟通讯没有任何关系。全是一些垃圾占用了。就好像你去超市买东西,只买一卷卫生纸,结果不单卖,必须搭送一车广告单。而且这些垃圾还不准你丢掉或做其他用途,只能拿回家。你能觉得舒服吗?

  毫无疑问腾讯是成功的,从一个贴牌汉化小作坊(前期功能界面都是模仿的ICQ,连名字都是克隆的)发展到了如今中国IT业中的大哥大。但这种强暴式的发展还有多少人能够忍受?至少我已经出奇的愤怒了。我的电脑虽然配置得早,但配置还应该说是过得去的。但现在只要一运行QQ就慢得像蜗牛,特别是启动的时候,弹出QQ宠物以及留言的时候,电脑进入假死状态,需要近1分钟才能正常。而只要开了QQ,再打开WORD文档,并开10几个网页窗口的时候就比较考验电脑性能了。QQ最小化的时候还好说,但只要有人说话,点开聊天窗口的时候又是近假死状态。而同样的,只是把QQ关掉,同时打开MSN+GTALK+SKYPE等三种常用通讯软件并打开视频,电脑一点问题都没哟,非常流畅的运行。我就有点搞不明白了,QQ是个通讯工具,腾讯搞那么多没用的东西在上面干什么?

我不是国家暴力机关,也不是重量级人物,没有能力去改变腾讯,我只能改变我自己。我已经基本抛弃QQ,因为我不喜欢被强暴的感觉,同时,我的电脑也禁不起强暴。我现在用三种通讯工具GTALK,MSN,和SKYPE。MSN和SKYPE主要是工作上使用,不是不想统一成一个,而是因为国内的很多工作上的联系都只能通过MSN来进行,因为大家都用MSN,而同样的SKYPE在国外使用得很广泛,国外的朋友联系一般都只能通过SKYPE来进行。而我个人比较推荐使用GTALK,因为GTALK体积小(只有1.8M),能够使用语音和文字,并能够传送文件,已经满足的作为一个通讯工具的大部分要素。如果再加上视频和拨打固定电话就完美了(SKYPE就是这样的一个软件)。我喜欢GTALK还有一个比较重要的原因是GTALK的所有聊天记录都能保存在GMAIL里面,不论是在办公室还是在家里都不会因为电脑不同而丢失记录。另外GTALK还能在GMAIL里直接聊天,也能在网页上聊,连软件都不用装,真的很方便。最后还有一个原因是我比较喜欢GOOGLE这个公司。 了解了SKYPE的完美,MSN的通用,以及GTALK的简洁以后相信大家都能找到一个适合自己的聊天工具,来吧,大家来抵制QQ

Simon于深夜胡言乱语

投票等特殊贴里添加评分功能

发表于 2008-03-07 | 分类于 Other

`1.viewthread_special.inc.php
查找

阅读全文 »

更改出售帖子时不用点其他信息

发表于 2008-03-07 | 分类于 Site

查找post_newthread.htm中以下代码:









前面,就OK了

QEMU最新WIN版本

发表于 2008-03-04 | 分类于 SoftWare

从http://www.h7.dion.ne.jp/~qemu-win/下载的,这个网站好像已经不更新了,所以把文件下载到这里来存档qemu-0.9.1-windows

QEMU已经出了新的版本,同样将其附在下面,这个2008年是8月10日版本的,qemu-20080810-windows_small 这里下载的去除了除IBM兼容32位和64位兼容以外的机器支持(主要是为了瘦身,经过瘦身的包治有1.9M,很苗条吧。需要原版在http://www1.interq.or.jp/t-takeda/top.html 自己下载

另外:现在的kqemu安装和使用也太简单了点,只需要两步

  • 下载kqemu(这里有个Simon极度精简的版本,只有36K,应该能用,附在这里(kqemu)大家可以试试)
  • 解压后右键点击“kqemu.inf” 安装,然后启动: net start kqemu

虚拟网卡的程序(tap-win32)我也提取出来并做了个包,几十K,放在这里,方便下载
OK

chm不能查看的解决办法

发表于 2008-03-03 | 分类于 Site

最近下载了一些.chm的书籍都不能阅读,在网上找了一下,应该是由于chm锁定。在文件上点鼠标右键,解除锁定就好了

chm.jpg

用gtlk聊qq和MSN

发表于 2008-03-03 | 分类于 Uncategorized

今天在网上看到好像可以用gtalk聊qq和msn,老早就厌倦了qq的庞大和缓慢,喜欢gtalk的简洁兴奋中。下载来试一下

  1. 下载psi
    [http://downloads.sourceforge.net/psi/psi-0.11-win-setup.exe](http://downloads.sourceforge.net/psi/psi-0.11-win-setup.exe)
    
阅读全文 »
1…181920…27
九王爷

九王爷

这里是外宅,备份用的

269 日志
19 分类
41 标签
© 2017 九王爷
由 Hexo 强力驱动
主题 - NexT.Pisces