一年份懒人日志

001多核&多线程工具
002  将线程通讯改通过redis订阅发布推送消息. 这样可以在任何地方, 直接控制某个线程并运行
003websocket请求同步化处理(只限于chrome内核等浏览器)
004  约定一个请求ID
005  通过sleep休眠等待
006  通过async/await 进行请求过程合并
007oracle 获取ddl(没有会报错)
008select dbms_metadata.get_ddl ( 'TABLE', table_name, owner)  from dual;
009 
010select dbms_metadata.get_dependent_DDL('CONSTRAINT', table_name, owner) from dual;
011 
012select dbms_metadata.get_dependent_DDL('COMMENT', table_name, owner) from dual;
013 
014select dbms_metadata.get_dependent_DDL('INDEX', table_name, owner) from dual;
015 
016select dbms_metadata.get_dependent_DDL('TRIGGER', table_name, owner) from dual;
017jadx 部分反编译不出来
018  设置中, 勾选显示不一样
019SVN 指定文件导出&更新
020  svn co https://svn.example.com/trunk/myfolder/ --depth empty
021 
022  svn up myfolder/index.html
023SVN 命令行帐号密码操作
024  --non-interactive --no-auth-cache --username XXXX --password YYYY
025history 时间
026  HISTTIMEFORMAT="%d/%m/%y %T " // 先执行
027 
028  history
029Idea 引用方式, 打包jar (不直接打包成一个jar文件, 避免签名验证错误问题:in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes)
030  注:不能直接打包成一个jar, 也不能直接删除jar中的SF文件, 不然会导致其它问题
031  file->project structure->Artifacts->"+"->Jar->from modules from dependencies->copy to the output directoryxxxx
032oracle 索引检测&修复
033  select index_name from  user_indexes where status <> 'VALID';
034  alert index index_name rebuild online;
035oracle linux 下报错:Oracle Client library: "libclntsh.so: cannot open shared object file
036bytenode 编译
037宝塔NGINX版本获取反向代理实际IP
038  lua修改无效, 改走自定义反向代理IP名称, 并在防火墙的CDN中设置. 这样在不外泄的情况下. 可以有效进行拦截. 避免白名单攻击问题
039json结构稳定处理
040  json-stable-stringify
041nodejs Uncaught SyntaxError: Invalid or unexpected
042  版本异常, 需要高版本才支持一些特殊语法,如"#"
043nodejs 性能分析
044  easy-monitory 如果低版本启动报错, 则需要将egg-mysql降低版本至3.0.0
045svn 同步报错 :svnsync - couldn't get lock on destination repos
046  svnsync sync xxxxxx --steal-lock
047npm 打包到前端
048  https://browserify.org/#install
049  进入目标目录, 执行打包命令:browserify main.js -o bundle.js
050    代码压缩:https://minify-js.com/?module=on&module=on
051  前端页面引用目标文件, 执行功能逻辑
052语雀makedown 图片显示异常
053  <meta name="referrer" content="no-referrer" />
054sql to mongodb query
056mysql 查询走索引 delete不走索引
058oracle 删除不走索引, 查询走处理
059  查询出来的数据, 再给delete in
060win server 2019 安装 .net 3.5
062  在确认界面, 会弹出指定备用路径, 指定路径安装即可. 其它方式均失败
063阿里跨帐号内网互通
066oracle 文件损坏 ORA-00600:内部错误代码,[kcratr_nab_less_than_odr]故障解决
068服务器证书过期:SSL certificate problem: certificate has expired
069yum install -y ca-certificates
070update-ca-trust force-enable
071sudo ln -s /etc/ssl/your-cert.pem /etc/pki/ca-trust/source/anchors/your-cert.pem
072update-ca-trust
073反编译
075程序生成bat脚本运行报错
076  utf-8编码, \n替换成\r\n(编辑器复制内容时, 不清楚为什么会修正成\n, 导致运行报错)
077  通过16进制对比, 才能发现问题.
078window server 2008 install datax
079  pyhont 3.8 64位异常, python 3.8 32可执行, 但是datax报错"不是有效32位", 需要切成python 2.7
080nodejs ftp 主动模式 (需要使用这个库)
082linux 快速监听端口(用于服务器外检查防火墙是否有开)
083  nc -lp 端口 (-lk监听端口, 就一起断开, 测试不方便)
084通过使用sp_configure 启用'Ole Automation Procedures'
085sp_configure 'show advanced options', 1; 
086 
087GO 
088 
089RECONFIGURE; 
090 
091GO 
092 
093sp_configure 'Ole Automation Procedures', 1; 
094 
095GO 
096 
097RECONFIGURE; 
098 
099GO
100mssql 触发器, 批量修改异常
101  通过游标批量执行 https://developer.aliyun.com/article/289965
102mssql 日志占用分析
103  select * from sys.fn_dblog(null,null)

 

异步async/同步await

image

更正下同步和异步的话述. 容易出现混淆.


async 是异步. await是等待/同步, 异步为并行任务, 同步同步的是执行顺序, 但是node的事件池机制较特殊. promise执行过程为异步, 但理解上和写法上, 变成了同步.

日常口语上经常说同步, 导致async和理解上产生歧异. 实际async目的是异步. 但是习惯性加await, 效果同步. 导致习惯反应上, 将async当成了同步来理解. 不加的情况下,就是异步。

即:

同步=async+await

异步=async

两年份懒人笔记…

