Tag Archive for 'system'

Page 3 of 4

Apache 2.2 Vhost configure

Build Vhost in “extra/httpd-vhosts.conf

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
38
39
40
<VirtualHost localhost:80>
    NameVirtualhost localhost
    ServerAdmin root@localhost
    DocumentRoot "/opt/httpd/htdocs"
</VirtualHost>

<VirtualHost sqladmin.localhost:80>
#   NameVirtualhost sqladmin.localhost
    ServerAdmin [email protected]
    DocumentRoot "/opt/www/sqladmin"
    ServerPath "/opt/www/sqladmin"
    ServerName sqladmin.localhost
#   ServerAlias sqladmin.localhost
    <Directory />
    Options Indexes FollowSymLinks MultiViews
    IndexOptions FancyIndexing
    AllowOverride None
    DirectoryIndex index.php
    Order Deny,allow
    Allow from all
    </Directory>
    ErrorLog logs/sqladmin.localhost-error
</VirtualHost>
#
<VirtualHost php.localhost:80>
#   NameVirtualhost php.localhost
    ServerAdmin [email protected]
    DocumentRoot /opt/www/php
    ServerPath /opt/www/php
    <Directory />
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    DirectoryIndex /phpinfo.php
    Order Deny,allow
    Allow from all
    </Directory>
    ServerName php.localhost
    ErrorLog logs/php-error_log
    CustomLog logs/php-access_log common
</VirtualHost>

Let test the config file!

1
2
3
4
5
6
7
8
fred@localhost:php$ sudo /opt/httpd/bin/httpd -S
VirtualHost configuration:
127.0.0.1:80           is a NameVirtualHost
         default server localhost (/opt/httpd/conf/extra/httpd-vhosts.conf:29)
         port 80 namevhost localhost (/opt/httpd/conf/extra/httpd-vhosts.conf:29)
         port 80 namevhost sqladmin.localhost (/opt/httpd/conf/extra/httpd-vhosts.conf:35)
         port 80 namevhost php.localhost (/opt/httpd/conf/extra/httpd-vhosts.conf:53)
Syntax OK
Share

How to uninstall broken jedit on ubuntu?

jeditYou can resolve in this way:

1
# cd /var/lib/apt/lists

remove the file(s) dl.sourceforge.net_sourceforge_jedit_._Packages and dl.sourceforge.net_sourceforge_jedit_._Sources

1
# rm -fr dl.sourceforge.net_sourceforge_jedit_._*

then

1
# cd /var/lib/aptitude

open the file pkgstates and delete any related lines to the packages jedit

finally

1
# cd /var/lib/dpkg

open the file status and lete any related lines to the packages jedit

1
2
# sudo apt-get clean
# sudo apt-get update

Now I’m able to use apt-get or synaptic to install/remove/update packages !!!
Thanks to ramaddan for help me to find the right way.

Share

Flash 没有声音的解决

The problem is that Flash is old and doesn’t support Ubuntu’s directory structure for esd properly. It wants to use /tmp/.esd/socket for the sound connection. But Ubuntu uses /tmp/.esd-/socket for the sound (the uid for the user that installed Ubuntu is 1000). A quick hack you can do to fix this is to symbolic link that directory. To do that, go to System – Preferences – Sessions – Startup programs and add

1
ln -s /tmp/.esd-1000 /tmp/.esd
Share

使用awk的RS变量,一次显示出ini的一个段

