ubuntu web server 常用命令

作者:小鱼的互联网观察 发布时间:January 11, 2013 分类:linux

 

对于ubuntu vps的管理维护都是通过ssh登录,然后敲命令。ubuntu也是最近刚开始学习使用,遇到问题就请教google,有用的资料记录到Tomboy中。慢慢累计了一些资料,和大家分享一下,希望对新人有所帮助。

注意:有些动作需要root 权限。如果当前登录非root,可以使用su root 然后输入root 用户密码,切换到root

apt-get update 更新源
sudo apt-get upgrade 更新已安装的包
apt-cache depends package 了解使用依赖
apt-cache rdepends package 是查看该包被哪些包依赖
apt-get build-dep package 安装相关的编译环境
apt-get source package 下载该包的源代码
apt-get clean && sudo apt-get autoclean 清理无用的包
apt-get check 检查是否有损坏的依赖
apt-cache search package 搜索包,例如 apt-cache search php5
apt-cache show package 获取包的相关信息,如说明、大小、版本等
apt-get install package 安装包
apt-get install package - - reinstall重新安装包
apt-get remove package 删除包
apt-get remove package - - purge 删除包,包括删除配置文件等

重启 ubuntu vps:

shutdown -r now 现在立即重启
shutdown -r +3 三分钟后重启
shutdown -r 20:23 在20:23时将重启计算机

启动apache2:
sudo /usr/sbin/apache2ctl start

停止apache2:
sudo /usr/sbin/apache2ctl stop

测试apache2:
sudo /usr/sbin/apache2ctl configtest

重启apache2:
sudo /usr/sbin/apache2ctl restart

sudo /etc/init.d/apache2 restart

停用网站:
sudo a2dissite mysite

启用:
sudo a2ensite mysite

启用rewrite
sudo a2enmod rewrite

mysql备份与恢复

备份数据库

mysqldump -uroot -p dbname > /path/dbname.sql

恢复数据库

mysql -uroot -p dbname < /path/dbname.sql

利用gzip备份数据库

mysqldump -uroot -p dbname | gzip > /path/dbname.sql.gz

利用gzip恢复数据库

gunzip < /path/dbname.sql.gz | mysql -uroot -p dbname

 

python 3.2 mysql模块'int' does not support the buffer interface问题的解决

作者:小鱼的互联网观察 发布时间:January 10, 2013 分类:技术

写了个python爬虫,网络方面性能很好,爬到的数据写入数据库中。

 

但是问题来了,写入了大概2w行之后报错。错误内容是:

 

'int' does not support the buffer interface 

问题出现在int的一个转换问题。解决办法如下:

修改Python32\site-packages\pymysql\connections.py 文件中的

unpack_int24
unpack_int32
unpack_int64

三个函数。修改成下面样子

def unpack_int24(n):
    try:
        return struct.unpack('B',n[0])[0] + (struct.unpack('B', n[1])[0] << 8) +\
            (struct.unpack('B',n[2])[0] << 16)
    except TypeError:
        return n[0]+(n[1]<<8)+(n[2]<<16)

def unpack_int32(n):
    try:
        return struct.unpack('B',n[0])[0] + (struct.unpack('B', n[1])[0] << 8) +\
            (struct.unpack('B',n[2])[0] << 16) + (struct.unpack('B', n[3])[0] << 24)
    except TypeError:
        return n[0]+(n[1]<<8)+(n[2]<<16)+(n[3]<<24)

def unpack_int64(n):
    try:
        return struct.unpack('B',n[0])[0] + (struct.unpack('B', n[1])[0]<<8) +\
        (struct.unpack('B',n[2])[0] << 16) + (struct.unpack('B',n[3])[0]<<24)+\
        (struct.unpack('B',n[4])[0] << 32) + (struct.unpack('B',n[5])[0]<<40)+\
        (struct.unpack('B',n[6])[0] << 48) + (struct.unpack('B',n[7])[0]<<56)
    except TypeError:
        return n[0]+(n[1]<<8)+(n[2]<<16)+(n[3]<<24) \
              +(n[4]<<32)+(n[5]<<40)+(n[6]<<48)+(n[7]<<56)

修改 完成后保存。好了,问题解决了。。

关于“LSM-Tree”

作者:小鱼的互联网观察 发布时间:January 8, 2013 分类:技术

在分布式海量存储系统中,算法也发挥着重要的作用,本章分享的是在nosql等海量存储中两个比较重要的算法:The Log-Structured Merge-Tree(简称LSM-tree)、Bloom filter。这两个算法在bigtable、leveldb、cassandra、hbase等存储系统中都有用到。

 

 

The Log-Structured Merge-Tree

 

 

LSM-Tree软件解决方案的基本原理都非常简单,就是在内存中对最近的更新操作进行缓存,当更新积累到一定程度,然后进行批量的merge dump,从而把随机写变成批量顺序更新。

对于LSM-Tree,

 

拿update举个例子:

比如有1000万行数据,现在希望update table.a set addr='new addr' where pk = '833',