01SVN Can't revert 'mydir' without reverting parent
02  恢复冲突, 合并分支和被合并分支目录不一致
03  命令:svn revert . --depth infinity
04speex 转mp3
06远程桌面速度优化
08查询https信息
09  -- openssl s_client -connect xxx.com:443 -status
10  curl -I -v --tlsv1.2  xxx.com
11  openssl speed -evp aes-128-cbc
12VMware Workstation 与 Device/Credential Guard 不兼容. 禁用后依旧无效
13  控制面板->关闭功能->Hyper-V 关闭
14nodejs代码加密
15  bytenode -c xxx.js 编译js
16  requre('bytenode'); let xxx=require('xxx.jsc'); 引入js
17  puppeteer函数转字符无效, 导致报错:passed function is not well-serializable! (通过eval包裹)
18window build 升级报错
19  改win10易升(实际只升级到19044, 如果直接在后台点更新, 会显示更新至H2xx但一致失败)
20openssl 升级
22  yum install perl-Test-Simple
23443端口 time_wait 太多
24  统计建立连接数:netstat -na | grep ESTABLISHED | awk {print$5} | awk -F: {print$1} | sort | uniq -c | sort -r +0n
25  统计80端口连接, 按IP统计:netstat -anlp | grep 80 | grep tcp | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | head -n20 
26  统计443端口连接数(等待和建立都在):netstat -anlp | grep 443 | wc -l
27  统计各状态:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
29CPU 和 CPU负载
31linux 启动详解
33vim 运行当前文件
34  "! %:p"
35nps 80端口占用修改失败
36  nps默认配置文件为C:/probxxx/nps 非当前路径
37SVN 提交, 更新, 导出正常, 合并时提示不是同个工作路径
38  检查大小写问题
39php mysql 批量执行/查询SQL
41nodejs Symbol 对象字段
42  data[Symbol(kData)]=>data.data
43oracle window 系统    "SYSTEM01.DBF" 文件异常, 且使用各种修复命令一直无法恢复
44  磁盘整理后, 文件恢复"alter database open resetlogs;". 即这次异常为文件异常, 而不是文件数据异常
45"C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" -T ws start "F:\vm\Windows10.test\Windows 10 x64.vmx" nogui
46查询域名解析TXT值
47  nslookup -q=txt xxxx
48SVN 获取当前分支日志, 同时不显示其它分支原始日志
49  svn log --stop-on-copy -g
50find 正则查询24小时修改文件
51  find ./ -mtime 0 ! -regex  '.+runtime.+' ! -regex '.+public.+'
52宝塔 pureftp 走TLS
53  /www/server/pure-ftpd/etc 添加一个TLS文件, 内容为1, 参数意思见配置文件内容
54  /etc/ssl/private/pure-ftpd.pem 默认提供的公钥文件(最好自己重新生成一个)
55  ftp 走TLS模式, 然后导入公钥
56  如果被动模式IP超时, 可强制指定外网IP:pure-ftpd.conf => ForcePassiveIP配置外网即可, 默认会使用内网,导致超时
57ssh socks5 代理
58   ssh -D 0.0.0.0:1080  www.xxx.com 本地的1080端口数据通过www.xxx.com服务器进行转发
59nvm vm use 一直报错exit status 1 或 exit status 145 问题(nodejs安装路径中有空格, 重新安装修改路径即可)
60node-gyp 编译报错, 需要使用vs 2017版本
62  gyp诡异代理端口8118无法访问问题, npm config get proxy为null, 直接设置npm config set proxy "http://localhost:8118" 就回复正常
64npm 运行异常, 卸载, 清理appdata/下npm文件和cache, 再重新安装, 诡异的gyp也回复正常
65sqlexpress安装后, 服务启动正常但无法访问1433端口
66  在配置管理器中手动写死端口, 再重启服务
67node-gyp 出现代理异常, 且设置了npm set proxy http://localhost:8118, 为python走了代理导致
68  set http_proxy=http://localhost:8118
69npm autoit运行版本
70  node 10.x python 2.7.x
71挂新磁盘
72  df -lhT 查看磁盘文件系统类型
73  mkfs.xfs /dev/sdb1 -f 格式化成目标文件系统
74逻辑卷扩容
76  需要根据不同类型选择不同的格式化工具
77  如果已经建立一分组/dev/sda2, 直接扩容视乎不行, 通过新建一个/dev/sda3, 进入同一逻辑组, 然后再扩容给具体逻辑卷
78  xfs_growfs 查看后, 才能激活对应逻辑分区
79svn 转移, win直接复制到linux下存在仓库版本格式差异, 导出再导入就不会
80  svnadmin dump xxx > xxx.dump 支持按版本号导出
81  svnadmin dump xxx -r xx:xx > xxx.dump
82  svnadmin create xxx 需要建立一个空的库
83  svnadmin load xxx < xxx.dump
84svn 异机备份
85  svnsync init 本地仓 目标仓 --allow-non-empty  激活关系
86  可以创建后, 直接走导入方式, 再来建立关系, 或者通过关系自动导入
87  svnsync sync 本地仓
88npm config delete xxx 无效
89  npm config --global rm xxx  需要删除全局才有效
90前端混淆数据方案
93  php 加密数据传输到前端, 前端des解密获取, 同时 解密过程包含函数部分全部通过obfuscator进行混淆处理(只能加大恶心人的程度)

 

把一个 Node.js web 应用程序给 Docker 化

https://nodejs.org/zh-cn/docs/guides/nodejs-docker-webapp/

nodejs镜像过大问题, 改走slim版本
容器导出运行报错:docker run -it xxxxx /bin/bash
docker 查询命令不被截断:docker ps –no-trunc
windows 下dockertop启动异常, 右键管理员运行
docker镜像删除被占用问题:docker ps -a 显示所有镜像
删除所有隐藏镜像:docker ps -a | awk ‘{print substr($1,1,4)}’ | xargs docker rm
docker打包:docker build . -t 镜像名
启动和绑定指定端口:docker run -p 8282:8282 -d 镜像
进入容器:docker exec -it xxxx(支持四个id前缀)