iStoreOS安装青龙面板

在拉取镜像里面填上whyour/qinglong:latest,然后按“拉取”。
拉取完毕后点击“容器”菜单,选择“新增”,容器名称 随便写。 “交互”和“TTY”,“权限”打勾,网络选择 “bridge|bridge|172.17.0.0/16,”高级选项“打勾,然后在下面”暴露所有端口“打勾 ,最后选择”提交“。
成功。
然后进入SSH界面,运行docker ps 找到对应的CONTAINER ID 。
运行docker exec -it 295cc2271c06 /bin/bash 进入容器
运行ql check 会自动检测。
## 开始执行… 2023-11-02 09:16:52

=====> 开始检测

changed 1 package in 5s
Writing to /root/.config/pip/pip.conf
Lockfile is up to date, resolution step is skipped
Already up to date

Done in 1.9s
Progress: resolved 1, reused 0, downloaded 0, added 0
Progress: resolved 18, reused 0, downloaded 0, added 0
Progress: resolved 35, reused 0, downloaded 12, added 0
Progress: resolved 50, reused 0, downloaded 31, added 0
Progress: resolved 82, reused 0, downloaded 59, added 0
 WARN  deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
Progress: resolved 134, reused 0, downloaded 85, added 0
Progress: resolved 161, reused 1, downloaded 114, added 0
Already up to date
Progress: resolved 181, reused 3, downloaded 140, added 0, done

Done in 9.4s
—> 1. 开始检测配置文件

—> 配置文件检测完成

—> 2. 开始安装青龙依赖

安装 /ql 依赖包…

devDependencies: skipped

> @ postinstall /ql
> max setup 2>/dev/null || true

Done in 2.1s
—> 青龙依赖安装完成

—> 3. 开始安装脚本依赖

安装 /ql/data/scripts 依赖包…

devDependencies: skipped

Done in 1.3s
—> 脚本依赖安装完成

—> 1. 复制通知文件

—> 复制一份 /ql/sample/notify.py 为 /ql/data/scripts/notify.py

‘/ql/sample/notify.py’ -> ‘/ql/data/scripts/notify.py’

—> 复制一份 /ql/sample/notify.js 为 /ql/data/scripts/sendNotify.js

‘/ql/sample/notify.js’ -> ‘/ql/data/scripts/sendNotify.js’
—> 通知文件复制完成

—> 2. 复制nginx配置文件

‘/ql/docker/nginx.conf’ -> ‘/etc/nginx/nginx.conf’
‘/ql/docker/front.conf’ -> ‘/etc/nginx/conf.d/front.conf’
—> 配置文件复制完成

=====> 检测面板








=====> 面板服务启动正常

=====> 检测nginx服务
115 nginx: master process nginx -c /etc/nginx/nginx.conf
117 nginx: worker process
119 nginx: worker process

=====> nginx服务正常

