一年份懒人日志

多核&多线程工具
  将线程通讯改通过redis订阅发布推送消息. 这样可以在任何地方, 直接控制某个线程并运行
websocket请求同步化处理(只限于chrome内核等浏览器)
  约定一个请求ID
  通过sleep休眠等待
  通过async/await 进行请求过程合并
oracle 获取ddl(没有会报错)
select dbms_metadata.get_ddl ( 'TABLE', table_name, owner)  from dual;

select dbms_metadata.get_dependent_DDL('CONSTRAINT', table_name, owner) from dual;

select dbms_metadata.get_dependent_DDL('COMMENT', table_name, owner) from dual;

select dbms_metadata.get_dependent_DDL('INDEX', table_name, owner) from dual;

select dbms_metadata.get_dependent_DDL('TRIGGER', table_name, owner) from dual;
jadx 部分反编译不出来
  设置中, 勾选显示不一样
SVN 指定文件导出&更新
  svn co https://svn.example.com/trunk/myfolder/ --depth empty

  svn up myfolder/index.html
SVN 命令行帐号密码操作
  --non-interactive --no-auth-cache --username XXXX --password YYYY
history 时间
  HISTTIMEFORMAT="%d/%m/%y %T " // 先执行

  history
Idea 引用方式, 打包jar (不直接打包成一个jar文件, 避免签名验证错误问题:in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes)
  注:不能直接打包成一个jar, 也不能直接删除jar中的SF文件, 不然会导致其它问题
  file->project structure->Artifacts->"+"->Jar->from modules from dependencies->copy to the output directoryxxxx
oracle 索引检测&修复
  select index_name from  user_indexes where status <> 'VALID';
  alert index index_name rebuild online;
oracle linux 下报错:Oracle Client library: "libclntsh.so: cannot open shared object file
bytenode 编译
宝塔NGINX版本获取反向代理实际IP
  lua修改无效, 改走自定义反向代理IP名称, 并在防火墙的CDN中设置. 这样在不外泄的情况下. 可以有效进行拦截. 避免白名单攻击问题
json结构稳定处理
  json-stable-stringify
nodejs Uncaught SyntaxError: Invalid or unexpected
  版本异常, 需要高版本才支持一些特殊语法,如"#"
nodejs 性能分析
  easy-monitory 如果低版本启动报错, 则需要将egg-mysql降低版本至3.0.0 
svn 同步报错 :svnsync - couldn't get lock on destination repos
  svnsync sync xxxxxx --steal-lock
npm 打包到前端
  https://browserify.org/#install
  进入目标目录, 执行打包命令:browserify main.js -o bundle.js
    代码压缩:https://minify-js.com/?module=on&module=on
  前端页面引用目标文件, 执行功能逻辑
语雀makedown 图片显示异常
  <meta name="referrer" content="no-referrer" />
sql to mongodb query
  https://www.javainuse.com/sql2mongo
mysql 查询走索引 delete不走索引
  https://blog.csdn.net/weixin_44742132/article/details/120574252
oracle 删除不走索引, 查询走处理
  查询出来的数据, 再给delete in
win server 2019 安装 .net 3.5
  https://www.cnblogs.com/wencg/p/13450794.html
  在确认界面, 会弹出指定备用路径, 指定路径安装即可. 其它方式均失败
阿里跨帐号内网互通
  VPC https://help.aliyun.com/zh/vpc/user-guide/create-and-manage-vpc-peering-connection
AP+AC 组网 https://www.ruijie.com.cn/jszl/90176/
oracle 文件损坏 ORA-00600:内部错误代码,[kcratr_nab_less_than_odr]故障解决
  https://blog.csdn.net/ANXIN997483092/article/details/78327458
服务器证书过期:SSL certificate problem: certificate has expired
yum install -y ca-certificates
update-ca-trust force-enable
sudo ln -s /etc/ssl/your-cert.pem /etc/pki/ca-trust/source/anchors/your-cert.pem
update-ca-trust
反编译
  https://wooyun.js.org/drops/%E5%8F%8D%E7%BC%96%E8%AF%91%E7%B3%BB%E5%88%97%E6%95%99%E7%A8%8B(%E4%B8%8A).html
程序生成bat脚本运行报错
  utf-8编码, \n替换成\r\n(编辑器复制内容时, 不清楚为什么会修正成\n, 导致运行报错)
  通过16进制对比, 才能发现问题.
window server 2008 install datax
  pyhont 3.8 64位异常, python 3.8 32可执行, 但是datax报错"不是有效32位", 需要切成python 2.7 
nodejs ftp 主动模式 (需要使用这个库)
  https://www.example-code.com/nodejs/ftp.asp
linux 快速监听端口(用于服务器外检查防火墙是否有开)
  nc -lp 端口 (-lk监听端口, 就一起断开, 测试不方便)
通过使用sp_configure 启用'Ole Automation Procedures'
sp_configure 'show advanced options', 1;  

GO  

RECONFIGURE;  

GO  

sp_configure 'Ole Automation Procedures', 1;  

GO  

RECONFIGURE;  

GO 
mssql 触发器, 批量修改异常
  通过游标批量执行 https://developer.aliyun.com/article/289965
mssql 日志占用分析
  select * from sys.fn_dblog(null,null)

 

异步async/同步await

image

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


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

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

即:

同步=async+await

异步=async

两年份懒人笔记…

SVN Can't revert 'mydir' without reverting parent
  恢复冲突, 合并分支和被合并分支目录不一致
  命令:svn revert . --depth infinity
speex 转mp3
  https://github.com/gamelife1314/wechat-speex-declib
