一条命令,一段历史

2006-08-03,星期四 | 分类:Linux | 标签: | 419 Views

在 Linux 下:

$ cal 9 1752
September 1752
Su  Mo  Tu  We  Th  Fr  Sa
               1    2  14  15  16
17  18   19  20  21  22  23
24  25   26  27  28  29  30
 
发现 1752 年 9 月 2 日的后面竟然是 14 日,确实很奇怪,在 Linux 天空 找到了答案:
1582 年 2 月,罗马教廷要求从 1582 年 10 月中减去 10 天,因此 1582 年 10 月 4 日后面紧跟着就是 15 日。在意大利、西班牙等国家都这样处理了。其他天主教国家也很快跟着这么做了,但是新教国家不愿意修改,而且希腊等东正教国家直到 20 世纪初才修改,所以这个改革在英国及其殖民地(包括美国)在 1752 年 9 月才被执行。这样 1752 年 9 月 2 日后面跟着的就是 1752 年 9 月 14 日。这就是为什么 cal 会生成上面输出的原因了。

内网用户通过 Linux 网关服务器向外网发布 Web 服务

2006-07-11,星期二 | 分类:Network | 标签: | 2,692 Views

环境:ADSL 动态 IP ,内网用户通过 Linux 网关服务器 NAT 上网。
 
1. 先到 3322.org 免费注册一个动态的二级域名。
 
2. 网关服务器上
# vi /etc/ppp/ip-up
在最后加入:
/usr/local/network/setup.sh
lynx -mime_header -auth=USERNAME:PASSWORD "http://www.3322.org/dyndns/update?system=dyndns&hostname=HOST.3322.org"
 
第一个是执行 iptables 做 NAT 以及 TC 流量控制等脚本的集合。
第二个是在拨号成功时向 3322.org 提交新的 IP 地址。
 
3. 安装 Apache ,configure 的时候加上 --enable-proxy=shared
在虚拟主机配置中加上:
RewriteEngine on
RewriteRule ^/(.*)$ http://192.168.0.254/$1 [P,L]
 
注:如果有注册静态域名,做 CNAME 到 HOST.3322.org 就可以实现 IP 的自动“更新”了。
    可以配置多个虚拟主机为多部内网机器提供发布到外网的 Web 服务。

Linux 使用 RAMDisk 提高系统性能

2006-06-10,星期六 | 分类:Linux | 标签: | 2,813 Views

最初,使用 RAMDisk 是通过在 ram 设备上建立文件系统并挂载来实现的。
# mkdir /mnt/ramfs
然后把下面的指令加入 /etc/rc.local 。
/sbin/mkfs -t ext3 /dev/ram0
/bin/mount /dev/ram0 /mnt/ramfs
/bin/chmod -R 1777 /mnt/ramfs
RAMDisk 的默认大小是 8M (可以在编译内核时设定),如果要增加 RAMDisk 的大小,需要在系统启动时给内核传参数,在 grub.conf 的 kernel 行末加上 ramdisk_size=131072 ,这里不能是 128M 这样的写法,应该是 128*1024 。
 
使用 ram 设备的灵活性不够,不方便。之后就使用 shm 了。
以 /tmp 绑定到 shm 为例,可以把下面的指令加入 /etc/rc.local 。
mkdir /dev/shm/tmp
chmod 1777 /dev/shm/tmp
mount --bind /dev/shm/tmp /tmp
 
使用 shm 要稍微方便些了,不过还是不够,更方便的办法是通过 mount 使用 tmpfs 文件系统。
# mkdir /mnt/tmpfs
# mount -t tmpfs -o size=128m,mode=1777 tmpfs /mnt/tmpfs
这里的 128m 就是 128Mb 的意思。
卸载:# umount /mnt/tmpfs
可以添加相应的设置到 /etc/fstab 开机自动挂载。
Debian 系统在启动时会清空 /tmp 目录,让 /tmp 使用 tmpfs 再合适不过了,这样还可以提高系统性能。
编辑 /etc/fstab,加入或修改 /tmp 这行:
tmpfs           /tmp            tmpfs   size=128m,mode=1777     0          0
 
直接使用 tmpfs 应该是最方便的。把 squid 的 cache 目录放到 RAMDisk 里提高 proxy 效能,甚至把 MySQL 的数据库文件也放到 RAMDisk 以减少磁盘 I/O 。想怎么玩都比较方便了。
需要注意的是,RAMDisk 的大小最好不要超过内存的一半,如果过大,系统就会使用 swap 分区了,性能反倒会下降。
 
参考资料:LINUX系统性能调谐