Monthly Archive for July, 2008

Page 2 of 3

fakeroot与sudo

fakeroot不能获得root的权限,sudo可以。

fakeroot只是伪装成root,它不能改变需要root权限才能改变的文件,它只是让程序执行时按照有root权限的情况来运行,而对文件的操作实际上是在普通用户下进行的。

1
2
fakeroot tar cvf /tmp/local.tar /usr/local
sudo tar cvf /tmp/local.tar /usr/local

上面两条命令都会在/tmp下建立local.tar,tar内的文件名都会以/开头,但前一条命令生成的文件属于当前用户,后一条命令生成的文件是root的。

Linux的硬盘分区标记方式

Linux系统的分区方式和Windows截然不同,很多初学者觉得很难。其实 Linux分区方式是十分简单科学的。这 里以传统的IDE硬盘为例,如果你使用过fdisk, diskgen等分区工具的话就会知道,一块硬盘最多只能划4个主分区(为什么?不知道),所以为保证硬盘分区的最大可用性和方便管理,一般划分区都是只 划一个主分区(比如,Windows一般认作C盘);然后利用剩下的所有空间建立一个扩展分区(扩展分区在Windows下不被分配盘符,也就是它不会是 C,D,E……盘中的任何一个,便于理解你把它当作一个里面装着C,D,E……各个分区的一个大口袋好了);在这个扩展分区下面建立若干个逻辑分区(这些 逻辑分区才是你的Windows底下的D,E,F盘等等)。如果你有好几块硬盘,Windows会按着英文字母顺序往下排,而不会去考虑第一硬盘和第二硬 盘、主分区和逻辑分区的区别。这就是Windows下的硬盘分区方式。那有人会问:能不能在一块硬盘上划两个以上主分区呢?当然可以,可是我还没见过这么 干的——费时费力还不好管理,我相信绝大多数普通用户没有任何理由这样做。

好 了,在Linux底下则完全不是这样的。Linux把第一块硬盘认作hda,第二块认作 hdb,第三块hdc,以此类推。(SCSI硬盘被认作 sda,sdb,等等)硬盘的各个分区用数字来表示,比如hda1就是你的第一块硬盘上的第一个分区。但请注意,数字1-4专门留给主分区和扩展分区,逻 辑分区是从数字5开始的,主分区和逻辑部分如果不满4个则留空。也就是说,假设你只有一块硬盘,上面分了一个主分区,一个扩展分区,扩展分区上建立了3个 逻辑分区,那在Linux下被标记为hda1(主分区,即windows下的C),hda2(扩展分区,windows下无标记),hda5(逻辑分区, 即windows下的D),hda6(逻辑分区,windows下的E),hda7(逻辑分区,windows下的F),呵呵……容易吧?想一想,你的 Windows底下的J盘在Linux下应该被标记为什么?

但请注意,上面说的Linux与Windows分区的对应 关系只是就一般而言的。有很多特例。比如,Windows认不出 Unix/Linux的文件格式,如果你把E盘格式化成Linux的ext3文件格式那windows就认不出来了,这时候就需要对这种对应关系作一下相 应的调整。另外,虽然在 Linux下为扩展分区单独添加了标识,但很难说这种标识有什么实际应用意义,或许,它也仅仅就是一种标记而已。

关于getty

getty(get teletypewriter)

功能说明:设置终端机模式,连线速率和管制线路。
语  法:getty [-h][-d<组态配置文件>;][-r<延迟秒数>;][-t<超时秒数>;][-w<等待字符串 >;][终端机编号][连线速率<终端机类型>;<管制线路>;] 或 getty [-c<定义配置文件>;]
补充说明:getty指令是UNIX之类操作系统启动时所必须的3个步骤之一。

参  数:
-c <定义配置文件>; 指定定义配置文件,预设为/etc/gettydefs。
-d <组态配置文件>; 指定组态配置文件,预设为/etc/conf.getty。
-h  当传输速率为0时就强制断线。
-r <延迟秒数>; 设置延迟时间。
-t <超时秒数>; 设置等待登入的时间。
-w <等待字符串>; 设置等待回应的字符串。

Kernel Daemons

If you issue the ps aux command, you will see something like the following:

1
2
3
4
5
6
7
8
9
10
11
12
USER       PID %CPU %MEM  SIZE   RSS TTY STAT START   TIME COMMAND
root         1  0.1  8.0  1284   536   ? S    07:37   0:04 init [2]
root         2  0.0  0.0     0     0   ? SW   07:37   0:00 (kflushd)
root         3  0.0  0.0     0     0   ? SW   07:37   0:00 (kupdate)
root         4  0.0  0.0     0     0   ? SW   07:37   0:00 (kpiod)
root         5  0.0  0.0     0     0   ? SW   07:37   0:00 (kswapd)
root        52  0.0 10.7  1552   716   ? S    07:38   0:01 syslogd -m 0
root        54  0.0  7.1  1276   480   ? S    07:38   0:00 klogd
root        56  0.3 17.3  2232  1156   1 S    07:38   0:13 -bash
root        57  0.0  7.1  1272   480   2 S    07:38   0:01 /sbin/agetty 38400 tt
root        64  0.1  7.2  1272   484  S1 S    08:16   0:01 /sbin/agetty -L ttyS1
root        70  0.0 10.6  1472   708   1 R   Sep 11   0:01 ps aux

