Readable

将对象转换为字符串

落花浮王杯 提交于 2020-10-03 07:18:01
问题: How can I convert a JavaScript object into a string? 如何将JavaScript对象转换为字符串? Example: 例: var o = {a:1, b:2} console.log(o) console.log('Item: ' + o) Output: 输出: Object { a=1, b=2} // very nice readable output :) 对象{a = 1,b = 2} //非常好的可读输出:) Item: [object Object] // no idea what's inside :( Item:[object Object] //不知道里面是什么:( 解决方案: 参考一: https://stackoom.com/question/NY8p/将对象转换为字符串 参考二: https://oldbug.net/q/NY8p/Converting-an-object-to-a-string 来源: oschina 链接: https://my.oschina.net/stackoom/blog/4318291

运维救火必备:问题排查与系统优化手册(结合惨案现身说法)

与世无争的帅哥 提交于 2020-08-19 17:32:11
软件工程领域存在一个共识:维护代码所花费的时间要远多于写代码。而整个代码维护过程中,最惊心动魄与扣人心弦的部分,莫过于问题排查(Trouble-shooting)了。特别是那些需要 7x24 小时不间断维护在线业务的一线服务端程序员们,大大小小的问题排查线上救火早已成为家常便饭,一不小心可能就吃成了自助餐 —— 竖着进躺着出,吃不了也兜不住。 本文分享作者在服务端问题排查方面的一些经验,包括常见问题、排查流程、排查工具,结合实际项目中发生过的惨痛案例进行现身说法。 一 、问题排查 1、常见问题 Know Your Enemy:知己知彼,百战不殆。 日常遇到的大部分问题,大致可以归到如下几类: 逻辑缺陷:e.g. NPE、死循环、边界情况未覆盖。 性能瓶颈:e.g. 接口 RT 陡增、吞吐率上不去。 内存异常:e.g. GC 卡顿、频繁 FGC、内存泄露、OOM。 并发/分布式:e.g. 存在竞争条件、时钟不同步。 数据问题:e.g. 出现脏数据、序列化失败。 安全问题:e.g. DDoS 攻击、数据泄露。 环境故障:e.g. 宿主机宕机、网络不通、丢包。 操作失误:e.g. 配置推错、删库跑路(危险动作,请勿尝试..)。 上述分类可能不太完备和严谨,想传达的点是:你也可以积累一个这样的 checklist,当遇到问题百思不得其解时,耐心过一遍,也许很快就能对号入座。 2、排查流程

本地创建cli模版

我怕爱的太早我们不能终老 提交于 2020-08-18 21:05:39
nuxt基础模版不带axios封装和基础插件引用,js-cookie等,把自己常用的项目结构作为模版,使用代码生成。 步骤 1.创建cli文件夹名称,即每次执行的命令nuxtCli 2.使用yarn init初始化项目 3.修改package.json,添加bin,指向cli.js 4.创建cli。js #!/usr/bin/env node // NODE CLI 应用入口文件必须要有这样的文件名 const path = require('path') const inquirer = require('inquirer') const fs = require('fs') var stat=fs.stat; inquirer.prompt([ { type: 'input', name: 'name', message: 'Project name?' } ]).then(anwsers => { // console.log(anwsers) // { name: 'myName' } // 根据用户回答的结果生成文件 //模板目录 const temDir = path.join(__dirname,'nuxtCli') //目标目录 const destDir = process.cwd() exists(temDir,destDir,copy) }) var copy

为什么 Redis 单线程能达到百万+QPS?