远程桌面速度优化
  http://www.ltidc.com/news/content/14.html
查询https信息
  -- openssl s_client -connect xxx.com:443 -status
  curl -I -v --tlsv1.2  xxx.com
  openssl speed -evp aes-128-cbc
VMware Workstation 与 Device/Credential Guard 不兼容. 禁用后依旧无效
  控制面板->关闭功能->Hyper-V 关闭
nodejs代码加密
  bytenode -c xxx.js 编译js
  requre('bytenode'); let xxx=require('xxx.jsc'); 引入js
  puppeteer函数转字符无效, 导致报错:passed function is not well-serializable! (通过eval包裹)
window build 升级报错
  改win10易升(实际只升级到19044, 如果直接在后台点更新, 会显示更新至H2xx但一致失败)
openssl 升级
  https://gist.github.com/fernandoaleman/5459173e24d59b45ae2cfc618e20fe06
  yum install perl-Test-Simple
443端口 time_wait 太多
  统计建立连接数:netstat -na | grep ESTABLISHED | awk {print$5} | awk -F: {print$1} | sort | uniq -c | sort -r +0n
  统计80端口连接, 按IP统计:netstat -anlp | grep 80 | grep tcp | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | head -n20 
  统计443端口连接数(等待和建立都在):netstat -anlp | grep 443 | wc -l
  统计各状态:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 
  修改建立连接超时时间:https://serverfault.com/questions/23385/huge-amount-of-time-wait-connections-says-netstat
CPU 和 CPU负载
  https://cloud.tencent.com/developer/article/1722207
linux 启动详解
  https://cloud.tencent.com/developer/article/1114481
vim 运行当前文件
  "! %:p"
nps 80端口占用修改失败
  nps默认配置文件为C:/probxxx/nps 非当前路径
SVN 提交, 更新, 导出正常, 合并时提示不是同个工作路径
  检查大小写问题
php mysql 批量执行/查询SQL
  https://www.runoob.com/php/func-mysqli-multi-query.html
nodejs Symbol 对象字段
  data[Symbol(kData)]=>data.data
oracle window 系统	"SYSTEM01.DBF" 文件异常, 且使用各种修复命令一直无法恢复
  磁盘整理后, 文件恢复"alter database open resetlogs;". 即这次异常为文件异常, 而不是文件数据异常
"C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" -T ws start "F:\vm\Windows10.test\Windows 10 x64.vmx" nogui
查询域名解析TXT值
  nslookup -q=txt xxxx
SVN 获取当前分支日志, 同时不显示其它分支原始日志
  svn log --stop-on-copy -g
find 正则查询24小时修改文件
  find ./ -mtime 0 ! -regex  '.+runtime.+' ! -regex '.+public.+'
宝塔 pureftp 走TLS
  /www/server/pure-ftpd/etc 添加一个TLS文件, 内容为1, 参数意思见配置文件内容
  /etc/ssl/private/pure-ftpd.pem 默认提供的公钥文件(最好自己重新生成一个)
  ftp 走TLS模式, 然后导入公钥
  如果被动模式IP超时, 可强制指定外网IP:pure-ftpd.conf => ForcePassiveIP配置外网即可, 默认会使用内网,导致超时
ssh socks5 代理
   ssh -D 0.0.0.0:1080  www.xxx.com 本地的1080端口数据通过www.xxx.com服务器进行转发
nvm vm use 一直报错exit status 1 或 exit status 145 问题(nodejs安装路径中有空格, 重新安装修改路径即可)
node-gyp 编译报错, 需要使用vs 2017版本
  https://github.com/nodejs/node-gyp
  gyp诡异代理端口8118无法访问问题, npm config get proxy为null, 直接设置npm config set proxy "http://localhost:8118" 就回复正常
  gyp编译详解 https://juejin.cn/post/6963147704075550757
npm 运行异常, 卸载, 清理appdata/下npm文件和cache, 再重新安装, 诡异的gyp也回复正常
sqlexpress安装后, 服务启动正常但无法访问1433端口
  在配置管理器中手动写死端口, 再重启服务
node-gyp 出现代理异常, 且设置了npm set proxy http://localhost:8118, 为python走了代理导致
  set http_proxy=http://localhost:8118
npm autoit运行版本
  node 10.x python 2.7.x
挂新磁盘
  df -lhT 查看磁盘文件系统类型
  mkfs.xfs /dev/sdb1 -f 格式化成目标文件系统
逻辑卷扩容
  https://www.cnblogs.com/wy20110919/p/9151670.html
  需要根据不同类型选择不同的格式化工具
  如果已经建立一分组/dev/sda2, 直接扩容视乎不行, 通过新建一个/dev/sda3, 进入同一逻辑组, 然后再扩容给具体逻辑卷
  xfs_growfs 查看后, 才能激活对应逻辑分区 
svn 转移, win直接复制到linux下存在仓库版本格式差异, 导出再导入就不会
  svnadmin dump xxx > xxx.dump 支持按版本号导出
  svnadmin dump xxx -r xx:xx > xxx.dump
  svnadmin create xxx 需要建立一个空的库
  svnadmin load xxx < xxx.dump
svn 异机备份
  svnsync init 本地仓 目标仓 --allow-non-empty  激活关系
  可以创建后, 直接走导入方式, 再来建立关系, 或者通过关系自动导入
  svnsync sync 本地仓
npm config delete xxx 无效
  npm config --global rm xxx  需要删除全局才有效
前端混淆数据方案
  https://www.helloweba.net/javascript/631.html
  https://obfuscator.io/
  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前缀)