This is a list of the processes running on the system. The information comes from the /proc filesystem that I mentioned in the codevious section. Note that init is process number one. Processes 2, 3, 4 and 5 are kflushd, kupdate, kpiod and kswapd. There is something strange here though: notice that in both the virtual storage size (SIZE) and the Real Storage Size (RSS) columns, these processes have zeroes. How can a process use no memory?

Continue reading ‘Kernel Daemons’

MySQL 效能監控工具

管理 MySQL 最讓人困擾的就是如何有效的掌握 MySQL 的健康狀況,因為 MySQL 雖然有提供許多系統變數值供您參考,但這些零散的數據若要手動搜集與過濾將會是一件十分沒有效率的事情(除非您寫 Scripts 去分析)。而接下來要介紹的這套 “工具” 其實是由 hackmysql.com 的站長所撰寫的 Perl Scritps,旨在協助 MySQL DBA 搜集與分析 MySQL 的運作狀況。

用CPAN安装perl module

  1. 首先配置CPAN Module,方法是在bash下面运行
    1
    $ perl -MCPAN -eshell

    配置过程会询问一些问题,其中CPAN的镜像可以选择http://cpan.linuxforum.net/

  2. 接下来要更新CPAN Module,而不是直接装LWP。否则会遇到undefined subroutine &Digest::base::new之类的错误。方法是运行
    1
    cpan> install Bundle::CPAN

    这一步是关键,切记切记。我开始不知道,还在网上搜索这个错误信息,发现有人说是Perl的问题,我就把整个Cygwin更新到1.5.19.4,结果啥用也没有,还把其它东西弄得一塌糊涂。

  3. 装好新的CPAN Module,先退出,然后再运行1里面的命令进入CPAN的shell,这时就可以装LWP了
    1
    cpan> install Bundle::LWP

    安装Bundle::LWP意味着不仅安装LWP,而且安装它需要的其它module。

关于/etc/inputrc的说明

Inputrc 用来处理键盘映射表。这个文件在启动的时候被bash(或其他shell)使用的库readline调用。

阅读info bash — 小节: Readline Init file 和info readline可以获得更多信息。这个rc文件可以作很多事情。

接下来的是一个基本的/etc/inputrc,其中有对各个配置参数的解释。

请注意这些注释不能和inputrc中的命令处作在同一行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# /etc/inputrc 的开始

# 确认我们不会在同一行中输出所有的东西。
set horizontal-scroll-mode Off

# 开启8比特输入
set meta-flag On
set input-meta On

# 禁止对第8个比特过滤
set convert-meta Off

# 在显示时保存第8个比特
set output-meta On

# 关闭可视和声音提示
set bell-style none

# 下面的内容给出了在readline
# 函数第一部分中包括的换码符序列的值

"\eOd": backward-word
"\eOc": forward-word

# 在控制台使用
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[3~": delete-char
"\e[2~": quoted-insert

# xterm使用
"\eOH": beginning-of-line
"\eOF": end-of-line

# /etc/inputrc结束

全局的设定值包含在 /etc/inputrc中。每个用户自己的值设定于~/.inputrc

~/.inputrc
若存在,则会忽略全局设定值。前面bash设定中缺省调用 /etc/inputrc

如果你想让系统同时使用两个设定,可以把一个 .inputrc放到/etc/skel 中给每一个新建立的用户使用。

我的第一篇博客

时间过得很快,这句话不知不觉被我说过N次,就像每天要吃N颗米饭,一生要吃上N顿一样。

说起我生命中的第一篇博客,也奇怪我居然可以找到,瞬间感觉到互联网的伟大之处…… 博客中国,在我读大三时候第一次在网上看到,第一次怀着好奇注册了一个不知名的东西去试试的情况之下,我中招了,写下了第一篇博客,就是在博客中国这样一个烂得不能再烂的博客提供商那里。刚刚在这里写了一篇日志来评论了一下这个让我写下第一篇博客的站点,不得不向提醒大家,以后注册什么网站,写什么东西之前千万要考虑清楚,不要给自己留下遗憾啊。最好有条件的朋友都使用国外的空间。

一键清理系统垃圾文件脚本

在很多同事的桌面上都有clean.bat这个一键清理脚本。我也用过几次,clean.bat就是一个通过清理操作系统c盘临时文件和优化启动缓存来加速系统的工具。发现有时候这个脚本运行起来会比较慢,重新整理了一下脚本次序,并且将清空cookie和清空打开文件历史之类比较得不偿失的操作注释掉了。你一般如何评估系统启动的速度呢? 我是看XP登录前那个横向滚动条的滚动次数,一般首次清理以后,能减少40%左右的启动时间。代码附后:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@echo off

echo 清空IE临时文件目录...
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"

echo 正在清除系统临时文件 *.tmp *._tmp *.log *.chk *.old ,请稍等...
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old

echo 清空垃圾箱,备份文件和预缓存脚本...
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\codefetch\*.*
rd /s /q %windir%\temp &amp; md %windir%\temp

rem cooke和最近历史还是保留吧...
rem del /f /q %userprofile%\COOKIES s\*.*
rem del /f /q %userprofile%\recent\*.*

echo 清理系统盘无用文件...
%windir%\system32\sfc.exe /purgecache

echo 优化预读信息...
%windir%\system32\defrag.exe %systemdrive% -b

echo 清除系统完成!

echo. &amp; pause

http://www.chedong.com/blog/archives/001362.html

python和web蜘蛛

这个视乎是很古老的话题了,很多项目是用C++或者java来开发,但是python却会成为我的首选,因为她可以更快,更方便在现在实现。

相关资料