拟墨画扇 提交于 2020-08-18 08:50:11
作者:在江湖中coding https://juejin.im/post/5e6097846fb9a07c9f3fe744 性能测试报告 查看了下阿里 Redis 的性能测试报告如下,能够达到数十万、百万级别的 QPS (暂时忽略阿里对 Redis 所做的优化),我们从 Redis 的设计和实现来分析一下 Redis 是怎么做的。 Redis的设计与实现 其实 Redis 主要是通过三个方面来满足这样高效吞吐量的性能需求 高效的数据结构 多路复用 IO 模型 事件机制 1、高效的数据结构 Redis 支持的几种高效的数据结构 string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合) 以上几种对外暴露的数据结构它们的底层编码方式都是做了不同的优化的,不细说了,不是本文重点。 2、多路复用 IO 模型 假设某一时刻与 Redis 服务器建立了 1 万个长连接,对于阻塞式 IO 的做法就是,对每一条连接都建立一个线程来处理,那么就需要 1万个线程,同时根据我们的经验对于 IO 密集型的操作我们一般设置,线程数 = 2 * CPU 数量 + 1,对于 CPU 密集型的操作一般设置线程 = CPU 数量 + 1。 当然各种书籍或者网上也有一个详细的计算公式可以算出更加合适准确的线程数量,但是得到的结果往往是一个比较小的值,像阻塞式 IO

Vsftpd 虚拟用户配置参考---终极版

别来无恙 提交于 2020-08-18 07:37:31
Vsftpd 虚拟用户配置文档 一、主要文件列表 虚拟用户列表 account.txt 口令库文件 /etc/vsfptd/account.db PAM 认证 /etc/pam.d/vs_1 主配置文件 /etc/vsftpd.conf 虚拟用户配置文件 /etc/vsftpd/user_conf/aa 虚拟用户主目录 /home/vss/aa 二、 新建 vsftpd 的虚拟用户列表文件 vi account.txt aa 123123 bb 123123 说明:这个文件建立的位置自定义 三、 生成口令库文件 db_load -T -t hash -f ./account.txt /etc/vsftpd/account.db chmod 600 /etc/vsftpd/account.db 四、 建立 PAM 文件 vi /etc/pam.d/vs_1 auth required /lib/security/pam_userdb.so db=/etc/vsftpd/account account required /lib/security/pam_userdb.so db=/etc/vsftpd/account 说明:先查看系统中是否安装 Linux-PAM ,再判断 pam_userdb.so 文件是否存在,及其路径;注意 account 写法没有后缀。 五、

如何在Shell脚本中漂亮地打印JSON?

陌路散爱 提交于 2020-08-17 18:27:15
问题: Is there a (Unix) shell script to format JSON in human-readable form? 是否有(Unix)Shell脚本以易于理解的格式格式化JSON? Basically, I want it to transform the following: 基本上,我希望它可以转换以下内容: { "foo": "lorem", "bar": "ipsum" } ... into something like this: ...变成这样: { "foo": "lorem", "bar": "ipsum" } 解决方案: 参考一: https://stackoom.com/question/1Tb0/如何在Shell脚本中漂亮地打印JSON 参考二: https://oldbug.net/q/1Tb0/How-can-I-pretty-print-JSON-in-a-shell-script 来源: oschina 链接: https://my.oschina.net/u/3797416/blog/4296134

Linux中查看磁盘大小、文件大小、排序方法小结

余生颓废 提交于 2020-08-15 16:53:03
一,查看磁盘空间大小的命令:df df命令用于查看磁盘分区上的磁盘空间,包括使用了多少,还剩多少,默认单位是KB 命令: df -hl 结果如下: 结果每列的含义: 第一列Filesystem,磁盘分区 第二列Size,磁盘分区的大小 第三列Used,已使用的空间 第四列Avail,可用的空间 第五列Use%,已使用的百分比 第六列Mounted on,挂载点 解释一下后面的h和l参数,h是把显示的单位改成容易辨认的单位,不再是默认的KB了,而l参数表示只显示本地磁盘分区,不包含的分区比如其他服务器共享的磁盘。 如果我们去掉l参数: df -h 执行结果如下:   可以看到,和带着l参数的命令相比,执行的结果多了最下面一行,那是其他服务器的共享目录 下面附上df命令的全部参数使用说明: -a或--all:包含全部的文件系统; --block-size=<区块大小>:以指定的区块大小来显示区块数目; -h或--human-readable:以可读性较高的方式来显示信息; -H或--si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes; -i或--inodes:显示inode的信息; -k或--kilobytes:指定区块大小为1024字节; -l或--local:仅显示本地端的文件系统; -m或--megabytes

PE文件格式偏移参考