记得有个取多行的参数。原来是RS。岂不是方便得很。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ awk -F[ 'BEGIN{RS = ""} /Fonts]/' ~/.opera/opera6.ini

[Fonts]
H1=32,7,0,0,0,0,WenQuanYi Bitmap Song [WenQuanYi]
H2=24,7,0,0,0,0,WenQuanYi Bitmap Song [WenQuanYi]
H3=19,7,0,0,0,0,WenQuanYi Bitmap Song [WenQuanYi]
H4=16,7,0,0,0,0,WenQuanYi Bitmap Song [WenQuanYi]
H5=13,7,0,0,0,0,WenQuanYi Bitmap Song [WenQuanYi]
H6=11,7,0,0,0,0,WenQuanYi Bitmap Song [WenQuanYi]
Form.Button=10,4,0,0,0,0,WenQuanYi Bitmap Song [WenQuanYi]
Form.Input=10,4,0,0,0,0,WenQuanYi Bitmap Song [WenQuanYi]
Form.Text=10,4,0,0,0,0,WenQuanYi Bitmap Song [WenQuanYi]
Normal=10,4,0,0,0,0,WenQuanYi Bitmap Song [WenQuanYi]
PRE=10,4,0,0,0,0,WenQuanYi Bitmap Song [WenQuanYi]
Toolbar=10,4,0,0,0,0,WenQuanYi Bitmap Song [WenQuanYi]
Dialog=10,4,0,0,0,0,WenQuanYi Bitmap Song [WenQuanYi]
Panel=10,4,0,0,0,0,WenQuanYi Bitmap Song [WenQuanYi]
Email=10,4,0,0,0,0,WenQuanYi Bitmap Song [WenQuanYi]
EmailCompose=10,4,0,0,0,0,WenQuanYi Bitmap Song [WenQuanYi]
Menu=12,4,0,0,0,0,WenQuanYi Bitmap Song [WenQuanYi]

原文地址

Share

虚拟主机流量控制

mod_throttle http://www.snert.com/Software/mod_throttle/
nanoweb server http://nanoweb.si.kz/
Continue reading ‘虚拟主机流量控制’

Share

Linux Command: Sort

sort命令

  sort命令的功能是对文件中的各行进行排序。sort命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的。实际上,sort命令可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件。

  Sort命令将逐行对文件中的内容进行排序,如果两行的首字符相同,该命令将继续比较这两行的下一字符,如果还相同,将继续进行比较。

  语法

  sort [选项] 文件

  说明:sort命令对指定文件中所有的行进行排序,并将结果显示在标准输出上。如不指定输入文件或使用”- “,则表示排序内容来自标准输入。

  sort排序是根据从输入行抽取的一个或多个关键字进行比较来完成的。排序关键字定义了用来排序的最小的字符序列。缺省情况下以整行为关键字按ASCII字符顺序进行排序。

  改变缺省设置的选项主要有:

  - m 若给定文件已排好序,合并文件。

  - c 检查给定文件是否已排好序,如果它们没有都排好序,则打印一个出错信息,并以状态值1退出。

  - u 对排序后认为相同的行只留其中一行。

  - o 输出文件 将排序输出写到输出文件中而不是标准输出,如果输出文件是输入文件之一,sort先将该文件的内容写入一个临时文件,然后再排序和写输出结果。

  改变缺省排序规则的选项主要有:

  - d 按字典顺序排序,比较时仅字母、数字、空格和制表符有意义。

  - f 将小写字母与大写字母同等对待。

  - I 忽略非打印字符。

  - M 作为月份比较:”JAN”<"FEB"

  - r 按逆序输出排序结果。

  +posl - pos2 指定一个或几个字段作为排序关键字,字段位置从posl开始,到pos2为止(包括posl,不包括pos2)。如不指定pos2,则关键字为从posl到行尾。字段和字符的位置从0开始。

  - b 在每行中寻找排序关键字时忽略前导的空白(空格和制表符)。

  - t separator 指定字符separator作为字段分隔符。

  下面通过几个例子来讲述sort的使用。

  用sort命令对text文件中各行排序后输出其结果。请注意,在原文件的第二、三行上的第一个单词完全相同,该命令将从它们的第二个单词vegetables与fruit的首字符处继续进行比较。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  $ cat text
 
  vegetable soup
 
  fresh vegetables
 
  fresh fruit
 
  lowfat milk
 
  $ sort text
 
  fresh fruit
  
   fresh vegetables
 
  lowfat milk
 
  vegetable soup

  用户可以保存排序后的文件内容,或把排序后的文件内容输出至打印机。下例中用户把排序后的文件内容保存到名为result的文件中。

1
  $ sort text>result

  以第2个字段作为排序关键字对文件example的内容进行排序。

1
  $ sort +1-2 example

  对于file1和file2文件内容反向排序,结果放在outfile中,利用第2个字段的第一个字符作为排序关键字。

1
  $ sort -r -o outfile +1.0 -1.1 example

  sort排序常用于在管道中与其他命令连用,组合完成比较复杂的功能,如利用管道将当前工作目录中的文件送给sort进行排序,排序关键字是第6个至第8个字段。

1
  $ ls - l | sort +5 - 7

  sort命令也可以对标准输入进行操作。例如,如果您想把几个文件文本行合并,并对合并后的文本行进行排序,您可以首先用命令cat把多个文件合并,然后用管道操作把合并后的文本行输入给命令sort,sort命令将输出这些合并及排序后的文本行。在下面的例子中,文件veglist与文件fruitlist的文本行经过合并与排序后被保存到文件clist中。

1
  $ cat veglist fruitlist | sort > clist
Share

关于恶意网路抓取程序的判断

两天以来服务器都在超负载,特别是Apache和MySQL,应该是由于恶意的网路抓取程序引起,于是利用这个脚本初步判断了一下

1
2
3
4
5
#!/bin/sh
PORTS=$HOME/tmp/port.txt
REPORT=$HOME/tmp/report.txt
netstat -antu > $HOME/tmp/port.txt
for x in `grep "61.186.250.32" $PORTS | grep ESTABLISHED | grep -v "0.0.0.0" | awk '{print $5}' | grep -v 61.186.250.32 | sort | awk -F : '{print $1}' | sort | uniq`; do grep $x $PORTS |  wc -l | tr -d '\n'; echo "   : $x"; done | sort -rn > $REPORT ; head -20 $REPORT ; wc -l $REPORT

运行返回

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    211   : 222.182.70.xxx
     58   : 61.143.90.106
     23   : 202.160.178.67
     16   : 61.51.227.174
      9   : 60.1.234.85
      9   : 221.203.144.53
      4   : 202.108.22.78
      2   : 221.204.212.221
      2   : 202.160.180.83
      2   : 202.160.179.116
      1   : 66.249.72.8
      1   : 61.128.128.68
      1   : 220.205.141.24
      1   : 211.95.217.216
     14 /home/fred/tmp/report.txt

这样数据,找到了一直访问服务器的IP,当然是通过两天多次的抓取分析得到的结果,不过其实可以使用脚本自动抓取判断,使用diff, vimdiff加以判断,这样在处理较大数量和较大数据的情况上将会非常有用。

Share

奇怪的硬盘问题,被修复

我在公司电脑的 /dev/hda10 一直感觉不对,不知道是不是有坏道,也没管它,今天早上启动 Ubuntu Dapper 的时候 /dev/hda10 就不能挂载,fsck 也不行。可以看看下面的具体情况

1
2
3
#fsck -f /dev/hda10
fsck.ext3: Attempt to read block from filesystem resulted in short read while trying to open /dev/hdb1
Could this be a zero-length partition?

使用 mesg | grep -i hda 查看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[4294714.162000] hdb: dma_intr: error=0x40 { UncorrectableError }, LBAsect=183, high=0, low=183, sector=80
[4294714.162000] end_request: I/O error, dev hdb, sector 80
[4294714.162000] Buffer I/O error on device hdb, logical block 10
[4294715.710000] hdb: dma_intr: status=0x51 { DriveReady SeekComplete Error }
[4294715.710000] hdb: dma_intr: error=0x40 { UncorrectableError }, LBAsect=183, high=0, low=183, sector=88
[4294715.710000] end_request: I/O error, dev hdb, sector 88
[4294715.710000] Buffer I/O error on device hdb, logical block 11
[4294717.258000] hdb: dma_intr: status=0x51 { DriveReady SeekComplete Error }
[4294717.258000] hdb: dma_intr: error=0x40 { UncorrectableError }, LBAsect=183, high=0, low=183, sector=96
[4294717.258000] end_request: I/O error, dev hdb, sector 96
[4294717.258000] Buffer I/O error on device hdb, logical block 12
[4294718.831000] hdb: dma_intr: status=0x51 { DriveReady SeekComplete Error }
[4294718.831000] hdb: dma_intr: error=0x40 { UncorrectableError }, LBAsect=183, high=0, low=183, sector=104
[4294718.831000] end_request: I/O error, dev hdb, sector 104
[4294718.831000] Buffer I/O error on device hdb, logical block 13
[4294720.379000] hdb: dma_intr: status=0x51 { DriveReady SeekComplete Error }
..................

也不知道是不是坏了,但是在 fdisk -l 查看硬盘一切都很正常,最后在搜索N次之后使用了以下方法在搞定。

1
2
# mke2fs -n /dev/hdb1
# e2fsck - b 32768 /dev/hdb1
Share

NFS服务器与客户端设置

在公司的电脑硬盘不够用,所以就使用了一台Linux服务器来运行NFS服务扩充硬盘。
首先在服务器(Server)上需要安装 portmap 和 nfs 软件包,先来看看Vbird上关于NFS的讲解

NFS為 Network FileSystem 的簡稱,最早之前是由 Sun 這家公司所發展出來的,他的目的就是想讓不同的機器、不同的作業系統可以彼此分享個別的檔案啦!目前在 Unix Like 當中用來做為 file server 是相當不錯的一個方案喔!基本上, Unix Like 主機連接到另一部 Unix Like 主機來分享彼此的檔案時,使用 NFS 要比 SAMBA 快速且方便的多了!此外, NFS 的設定真的很簡單,幾乎只要記得啟動 Remote Procedure Call (RPC)這個咚咚 ( 就是 portmap 這個套件啦! ) 就一定可以架設的起來!真是不錯啊!不過,如果要達成 Windows 與 Linux 之間的溝通,那麼還是以 SAMBA 比較容易啊!無論如何, NFS 還是可以做為小公司或學校單位內部 Unix Like 機器共享 file 的一個 Server 喔!

然后就是在 /etc/exports 对NFS服务作设定,我的是这样的:

1
/home/web/fred 192.168.0.119(rw,all_squash,anonuid=512,anongid=512)

接下来启动服务

1
2
# /etc/rc.d/init.d/portmap start
# /etc/rc.d/init.d/nfs start

检查是否正确启动

1
2
3
4
5
6
# tail /var/log/messages
Nov 16 15:04:45 test portmap: portmap startup succeeded
Nov 16 15:04:53 test nfs: Starting NFS services:  succeeded
Nov 16 15:04:54 test nfs: rpc.rquotad startup succeeded
Nov 16 15:04:54 test nfs: rpc.mountd startup succeeded
Nov 16 15:04:54 test nfs: rpc.nfsd startup succeeded

从客户端查看一个NFS服务器有哪些挂载的NFS目录

1
2
3
4
5
6
# showmount -e test.linux.org
Export list for localhost:
/tmp           *
/home/linux  *.linux.org
/home/public (everyone)
/home/test   192.168.0.100

在客户端挂载NFS目录

1
2
3
4
5
6
7
8
9
# mkdir -p /home/nfs/public  
# mount -t nfs test.linux.org:/home/public /home/nfs/public
掛載的格式:
# mount -t nfs hostname(orIP):/directory /mount/point
# df
Filesystem              1K-blocks    Used    Available Use% Mounted on
/dev/hda1              1904920   1235380  572776  69%   /
/dev/hdb1              976344    115212    810736  13%   /backup
lab:/home/public     1904920   1235376   572776  69%   /home/nfs/public

在客户端卸載NFS目录

1
# umount /home/nfs/public

如果想要在启动时就挂载NFS目录,则需要在 /etc/fstab 中加入

1
lab:/home/web/fred      /home/fred/nfs  nfs  rw   00

最后如果遇到问题,注意Vbird讲的注意重点:

  1. Network FileSystem (NFS) 可以讓主機之間透過網路分享彼此的檔案與目錄;
  2. NFS 主要是透過 RPC 來進行 file share 的目的,所以 Server 與 Client 的 RPC 一定要啟動才行!
  3. NFS 主機可以控制連線的 Client 端的登入與權限;
  4. NFS 的設定檔就是 /etc/exports 這個檔案;
  5. NFS 的重要登錄檔可以參考 /var/lib/nfs/xtab 這個檔案,還包含相當多有用的資訊在其中!
  6. NFS 主機要關機之前,請務必先關閉 portmap 與 nfs server ,否則關機無法順利成功;
  7. NFS 主機在更動 /etc/exports 這個檔案之後,可以透過 exportfs 這個指令來重新掛載分享的目錄!
  8. 可以使用 rpcinfo 來觀察 RPC program 之間的關係!!!
  9. NFS 主機在設定之初,就必須要考慮到 client 端登入的權限問題,很多時候無法寫入或者無法進行分享,主要是 Linux 實體檔案的權限設定問題所致!
  10. NFS 的防火牆設定可以透過控制 RPC 的主要 port ,亦即是 111 這個 port 來管理!此外,亦可透過 TCP_Wrappers 來管理!
  11. NFS 用戶端只要成功 mount NFS 主機分享的目錄之後,使用上面就好像自己的 partition 一般;
  12. NFS 用戶端可以透過使用 showmount, mount 與 umount 來使用 NFS 主機提供的分享的目錄!
Share

天气很热

这一周真的很热,今天是德国世界杯的决赛,周末回到家一直在弄我的系统,从桌面的WinXP到Laptop上的Ubuntu Dapper,忙得不亦乐乎……

现在真的不敢用管理员帐户来使用WinXP了,被那些无耻的流氓软件害惨了,手工在DOS下删,好不容易把系统弄干净了,现在建了一个普通用户,似乎一切又平静了,希望一直如此。在ZYJ的Blog上看到了Zoundry这个Blog桌面发布工具,下载了下来,感觉还不错,这篇日志就是用它来写作的。并且这是一个免费软件。

在ACER的Laptop上遇到了新的kernel的SMP问题,在Launchpad上看到了解决方法,可是测试只能使用把686换成386内核的方法。BCOM的无线网卡启动后不能立刻连接的问题也解决了,可能下周回来得研究一下CPU的风扇问题,不过说实话现在的风扇运转还算正常,不会象有的人描述的那样一直狂转。顺便把CPU的频率限制在了800MHZ,天气热了,受不了~

七月过了三分之一了,除了工作,在世界杯结束后我应该更加努力了,充实Unix/Linux管理知识,补习一些网络和计算机的基础知识,争取在8月中完成任务。不,不是争取,是一定要!

Share