打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
[教程] 【虚拟内存】为路由器增加虚拟内存 SWAP(更新脚本)
将路由器作下载器有时会遇到内存居高不下,需要添加虚拟内存做后援。
下面的代码保存到 /jffs/scripts/ 目录下,文件名为S88swap,属性为0755
(其实可以放到任何位置,只要输入绝对的路径即可)

  1. #!/bin/sh

  2. PATH=/sbin:/usr/sbin:/bin:/usr/bin:/opt/bin

  3. APPS_DEV=`/bin/mount | grep -E 'mnt' | sed -n 1p | cut -d" " -f1`
  4. APPS_MOUNTED_PATH=`/bin/mount | grep -E 'mnt' | sed -n 1p | cut -d" " -f3`
  5. APPS_INSTALL_FOLDER=swap
  6. APPS_INSTALL_PATH=$APPS_MOUNTED_PATH/$APPS_INSTALL_FOLDER
  7. APPS_PATH=${APPS_MOUNTED_PATH:9}
  8. SWAP_FILE=`nvram get apps_swap_file`
  9. SWAP_SIZE=`nvram get apps_swap_size`

  10. case "$1" in
  11.   start)

  12. mem_size=`free |sed '1,3d' |awk '{print $4}'`
  13. pool_size=`df $APPS_DEV |sed '1d' |awk '{print $4}'`
  14. if [ $pool_size -gt $SWAP_SIZE ]; then
  15.         if [ -e "$APPS_INSTALL_PATH/$SWAP_FILE" ]; then
  16.                 swapoff $APPS_INSTALL_PATH/$SWAP_FILE
  17.                 rm -rf $APPS_INSTALL_PATH/$SWAP_FILE
  18.         fi
  19.         mkdir -p $APPS_INSTALL_PATH
  20.         swap_count=`expr $SWAP_SIZE / 1000 - 1`
  21.         echo "dd if=/dev/zero of=$APPS_INSTALL_PATH/$SWAP_FILE bs=1M count=$swap_count"
  22.         dd if=/dev/zero of=$APPS_INSTALL_PATH/$SWAP_FILE bs=1M count=$swap_count
  23.         echo "mkswap $APPS_INSTALL_PATH/$SWAP_FILE"
  24.         mkswap $APPS_INSTALL_PATH/$SWAP_FILE
  25.         echo "swapon $APPS_INSTALL_PATH/$SWAP_FILE"
  26.         swapon $APPS_INSTALL_PATH/$SWAP_FILE
  27.         echo "......................................................................."
  28.         free
  29.         echo "......................................................................."
  30.         echo ""
  31. else
  32.         echo "No enough partition size!"
  33.         exit 1
  34. fi
  35.         ;;
  36.         
  37.   stop)
  38.         if [ -e "$APPS_INSTALL_PATH/$SWAP_FILE" ]; then
  39.                 swapoff $APPS_INSTALL_PATH/$SWAP_FILE
  40.                 rm -rf $APPS_INSTALL_PATH/$SWAP_FILE
  41.         echo "......................................................................."
  42.         free
  43.         echo "......................................................................."
  44.         echo ""
  45.         fi
  46.         ;;
  47.   *)

  48.   exit 1
  49.   ;;
  50. esac
复制代码

路由器插入USB设备,然后在webshell运行 /jffs/scripts/S88swap start
会自动在USB设备的根目录创建一个名为swap的文件夹,虚拟内存文件.swap存放在这里。
如果成功,会提示挂载的虚拟内存有多大。如果Swap的total为0证明未加载虚拟内存

 



停止虚拟内存命令: /jffs/scripts/S88swap stop
也可以用: swapoff /mnt/sda1/swap/.swap 
虚拟内存文件的绝对路径。sda1是USB磁盘

默认为33M虚拟内存,可以手动改大小。
SWAP_SIZE=`nvram get apps_swap_size` 
例如改为128M ,SWAP_SIZE=128000

重启后就失效,所以需要手动添加到启动文件里去。
 /jffs/scripts/wan-start 最后一行添加/jffs/scripts/S88swap start 即可


有些酷友运行出错,请说明路由器型号,固件版本
我的测试环境:AC68U 梅林_小宝改版固件 380.57_X6.5

且运行下面的脚本,将结果反馈:
echo APPS_DEV=`/bin/mount | grep -E 'mnt' | sed -n 1p | cut -d" " -f1`
echo APPS_MOUNTED_PATH=`/bin/mount | grep -E 'mnt' | sed -n 1p | cut -d" " -f3`
echo SWAP_FILE=`nvram get apps_swap_file`
echo SWAP_SIZE=`nvram get apps_swap_size`

Ps:至于需要多大的虚拟内存,还是自己琢磨,不一定越大越好。
也有人说虚拟内存装U盘的话,进行下载会有大量读写损坏U盘,自己斟酌。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
虚拟内存,让你的SD卡变成RAM,让你的机器飞起来。
草色青青
【进阶类教程】为路由器梅林固件增加虚拟内存 补图
LLVM
MDPSCU中的install文件
新入手RT-AC86U后更新S大改版梅林固件、官改固件的体会
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服