路由器固件里怎么运行脚本命令?几个常用命令实操

家里那台老款华硕AC68U,刷了梅林固件后想让路由器每天凌晨自动重启一次,避免长时间运行卡顿。试了几次发现,直接在网页后台找不到‘定时执行脚本’按钮——原来得靠命令行手动写点小脚本,再让它随固件一起跑起来。

先搞清楚:路由器里哪能敲命令?

不是所有路由器都开放命令行入口。常见支持的有:华硕梅林(SSH开启后)、OpenWrt(自带SSH或Web终端)、Padavan(支持telnet/SSH)。以梅林为例,打开路由器后台 → 系统管理 → 启用SSH,然后用电脑终端(macOS/Linux直接开Terminal,Windows可用PuTTY)连上:

ssh admin@192.168.50.1
密码就是你登录后台的管理员密码。

脚本能放哪儿?怎么让它开机就跑?

梅林固件默认把自定义脚本放在 /jffs/scripts/ 目录下。比如想让路由器每次启动后自动改DNS,可以新建一个叫 services-start 的文件:

echo '#!/bin/sh\necho "nameserver 223.5.5.5" > /tmp/resolv.conf' > /jffs/scripts/services-start
chmod a+rx /jffs/scripts/services-start
注意:services-start 是梅林约定的开机启动脚本名,系统启动时会自动执行它。

几个真实用得上的命令例子

① 定时重启(每天4:30):
编辑 /jffs/scripts/services-start,加一行:

echo '30 4 * * * root /sbin/reboot' >> /tmp/crontab
/usr/sbin/crond -c /tmp/crontab
这相当于在路由器里装了个简易定时任务,不用装额外软件。

② 检查网络通不通,断了自动拨号:
在 /jffs/scripts/watchdog.sh 里写:

#!/bin/sh
if ! ping -c 1 -W 2 114.114.114.114 > /dev/null; then
  /sbin/ifconfig | grep ppp0 > /dev/null || /sbin/pppoe-start
fi
再用 crontab 每分钟跑一次:
*/1 * * * * root /jffs/scripts/watchdog.sh

小心这些坑

/jffs 分区默认只有几MB空间,别往里面塞大文件;脚本第一行必须是 #!/bin/sh;路径别写错,比如 /tmp 下的文件重启就没了,要存配置得用 /jffs 或 /etc/storage;改完脚本记得 chmod +x 赋执行权限,不然白写了。

说到底,路由器不是玩具,但也不是黑盒子。懂几个基础命令,它就能从“只会转发数据的盒子”,变成你家网络的小管家。