轶哥

妄图改变世界的全栈程序员。

Linux网卡优先级配置及同时访问内外网设置
  •   更新:2022-05-02 14:47:20
  •   首发:2022-05-02 12:15:11
  •   脚本
  •   1056

在Linux系统中,双网卡或多网卡上网并不会同时使用两者同时上网,只会优先把请求发送到优先级高的默认网关(对应网卡的内网网段除外)。插入多个网卡的时候,路由表中就会存在多个默认网关,访问外部网络的时候,系统根据路由原则,Metric值小的网卡优先级高,会优先使用该网卡上网。

在MacOS系统中,设置网卡优先级只需要在系统偏好设置-网络中设置设定网卡服务顺序,具体操作见《MacOS 同时使用内网和外网(双网卡同时联网)》。

在Windows系统中,设置网卡优先级只需要设置网卡的跃点数,具体操作见《win10链路聚合,双网卡带宽叠加负载均衡》(win11同理)。

而在Linux系统中,设置网卡优先级需要修改路由表配置,调整默认网关的Metric值。

Shell异步延迟执行命令
  •   更新:2022-05-02 14:44:44
  •   首发:2022-05-02 11:22:48
  •   脚本
  •   681

在Shell脚本中,特别是Linux操作系统内置的各项启动脚本,经常会遇到需要延迟异步去执行的命令。例如在/etc/rc.local文件或配置网卡相关的脚本文件里面,希望对应脚本能够先返回exit 0以免阻塞任务,然后再异步的去执行不关注执行结果的一些命令,甚至延迟执行异步命令。

在*nux命令中,命令 &为后台进程命令(放在命令参数最后面的&表示设置此命令后台执行)。

因此,在Shell中,命令之后跟上&即异步去执行该命令。

sleep是延时命令,sleep 1代表将命令延迟1秒后执行。

MacOS 12.3 无法正常使用code命令的解决方法
  •   更新:2022-04-17 14:59:53
  •   首发:2022-02-03 23:32:40
  •   脚本
  •   1956

从MacOS 12.3 Beta版本开始,系统将不再内置python2且将无法正常安装python2,无论是intel芯片还是Apple芯片的设备都无法安装。原因是/usr/bin/python的软链接无法正常被删除或覆盖。并且默认不开启python3命令。

2022年04月17日14:58:00更新: 从MacOS 12.4 Beta版(21F5048e) 开始,可以通过pyenv在intel和Apple芯片中安装python2。详细方法见《brew安装python2》

因此可能会导致一系列依赖python命令的应用程序无法运行。

例如将会遇到VS(Visual Studio Code)无法使用code命令。

➜  saas-web git:(892f9ef) ✗ code .
/usr/local/bin/code: line 6: python: command not found
/usr/local/bin/code: line 10: ./MacOS/Electron: No such file or directory

由此也可能导致"Visual Studio Code - Insiders" needs to be updated on macOS Monterey弹窗的问题。

MySQL批量重命名表名和列名
  •   更新:2022-02-23 20:16:12
  •   首发:2022-02-23 20:16:12
  •   脚本
  •   672

MySQL批量重命名表名和列名,修改表名为大驼峰,列名为小驼峰。

最近公司项目重构,为了适应Prisma的习惯,保持数据库字段命名方式和代码模式一致,特地编写此脚本实现批量重命名已存在的表名和列名。

Auto.js 小米MIUI自动解锁屏幕脚本
  •   更新:2022-02-22 17:28:41
  •   首发:2022-02-21 22:53:16
  •   脚本
  •   1402

使用Auto.js解锁MIUI13的密码锁屏,不能直接滑动屏幕,会因为防误触功能导致解锁失败,关闭防误触也没用。只需要滑动的时候不那么直接即可。

if (!device.isScreenOn()) {        //从息屏状态  将屏幕唤醒
    device.wakeUp()//唤醒设备
    sleep(2000) // 等待屏幕亮起

    swipe(random(device.width / 3, device.width / 2), random(device.height * 8 / 10, device.height * 7 / 10), random(device.width / 3, device.width / 2), random(device.height * 2 / 10, device.height / 10), random(500, 1000))
    sleep(1000)

    //解锁
    desc(1).findOne().click()
    desc(2).findOne().click()
    desc(3).findOne().click()
    desc(4).findOne().click()
}

通过下拉再点击时间的方式在MIUI13行不通了,但实现也不复杂,核心实现是上述第四行代码。

联发科芯片手机刷入Magisk boot教程(解决无限重启)
  •   更新:2022-02-22 17:28:12
  •   首发:2022-02-22 17:28:12
  •   脚本
  •   3740

红米K30至尊纪念版(天玑1000)刷最新版MIUI13内测版(cezanne 22.2.18)后不能root,magisk刷了后root拿不到,官方root提示:“很抱歉,当前版本暂不支持开启root权限,可能是root包未准备好或该版本已撤包”。Recovery也自动恢复成小米官方版本了。

安装Magisk Manager APP后提示提示Ramdisk为"是",但是无法正常授权,拿不到Root权限。点击安装后提示“选择并修补一个文件”。

以下为解决方法联发科芯片手机刷入Magisk boot解决方案。

SSL证书过期监测
  •   更新:2022-02-08 16:52:00
  •   首发:2022-01-28 23:46:00
  •   脚本
  •   1173

部分程序配置了免费 SSL 证书更新程序,但是更新程序更新证书失败并不会通知到管理员,可能导致业务异常。通过针对域名的 SSL 证书过期监测小程序,作为二道防火墙,避免事故发生。

需求

  1. 以 cron 风格定时监测 SSL 证书过期和可用状态。
  2. 提前 2 天发送短信通知管理员(需要支持多手机号)。
  3. 可以在线维护通知列表(域名+手机号)。
  4. 程序要尽量简单,尽量降低后续维护成本。
  5. 开发要尽可能快。
小米路由器4免拆机刷OpenWrt教程
  •   更新:2021-03-21 13:49:00
  •   首发:2020-05-10 23:13:46
  •   脚本
  •   59197

小米路由器4 LAN口全千兆+5G Wifi,当时顺手买了这货,性价比蛮高。后面由于路由器升级,这货一直在吃灰。最近偶然看到它,发现网上的教程都是需要TTL线刷😂。其实不用线刷也能刷入Openwrt,特地记录下刷机过程。

Root路由器

使用网友开源方案OpenWRTInvasion进行Root

理论上此方案兼容:

  • 小米路由器4
  • 小米路由器4A 千兆版
  • 小米路由器4A 100M版
  • 小米路由器4C
  • 小米路由器4Q(R4C)
  • 小米路由器3Gv2
  • 小米路由器3C
  上一页 下一页