如果使用B-Tree类似的结构操作,就需要:

1. 找到该条记录所在的page,

2. load page到内存(如果恰好该page已经在内存中,则省略该步)

3. 如果该page之前被修改过,则先flush page to disk

4. 修改数据

上面的动作平均来说有两次disk I/O,

如果采用LSM-Tree类似结构,则:

1. 将需要修改的数据直接写入内存

可见这里是没有disk I/O的。

当然,我们要说,这样的话读的时候就费劲了,需要merge disk上的数据和memory中的修改数据,这显然降低了读的性能。

确实如此,所以作者其中有个假设,就是写入远大于读取的时候,LSM是个很好的选择。我觉得更准确的描述应该是”优化了写,没有显著降低读“,因为大部分时候我们都是要求读最新的数据,而最新的数据很可能还在内存里面,即使不在内存里面,只要不是那些更新特别频繁的数据,其I/O次数也是有限的。

所以LSM-Tree比较适合的应用场景是:insert数据量大,读数据量和update数据量不高且读一般针对最新数据。

文章读下来有以下几点感受:

1. 基本思想早就有了,作者给出了较好的表现形式。

2. Merge是page/block级别的,而不是BigTable中的文件级别的。这一点主要原因可能是BigTable在分布式场景下做block级别很困那,而且GFS也不支持修改。

3. 其提出的比较标准比较有趣,将磁盘容量,转速等结合起来给出一个以美元为单位的cost标准,然后跟B-Tree结构的实现做了比较,结果当然是大大胜出。但是这里我觉得作者有些比较是不合理的,比如LSM使用log而B-Tree没有使用,这显然对B-Tree不公,其实B-Tree如果使用log,写入性能应该不比LSM差,顺序读取可能差一些。

4. 在Multi components 中,提出Ci/Ci+1的比例达到20的时候是最优的,这个数字意义不大,但是其中的分析方法对于Merge策略的选择是个启发。

 

android安卓搭建web服务器

作者:小鱼的互联网观察 发布时间:January 8, 2013 分类:linux

android是linux系。使用arm cpu理论上支持ubuntu for arm 。但是鉴于没有任何一个安装在安卓手机上的ubuntu案例和文章。

搜索发现android软件商城有个软件paw server  

此软件就是个简易的web server 支持php,支持html 。

并且他自己做了个web手机管理平台。可以发短信,可以删除软件等等。。非常强大。

paw server还处于开发阶段,当前是beta版本。并且据我测试,不能设置为80端口。居然81端口也不可以,知道是安卓系统做了限制还是和别的软件冲突。

 

 

 

paw server 中的php 是基于arm重新编译的版本。理论上支持sqlite,但是我测试了两个基于sqlitebb 的都无法安装。   

有兴趣的朋友可以去试一试paw。 

 

PAW Server-171533.png

 

 

 

 

 

 

 

 

关于“QQ电脑管家”这个流氓软件想到的。。。

作者:小鱼的互联网观察 发布时间:January 7, 2013 分类:互联网观察

很多朋友的电脑上都在安装QQ的时候被捆绑安装了“QQ电脑管家”这个软件。愤怒的想说一句,这个垃圾软件你能不那么消耗资源么!!!!

只要是装了这个软件的电脑,全部都变得速度特别慢。响应速度很慢,网页浏览速度很慢。

我想说,病毒都比“QQ电脑管家”你这个垃圾软件消耗资源要小!!!!

被捆绑安装。卸载的时候各种提示阻止卸载。。。。。流氓至极!

尤其是捆绑安装。QQ安装的时候默认就带“QQ电脑管家”这个软件。

 

甚至,甚至有一次我自己的电脑不知道怎么就被安装上了,可能是在更新QQ的时候不小心点击了设计然后被强制安装上了“QQ电脑管家”这个垃圾软件。气愤的是。。。居然在控制面板没有卸载项。在各种卸载软件里面也找不到卸载项。我了个去!!!!能再流氓点么!最后用了很多办法才删除掉!!!

 

“QQ电脑管家”你个垃圾软件,你别再拉电脑处理速度了好么。

 

建议大家用金山毒霸。一个金山毒霸足矣,如果不放心可以再安装个金山卫士。推荐使用金山的理由。

1.N年的杀毒技术积累,保证你的安全,360和腾讯还在吃奶的时候金山就出了杀毒软件了。

2.相比较360和腾讯。金山做的这个软件分量很足,对系统性能影响比较小。

3.金山也垃圾,经常弹出强制建议用户安装自己的猎豹浏览器的弹出框。

国内的软件啊。。。为什么那么多强制安装。。。因为用户傻,你给安装什么他就用什么。。。。

博客归来。

作者:小鱼的互联网观察 发布时间:January 6, 2013 分类:互联网观察

经历了域名被删除,空间被删除。

这次。重新拾起了这个博客。

期间遇到了typecho数据问题。

遇到了typecho的目录问题。

现在全部解决了。

互联网观察 

我会一直走下去!

 

  1. 页码:
网站地图 京ICP证030173号