QNAP 普通用户环境变量不生效解决
内置 admin 用户的 home 位于 /root ,而新建用户的 home 位于 /share/homes/USERNAME。此目录缺乏各种 rc 文件。导致安装 opkg 等第三方工具时无法自动设置 path。
解决方案为使用普通用户登录 SSH 并定位到 home,然后把 root 目录里的各种配置文件软链接过来。
1234ln -s /root/.bash_logout .bash_logoutln -s /root/.bash_profile .bash_profileln -s /root/.bashrc .bashrcln -s /root/.profile .profile
修改后普通用户的 prompt 也会变成 # ,非常迷惑,原因是 PS1 变量在 .profile 中被修改,sudo vim .profile 编辑该文件,注释掉第一行的修改语句即可。
123# export PS1='[\w] # 'resetsource /opt/etc/profile
威联通的系统似乎没有考虑过建立普通用户日常使用的问题,默认思维模式都是使用内置 ...
Docker volume 备份与恢复
https://jiajially.gitbooks.io/dockerguide/content/chapter_fastlearn/docker_run/--volumes-from.html
使用 –volumes-from 创建一个加载 dbdata 容器卷的容器,并从本地主机挂载当前到容器的 /backup 目录:
1sudo docker run --volumes-from aaa -v $(pwd):/backup alpine tar zcvf /backup/aaa.tar.gz /<path>
volumes-from 创建的容器其挂载的所有数据卷路径均与原容器相同,因此 <path> 改为原容器数据卷的挂载位置即可。
容器启动后,使用了 tar 命令来将 dbdata 卷备份为本地的 /backup/backup.tar。 如果要恢复数据到一个容器,首先创建一个带有数据卷的目标容器。(或者先创建空数据卷)
1sudo docker run -v volume_name:/volume_mount_path --name target a ...
Grav 主题 Granty 5 Helium 部分修复与改造[弃坑]
1. Header Owl Carousel 副标题 Tablet 宽度下错位溢出问题user\data\gantry5\themes\g5_helium\scss\custom.scss
1234567// fix header subtitle overflow in tablet view// user\themes\g5_helium\scss\helium\particles\_owlcarousel.scss:378@media only all and (max-width: 59.99rem) and (min-width: 48rem){ .g-owlcarousel .g-owlcarousel-item-wrapper .g-owlcarousel-item-content-container .g-owlcarousel-item-content-wrapper .g-owlcarousel-item-content { padding-top: 0 }}
2. Mobile 宽度下菜单栏和 ...
华硕路由修改区域
必须安装 Merlin 固件。
控制国家码的部分在 CFE 不能修改,且 nvram 修改后重启系统/服务即失效。因此加到系统启动和服务启动的脚本即可。
1234touch /jffs/scripts/init-startln -s /jffs/scripts/init-start /jffs/scripts/service-eventchmod a+rx /jffs/scripts/*vi /jffs/scripts/init-start
1234567#!/bin/shnvram unset territory_codenvram set location_code=JPnvram set 0:ccode=JPnvram set 1:ccode=JPnvram set wl0_country_code=JPnvram set wl1_country_code=JP
并在 web 设置中 Administration -> System 启用用户脚本。其中 AA 为亚洲区,信号功率25,频段不全。需要其他频段时可设为 JP 或 TW。
然后在 Web 界面中重启路由器。
改 ...
废物利用为 Galaxy S6 SM-G9200 刷入可用系统
Galaxy S6 发布于2015年,中国大陆公开版是双卡单4G,初始系统版本 5.0。我将其作为备用机多年来一直使用当年自行修改的旧版 6.0 系统,时过境迁现在已兼容性较差。三星已经发布了7.0版本的系统更新,因此试图更新到最新版本的 offical 系统。但中国版系统阉割严重,且有大量中国毒瘤App,无法直接使用。
尝试 Odin 刷入港版系统,不管是四件套还是一体包,单刷还是全部,均会验证失败。查阅得知该型号虽然港版和中国(内地,下略)版均标示型号为SM-G9200,但港版机型代号为zerofltezh,中国版为zerofltezc,基带不同,港版不支持中国电信网络,因此无法混刷。
故底包只能采用中国版官方固件。在此基础上刷入 GApps 使手机可用。
1. 刷入完整系统使用 SamFirm 下载最新版CHC区域固件四件套:
使用最新版 Odin 刷入手机,重启,确认正常动作。
2. 刷入 CF-Auto-Root在 其网站主页 输入型号G9200后,选择 zerofltezc 版本:
点击最新固件,在其下载页面单击 Configure:
在配置选项中,Installa ...
VHDX 空间释放
动态磁盘不会自动释放,因此如果有需要可以手动释放。似乎 exFat 分区效果不佳。
如果虚拟磁盘已经挂载,需要先卸载。然后运行 diskpart,执行:
1234select vdisk file="<Path to VHDX>"attach vdisk readonlycompact vdiskdetach vdisk
参考:
https://blog.littlelanmoe.com/杂谈/364
Linux MAC 地址伪装
https://wiki.archlinux.jp/index.php/MAC_アドレス偽装#.E6.96.B9.E6.B3.95_1:_systemd-networkd
Tested on Ubuntu 18.04 LTS
创建系统服务,每次开机时使用 ip link set 修改 mac 地址。
1sudo vim /etc/systemd/system/macspoof@.service
1234567891011121314[Unit]Description=MAC Address Change %IWants=network-pre.targetBefore=network-pre.targetBindsTo=sys-subsystem-net-devices-%i.deviceAfter=sys-subsystem-net-devices-%i.device[Service]Type=oneshotExecStart=/sbin/ip link set dev %i address 90:2b:34:d2:15:25ExecStart=/sbin/ip link set ...
Portainer 启动/升级
Launch12docker volume create portainer_datadocker run -d -p 127.0.0.1:9000:9000 -p 8000:8000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --restart unless-stopped --name portainer portainer/portainer
From https://portainer.io/install.html
Update
在 Web 界面执行 Duplicate/Edit
直接确认后,会自动拉取新镜像并停止旧 Container,但不能自动拉起新 Container
SSH 登录,手动删除旧 Container,再使用上述第二条命令重新拉起即可
1sudo docker rm portainer
QNAP 硬盘不休眠解决
0. 系统 raid 结构使用 cat /proc/mdstat 可以查看所有 raid 卷。
12345678910111213141516171819202122232425262728293031Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]md3 : active raid1 sdc3[0] 3897063616 blocks super 1.0 [1/1] [U]md2 : active raid1 sda3[0] 7804071616 blocks super 1.0 [1/1] [U]md1 : active raid1 sdb3[0] 392120832 blocks super 1.0 [1/1] [U]md322 : active raid1 sda5[1] sdc5[0] 7235136 blocks super 1.0 [2/2] [UU] bitmap: 0/1 pages [0KB], ...
QNAP 添加定时任务
123sudo vi /etc/config/crontabsudo crontab -lcrontab /etc/config/crontab && /etc/init.d/crond.sh restart
记得把要运行的命令属性 +x
参考:
Add items to crontab
QNAP 修改 sudoers
威联通 NAS 默认 sudoers 仅包括内置 admin 账户,修改时需要编辑 /usr/etc/sudoers 文件。
但 /usr/etc 目录中的编辑在重启后均会复原。因此需要在系统设置->硬件中打开允许 autorun.sh 运行选项,并且编辑该文件。
12mount $(/sbin/hal_app --get_boot_pd port_id=0)6 /tmp/configvim /tmp/config/autorun.sh
123#!/bin/bashmkdir -p /usr/etc/sudoers.decho "Tojo ALL=(ALL) ALL" > /usr/etc/sudoers.d/Tojo
如此即可在重启后自动修改 sudoers。如果直接向 /usr/etc/sudoers 末尾写入配置的话,由于该配置文件最后一行为 include 命令,因此会导致在此之后写入的配置无法生效。因此选择向其加载的配置目录中写入新文件。
QNAP 添加启动项
在系统设置->硬件中打开允许 autorun.sh 运行选项,并且编辑该文件。
123mount $(/sbin/hal_app --get_boot_pd port_id=0)6 /tmp/configor sudo mount $(sudo /sbin/hal_app --get_boot_pd port_id=0)6 /tmp/configvim /tmp/config/autorun.sh
必须添加 shebang,否则会报错。
12#!/bin/bash
参考:
Running Your Own Application at Startup
华硕路由添加 DDNS 服务
以 dockdns 为例,必须安装 Merlin 固件。
1vi /jffs/scripts/ddns-start
1234567891011# register a subdomain at https://www.duckdns.org/ to get your tokenSUBDOMAIN="your_subdomain"TOKEN="your-token"# no modification below neededcurl --silent "https://www.duckdns.org/update?domains=$SUBDOMAIN&token=$TOKEN&ip=$1" >/dev/null 2>&1if [ $? -eq 0 ];then /sbin/ddns_custom_updated 1else /sbin/ddns_custom_updated 0
1chmod a+rx /jffs/scripts/*
并在 web 设置中 Administra ...
Nginx 禁止未授权 URL 访问(HTTP 444)
123456789server { listen 80 default_server; listen [::]:80 default_server; listen 443 default_server ssl; ssl_certificate /etc/letsencrypt/live/coder17.com-0001/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/coder17.com-0001/privkey.pem; server_name _; return 444;}
其中证书可以随便指定
安装 mosh 与 byobu
1 mosh在延迟过高的服务器上操作时,使用 mosh 来通过 UDP 连接加强体验。甚至网络中断后重连或系统休眠后仍能维持连接。默认使用 60000 以上端口,一个 UDP 只能有一个连接。此处配置成和 ssh 使用相同端口来方便连接。
1sudo apt install mosh
连接时:
1mosh -p <mosh port> --ssh='ssh -p <ssh port>' <user>@<server address>
1.1 WinSCP 中使用 mosh1mosh -p !# --ssh='ssh -p !#' !U@!@
1.2 端口转发注意点因为 mosh 所使用的端口是客户端连接时指定的,所以不能转发到不同的端口。比如通过把服务器的 60001 UDP 转发到 50001,再使用 mosh -p 50001,是无法连接的。需要转发到相同端口连接。为避免麻烦,使用与转发的 ssh TCP 端口相同的端口即可。
2 byobumosh 单一端口只支持一个连接,所以要多线操 ...