—> pm2日志
2023-11-02T09:11:41: ✌️ DB loaded
2023-11-02T09:11:41: ✌️ Init file down
2023-11-02T09:11:41: ✌️ Sentry loaded
2023-11-02T09:11:42: ✌️ Dependency Injector loaded
2023-11-02T09:11:42: ✌️ Express loaded
2023-11-02T09:11:42: ✌️ init data loaded
2023-11-02T09:11:42: ✌️ link deps loaded
2023-11-02T09:11:42: ✌️ init task loaded
2023-11-02T09:11:42: ✌️ 后端服务启动成功!
2023-11-02T09:13:05: ValidationError: The Express ‘trust proxy’ setting is true, which allows anyone to trivially bypass IP-based rate limiting. See https://express-rate-limit.github.io/ERR_ERL_PERMISSIVE_TRUST_PROXY/ for more information.
2023-11-02T09:13:05: at Object.trustProxy (/ql/node_modules/.pnpm/express-rate-limit@7.0.0_express@4.18.2/node_modules/express-rate-limit/dist/index.cjs:148:13)
2023-11-02T09:13:05: at Object.wrappedValidations. [as trustProxy] (/ql/node_modules/.pnpm/express-rate-limit@7.0.0_express@4.18.2/node_modules/express-rate-limit/dist/index.cjs:324:22)
2023-11-02T09:13:05: at Object.keyGenerator (/ql/node_modules/.pnpm/express-rate-limit@7.0.0_express@4.18.2/node_modules/express-rate-limit/dist/index.cjs:582:20)
2023-11-02T09:13:05: at /ql/node_modules/.pnpm/express-rate-limit@7.0.0_express@4.18.2/node_modules/express-rate-limit/dist/index.cjs:633:32
2023-11-02T09:13:05: at processTicksAndRejections (node:internal/process/task_queues:95:5)
2023-11-02T09:13:05: at /ql/node_modules/.pnpm/express-rate-limit@7.0.0_express@4.18.2/node_modules/express-rate-limit/dist/index.cjs:615:5 {
2023-11-02T09:13:05: code: ‘ERR_ERL_PERMISSIVE_TRUST_PROXY’,
2023-11-02T09:13:05: help: ‘https://express-rate-limit.github.io/ERR_ERL_PERMISSIVE_TRUST_PROXY/’
2023-11-02T09:13:05: }

=====> 检测后台

