1 #!/bin/bash 2 # ramdisk.sh 3 4 # 一个"ramdisk"就是系统RAM内存中的一部分, 5 #+ 只不过它被当作文件系统来操作. 6 # 它的优点是访问速度非常快(读/写时间快). 7 # 缺点: 易失性, 当机器重启或关机时, 会丢失数组. 8 #+ 而且会减少系统可用的RAM. 9 # 10 # 那么ramdisk有什么用呢? 11 # 保存一个大数据集, 比如保存表格或字典. 12 #+ 这样的话, 可以增加查询速度, 因为访问内存比访问硬盘快得多. 13 14 15 E_NON_ROOT_USER=70 # 必须以root身份来运行. 16 ROOTUSER_NAME=root 17 18 MOUNTPT=/mnt/ramdisk 19 SIZE=2000 # 2K个块(可以进行适当的修改) 20 BLOCKSIZE=1024 # 每块的大小为1K(1024字节) 21 DEVICE=/dev/ram0 # 第一个ram设备 22 23 username=`id -nu` 24 if [ "$username" != "$ROOTUSER_NAME" ] 25 then 26 echo "Must be root to run \"`basename $0`\"." 27 exit $E_NON_ROOT_USER 28 fi 29 30 if [ ! -d "$MOUNTPT" ] # 测试挂载点是否已经存在, 31 then #+ 如果做了这个判断的话, 当脚本运行多次的时候, 32 mkdir $MOUNTPT #+ 就不会报错了. (译者注: 主要是为了避免多次创建目录.) 33 fi 34 35 dd if=/dev/zero of=$DEVICE count=$SIZE bs=$BLOCKSIZE # 把RAM设备的内容用0填充. 36 # 为什么必须这么做? 37 mke2fs $DEVICE # 在RAM上创建一个ext2文件系统. 38 mount $DEVICE $MOUNTPT # 挂载上. 39 chmod 777 $MOUNTPT # 使一般用户也可以访问这个ramdisk. 40 # 然而, 只能使用root身份来卸载它. 41 42 echo "\"$MOUNTPT\" now available for use." 43 # 现在ramdisk就可以访问了, 即使是普通用户也可以访问. 44 45 # 小心, ramdisk存在易失性, 46 #+ 如果重启或关机的话, 保存的内容就会消失. 47 # 所以, 还是要将你想保存的文件, 保存到常规磁盘目录下. 48 49 # 重启之后, 运行这个脚本, 将会再次建立一个ramdisk. 50 # 如果你仅仅重新加载/mnt/ramdisk, 而没有运行其他步骤的话, 那就不会正常工作. 51 52 # 如果对这个脚本进行适当的改进, 就可以将其放入/etc/rc.d/rc.local中, 53 #+ 这样, 在系统启动的时候就会自动建立一个ramdisk. 54 # 这么做非常适合于那些对速度要求很高的数据库服务器. 55 56 exit 0 |
评论