岁酱吖の 提交于 2020-08-15 02:42:21
在进行PE文件格式病毒分析的时候,经常要使用到PE文件格式的解析,尤其是对LoadPE形式的病毒的分析,经常要查看PE文件格式的偏移,特地从博客《 PE文件格式的偏移参考 》中转载收录一份,之前在网上也看到比较不错的有关PE文件偏移的博客,但忘了收录。在进行PE文件格式的病毒分析时,还会经常参考这篇博客《 PE文件格式学习笔记 》,博主关于PE文件格式的学习笔记写的不错,其他的参考书籍《加密与解密(第3版)》、《黑客免杀攻防》,顺便提一句《黑客免杀攻防》这本书关于PE文件格式的解析比较不错,但是错误也不少,整体来说这本书对于学习PC上的逆向分析和内核攻防还是很不错的。 Complete PE Offset Reference While there is a lot of data and various parts of the structure are at varying positions there are still a lot of useful fixed and relative offsets that will help when disassembling/examining PE files. Resource information and the such like are omitted - there are good tools

救火必备!问题排查与系统优化手册

点点圈 提交于 2020-08-14 01:36:27
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 阿里妹导读:软件工程领域存在一个共识:维护代码所花费的时间要远多于写代码。而整个代码维护过程中,最惊心动魄与扣人心弦的部分,莫过于问题排查(Trouble-shooting)了。特别是那些需要 7x24 小时不间断维护在线业务的一线服务端程序员们,大大小小的问题排查线上救火早已成为家常便饭,一不小心可能就吃成了自助餐 —— 竖着进躺着出,吃不了也兜不住。本文分享作者在服务端问题排查方面的一些经验,包括常见问题、排查流程、排查工具,结合实际项目中发生过的惨痛案例进行现身说法。 一 问题排查 1 常见问题 Know Your Enemy:知己知彼,百战不殆。 日常遇到的大部分问题,大致可以归到如下几类: 逻辑缺陷:e.g. NPE、死循环、边界情况未覆盖。 性能瓶颈:e.g. 接口 RT 陡增、吞吐率上不去。 内存异常:e.g. GC 卡顿、频繁 FGC、内存泄露、OOM 并发/分布式:e.g. 存在竞争条件、时钟不同步。 数据问题:e.g. 出现脏数据、序列化失败。 安全问题:e.g. DDoS 攻击、数据泄露。 环境故障:e.g. 宿主机宕机、网络不通、丢包。 操作失误:e.g. 配置推错、删库跑路(危险动作,请勿尝试..)。 上述分类可能不太完备和严谨,想传达的点是

Linux 目录详解

社会主义新天地 提交于 2020-08-13 04:00:33
和 Windows 一样,Linux 也有目录的概念。系统中众多的文件需要借助到目录进行存储与管理。我们下面对 Linux 系统中的目录结构以及经常使用到的概念进行一个完整介绍。 Linux 系统目录结构 在 Windows下,系统把硬盘划分为不同的磁盘分区,每个磁盘分配一个不同的盘符,比如 C:\、D:\ 等等。每个分区都单独存放自己的文件,有自己的根目录,比如 C:\、D:\ 就相当于 C 盘和 D 盘的根目录了。而 Linux 则是将整个硬盘统一管理,整个系统只有一个根目录 "/",所有的文件和目录都是在这个根目录下,它表示 Linux 文件系统的起点。另外要注意一点,Linux 中目录间的间隔使用的是斜线 (forward slash)"/",而 Windows中用的是反斜线 (back slash)"\"。 为了规范,绝大多数的 Linux 发行版本中 (参见 《这么多Linux版本,你究竟该怎么选择?》 )系统目录的机构都保持了一致。以 CentOS 7 为例,下面介绍一下常用的系统目录和它们的作用。 /root:超级用户 root 的家目录 /bin:是 Binary 的缩写,用于存放系统中常用的命令,任何用户都有权限执行 /boot:存放系统启动时所需要的文件,Linux 的内核就存放在这个目录中 /dev:是 Device 的缩写,存放硬盘、光驱、鼠标等设备文件