{“code”:200,”data”:{“isInitialized”:true,”version”:”2.16.5″,”publishTime”:1698580800,”branch”:”master”,”changeLog”:”1. 修复注释或删除环境变量可能无效
2. 修复定时任务详情日志列表样式
“,”changeLogLink”:”https://t.me/jiao_long/396″}}

=====> 后台服务启动正常

[PM2] Applying action reloadProcessId on app [schedule](ids: [ 0 ])
[PM2] Applying action reloadProcessId on app [public](ids: [ 1 ])
[PM2] [schedule](0) ✓
[PM2] Applying action reloadProcessId on app [panel](ids: [ 2 ])
[PM2] [public](1) ✓
[PM2] [panel](2) ✓
┌────┬─────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├────┼─────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 2 │ panel │ default │ N/A │ fork │ 984 │ 3s │ 1 │ online │ 0% │ 130.6mb │ root │ disabled │
│ 1 │ public │ default │ N/A │ fork │ 912 │ 20s │ 1 │ online │ 0.6% │ 101.1mb │ root │ disabled │
│ 0 │ schedule │ default │ N/A │ fork │ 911 │ 20s │ 1 │ online │ 2.5% │ 75.3mb │ root │ disabled │
└────┴─────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

=====> 检测结束

## 执行结束… 2023-11-02 09:17:39 耗时 47 秒     
接下来
需要在青龙面板里面手工安装依赖
NodeJs 依赖库
crypto-js
prettytable
dotenv
jsdom
date-fns
tough-cookie
tslib
ws@7.4.3
ts-md5
jsdom -g
jieba
fs
form-data
json5
global-agent
png-js
@types/node
require
typescript
js-base64
axios
moment
got
md5
request
download
tunnel
ws
qrcode-terminal

Python3 依赖库
requests
canvas
ping3
jieba
aiohttp

Linux 依赖库安装失败,不清楚是什么情况。
bizCode
bizMsg
lxml

写脚本常用到的一些命令

 判断上句是否成功执行 
 [ $? -eq 0 ]    若成功则为0  若不成功 则返回值不为0

xargs传递参数命令
比如查找某名称的文件并删除他们 
find -name samba* | xargs rm 
全部干掉。

将程序输出值赋给变量
IP=$(cat index.html | grep “remoteIP =” | awk ‘{print $4}’ | cut -d “‘” -f2)
1、=号左右两边不要空格
2、如果采用$()的形式就不用反引号,如果采用“的话就不用$()

变量字符串比较
if [ “$IP” == “$SS” ]

uci获取参数指令
root@openwrt:/mnt# uci get wireless.@wifi-device[0].hwmode

11g
此时的配置文件是/etc/config/wireless
config wifi-device ‘radio0’
 option type ‘mac80211′
 option channel ’11’
 option hwmode ’11g’
 option path ‘platform/ar933x_wmac’
 option disabled ‘0’
 option htmode ‘HT40′
 option txpower ’18’
 option country ‘US’
对比颜色相同的参数,就可以理解uci读取配置文件的语法规则。

命令行下面扫描wifi指令
iwlist wlan0 scan
iw wlan0 scan

命令行下面扫描wifi并获取SSID指令
 iw wlan0 scan | grep SSID | awk ‘{print $2}’
也可以使用iwlist指令和cut分割提取方法实现
iwlist  wlan0 scan | grep SSID  | cut -d ‘”‘ -f2  注意:cut -d 后面可以使用双引号也可以使用单引号,由于此处分割的字符是双引号,所以两边只能采用单引号,这样运行中才不会出现歧义。

处理两个文件中的相同行和不同行
1. 如何取出两个文件的并集(重复的行只保留一份)?
2. 如何取出两个文件的交集(只留下同时存在于两个文件中的文件)?
3. 如何删除交集,留下其他的行?
1. cat file1 file2 | sort | uniq
2. cat file1 file2 | sort | uniq -d
3. cat file1 file2 | sort | uniq -u

linux统计文本文件中行数

wc -l 1.txt | awk ‘{print $1}’ 

Shell脚本对比两个文本文件找出不同行的方法
grep命令法
命令如下:grep -vwf file1 file2
统计file1中没有,file2中有的行

curl使用笔记
采用get方式时候,比如http://forum.rippletek.com/member.php?mod=logging&action=login
fiddler里面显示是GET /member.php?mod=logging&action=login HTTP/1.1
使用curl提交get就是 curl -G -d “mod=logging&action=login” http://forum.rippletek.com/member.php
把?去掉即可。这个问号貌似是个分隔符,没有实质意义

grep -E ‘123|abc’ filename  // 找出文件(filename)中包含123或者包含abc的行

不删除的情况下清空某个日志文件
true > 111.log
cp /etc/null 111.log

sed在每行的头添加字符,比如”HEAD”,命令如下:

sed ‘s/^/HEAD&/g’ test.file

sed在每行的行尾添加字符,比如“TAIL”,命令如下:

sed ‘s/$/&TAIL/g’ test.file

shell中变量自增的实现方法

Linux Shell中写循环时,常常要用到变量的自增,现在总结一下整型变量自增的方法。
我所知道的,bash中,目前有五种方法:
1. i=`expr $i + 1`;
2. let i+=1;
3. ((i++));
4. i=$[$i+1];
5. i=$(( $i + 1 ))
可以实践一下,简单的实例如下:
#!/bin/bash
i=0;
while [ $i -lt 4 ];
do
   echo $i;
   i=`expr $i + 1`;
   # let i+=1;
   # ((i++));
   # i=$[$i+1];
   # i=$(( $i + 1 ))
done

另外,对于固定次数的循环,可以通过seq命令来实现,就不需要变量的自增了;实例如下:
#!/bin/bash
for j in $(seq 1 5)
do
  echo $j
done

shell判断或的关系 两个条件满足一个就为真 
 if [ $price -gt $pricelimit ] || [ $price -le $lowprice ]; then
||在这里相当于或的关系 两个比较条件需要用[]分别括起来,另外[与字符串$price之间需要空格

PR在某个位置插入视频

比如在开头位置插入某个已经在视频中的片段,先选取片段并复制,然后可以在开始位置显示向右的红箭头时单击左键,然后在“编辑”菜单选择“粘贴插入”即可使整体视频后移。
如果是要插入在左侧项目区导入的视频,可以先点击向前选择轨道工具,然后按住ctrl键,从项目区拖出该段视频到要插入的节点,当出现向右的红箭头时放下,即可插入并让后面已存在的视频整体后移。

更新:好像第二种方法今天试了不行。不清楚原因。不过发现另一种办法是可以的。
先在左侧项目区选择要插入的片段,点击右键选择“复制”,
再在右侧快捷图标菜单里面点击的第一个箭头“选择工具”,然后再需要插入的地方当出现向右的红箭头时点击鼠标左键,然后在顶部“剪辑”菜单选择“插入”选项即可插入该段视频并让后面已存在的视频整体后移。

常用域名记录

bilibili.com
hdslb.com
bilibili.cn
bilivideo.com
bilivideo.cn
biliapi.com
biliapi.net
apple.com
aaplimg.com
mzstatic.com
icloud.com
akamaiedge.net
digicert.com
ixigua.com
toutiao.com
douyin.com
tmall.com
taobao.com
alimama.com
alipay.com
wifizoo.net
qingshuxuetang.com
chinafix.com
oray.com
cpu-world.com
docker.io
cpu-upgrade.com
lastpass.com
intel.com
acwifi.net
synology.com
chinafix.com

Git回滚代码到某个commit

git reset –hard HEAD^ 回退到上个版本
git reset –hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前
git reset –hard commit_id 退到/进到 指定commit的sha码

强推到远程:

git push origin HEAD –force

简单记录一下青龙面板的设置

如何部署就不赘述了,网上很多文章都有介绍。
今天早上发现自制的黑铁威马NAS的内存占用达到了70%,(安装的是一根2G的内存条),再一看发现是docker的容器很吃内存。
我运行了一个librespeed测速服务器,一个自动签到,一个青龙面板。可以看到青龙面板和自动签到就占用了接近1.2GB的内存。

然后拆机更换为一根4GB的内存,由于当初配置的时候设置的镜像是不自动启动的,所以必须手工启动它们。结果手贱在自动重新启动应用前面打了对勾并按下了应用,等了好久还是打不开青龙面板的页面,再一看青龙的容器居然被删除了!

瞬间一万个羊驼从脑海奔过,这特么的真是一个手贱导致要浪费大把时间的节奏啊,关键是距上一次从0开始设置已经过去几个月时间了,都已经忘记了具体操作步骤了。
没办法,这次就多花点时间精力记录一下,免得下次设置时候又要浪费时间搜索爬文。
青龙面板运行后设置完账户密码,登录到面板界面。
然后在ssh下面用root用户运行
docker ps
显示所有容器。
然后选择你需要进入的容器名称,比如我的青龙是f8ed1db3309c
运行docker exec -it f8ed1db3309c /bin/bash 进入青龙容器
然后运行ql check,坐等一两分钟,会输出下面一堆信息。
/ql/shell/check.sh: line 94: /root/.bashrc: No such file or directory
## 开始执行… 2022-10-18 08:23:34

=====> 开始检测

changed 1 package in 21s
Progress: resolved 1, reused 0, downloaded 0, added 0
Progress: resolved 3, reused 0, downloaded 3, added 0
Progress: resolved 4, reused 0, downloaded 3, added 0
Progress: resolved 35, reused 0, downloaded 17, added 0
Progress: resolved 54, reused 0, downloaded 34, added 0
Progress: resolved 83, reused 2, downloaded 57, added 0
WARN  deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
Progress: resolved 127, reused 7, downloaded 95, added 0
Progress: resolved 174, reused 14, downloaded 133, added 0
Packages: +3 -2
+++–
Progress: resolved 198, reused 17, downloaded 179, added 3, done

/root/.local/share/pnpm/global/5:
– pm2 5.2.0
+ pm2 5.2.2

WARN  Issues with peer dependencies found
.
└─┬ ts-node 10.9.1
└── ✕ missing peer @types/node@”*”
Peer dependencies that should be installed:
@types/node@”*”

Done in 10.9s
—> 1. 复制通知文件

—> 复制一份 /ql/sample/notify.py 为 /ql/data/scripts/notify.py

‘/ql/sample/notify.py’ -> ‘/ql/data/scripts/notify.py’

—> 复制一份 /ql/sample/notify.js 为 /ql/data/scripts/sendNotify.js

‘/ql/sample/notify.js’ -> ‘/ql/data/scripts/sendNotify.js’
—> 通知文件复制完成

—> 2. 复制nginx配置文件

‘/ql/docker/nginx.conf’ -> ‘/etc/nginx/nginx.conf’
‘/ql/docker/front.conf’ -> ‘/etc/nginx/conf.d/front.conf’
—> 配置文件复制完成

=====> 检测面板

<!DOCTYPE html>
<html>
<head>
<meta charset=”utf-8″ />
<meta
name=”viewport”
content=”width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no”
/>
<link rel=”shortcut icon” type=”image/x-icon” href=”/images/favicon.svg” />
<link rel=”stylesheet” href=”/umi.1a1e4a3d.css” />
<script>
window.routerBase = “/”;
</script>
<script>
//! umi version: 3.5.34
</script>
</head>
<body>
<div id=”root”></div>

<script src=”https://gw.alipayobjects.com/os/lib/react/16.13.1/umd/react.production.min.js”></script>
<script src=”https://gw.alipayobjects.com/os/lib/react-dom/16.13.1/umd/react-dom.production.min.js”></script>
<script src=”/umi.171fdc21.js”></script>
</body>
</html>

=====> 面板服务启动正常

=====> 检测nginx服务
94 root 0:00 nginx: master process nginx -c /etc/nginx/nginx.conf
95 root 0:00 nginx: worker process
96 root 0:00 nginx: worker process

=====> nginx服务正常

—> pm2日志
2022-10-18T07:26:42: info: ✌️ DB loaded
2022-10-18T07:26:42: info: ✌️ Init file down
2022-10-18T07:26:43: info: ✌️ Sentry loaded
2022-10-18T07:26:45: info: ✌️ Dependency Injector loaded
2022-10-18T07:26:45: info: ✌️ Express loaded
2022-10-18T07:26:45: info: ✌️ init data loaded
2022-10-18T07:26:45: info: ✌️ link deps loaded
2022-10-18T07:26:45: info: ✌️ init task loaded
2022-10-18T07:26:46: info: ✌️ Sock loaded
2022-10-18T07:26:46: info: [创建interval任务],任务ID: token,任务名: 生成token,执行命令: node /ql/static/build/token.js
2022-10-18T07:26:46: debug: ✌️ Back server launched on port 5600
2022-10-18T07:26:47: info: 任务 node /ql/static/build/token.js 进程id: 228 退出,退出码 0
2022-10-18T08:16:49: info: [取消定时任务],任务名:KR
2022-10-18T08:16:49: info: [创建cron任务],任务ID: 1,cron: 0 1 * * *,任务名: KR,执行命令: ql repo “https://github.com/KingRan/KR.git” “” “” “” “” “”
2022-10-18T08:17:12: error: 执行任务 ql repo “https://github.com/KingRan/KR.git” “” “” “” “” “” 失败,时间:2022-10-18 8:17:12, 错误信息:”Cloning into ‘/ql/data/repo/KingRan_KR’…\n”
2022-10-18T08:18:59: info: 任务 task KingRan_KR/h5st.ts 进程id: 10679 退出,退出码 0
2022-10-18T08:19:17: info: 任务 task KingRan_KR/jd_bean_change_pro.js 进程id: 12067 退出,退出码 0
2022-10-18T08:23:15: info: 任务 ql repo “https://github.com/KingRan/KR.git” “” “” “” “” “” 进程id: 239 退出,退出码 0

=====> 检测后台

{“code”:401,”message”:”jwt malformed”}

=====> 后台服务启动正常

启动面板服务

启动定时任务服务

启动公开服务

=====> 检测结束

## 执行结束… 2022-10-18 08:24:20 耗时 46 秒

 
运行之后应该就解决了脚本的依赖关系的问题。不用手工一个个去设置了。
再然后去青龙面板添加名称为JD_COOKIE的变量,填入你的cookie即可,至于如何获取京东cookie,大家自行搜索爬文,这里就不赘述了。
再接下来去青龙面板的订阅管理里面按下图添加KR库然后运行一下即可,各个脚本就会被添加到定时任务里面。

对了,在运行订阅管理脚本之前去青龙面板的配置文件里,改一下下面这个参数即可,加上ts。
## ql repo命令拉取脚本时需要拉取的文件后缀,直接写文件后缀名即可
RepoFileExtensions=”js py ts”

搞定。

20221021 update
还是需要在青龙面板里面手工安装依赖的
NodeJs 依赖库
crypto-js
prettytable
dotenv
jsdom
date-fns
tough-cookie
tslib
ws@7.4.3
ts-md5
jsdom -g
jieba
fs
form-data
json5
global-agent
png-js
@types/node
require
typescript
js-base64
axios
moment
got
md5
request
download
tunnel
ws
qrcode-terminal

Python3 依赖库
requests
canvas
ping3
jieba
aiohttp

Linux 依赖库安装失败,不清楚是什么情况。
bizCode
bizMsg
lxml

WIN8升级WIN8.1之后无法激活的问题

升级过程中随便找了个码填进去了,结果升级成功之后系统无法激活。
路由器已经安装了kms server。
使用如下脚本成功搞定。
rem Win 8.1 pro
@echo off
echo.
echo 等待“操作完成按任意键退出程序!”即可退出。
echo.
echo 激活过程会有弹窗,稍等几秒钟!
echo.
slmgr -ipk GCRJD-8NW9H-F2CDX-CCM8D-9D6T9
slmgr -skms 192.168.2.1
Timeout /t 30
slmgr -ato
echo.
echo 操作完成按任意键退出程序!
echo.
pause >nul
exit
关键在于下面这个激活码,如果选择不对的话,再运行脚本也是无法激活的。
Windows 8.1 Professional
GCRJD-8NW9H-F2CDX-CCM8D-9D6T9
参考链接 https://www.tuziang.com/combat/980.html

关闭英特尔显示器节能技术(Intel DPST)避免笔记本使用电池时打开深色页面屏幕变暗

在笔记本拔掉电源只使用电池的时候常会遇到屏幕上是深色页面的时候显示器渐渐变暗的情况,令人烦不胜烦。一开始以为是微软的锅,结果一番查询之后发现是由于英特尔的显示器节能技术(Intel Display Power Saving Technology, Intel DPST)技术捣的鬼。
解决办法也很简单:
用Win+R快捷键呼出运行,输入regedit之后确定打开注册表编辑器。定位到:
“计算机\HKEY_LOCALMACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0001”(也可能在0000、0002项目下,重点是下面标粗的项目名字)
里的名称为“FeatureTestControl”的REGDWORD项目。如果是8200则修改为8210,如果是9240就修改为9250,(注意是十六进制的数值。)以此类推。
之后,重启电脑即可。
如果十六进制是F800那么就改成F810

https://zhuanlan.zhihu.com/p/383082737

PR里面如何将插入的图片设置为全屏

图片的分辨率是有要求的,取决于拍摄设备的分辨率,几乎所有的拍摄设备,视频大小一般都是1080p的整数倍。所以需要将图片剪切为1080分辨率的整数倍,图片才能在pr里面全屏,否则由于分辨率不通肯定是填不满屏幕的。
1080P的分辨率为1920×1080,在ps里面选择剪切工具,然后设置宽度1920,高度1080回车,即可剪切这个比例的图片了。
然后将剪切出来的图片导入到pr里面,在图片轨道上面点击右键,选择缩放为帧大小即可。