Lodash

“Lodash” Lodash是一个著名的javascript原生库,不需要引入其他第三方依赖。是一个意在提高开发者效率,提高JS原生方法性能的JS库。简单的说就是,很多方法lodash已经帮你写好了,直接调用就行,不用自己费尽心思去写了,而且可以统一方法的一致性。Lodash使用了一个简单的 _ 符号,就像Jquery的 $ 一样,十分简洁。 类似的还有Underscore.js和Lazy.js 作者: 戈德斯文 链接: https://www.jianshu.com/p/d46abfa4ddc9 来源: 简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2020-05-21 · 1 min · 14 words · -

Babel

title: “Babel” author: “-” date: “2020-05-16T09:35:43Z” url: “babel” categories: web tags: babel “Babel” Babel 是什么? Babel 是一个 JavaScript 编译器 Babel 是一个工具链,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。下面列出的是 Babel 能为你做的事情: 语法转换 通过 Polyfill 方式在目标环境中添加缺失的特性 (通过 @babel/polyfill 模块) 源码转换 (codemods) exceeds the max of 500KB ERROR [BABEL] Note: The code generator has deoptimised the styling of /…/path/to/file/bigger/than/500/k/node_modules/bootstrap-vue/src/icons/icons.js as it exceeds the max of 500KB. { // 编译后的代码省略所有可选的换行符和空格 "compact": true, // 在原始文件中不存在的代码片段之前插入的前缀注释(不推荐使用,仅为了举例) "auxiliaryCommentBefore": "before-content" } https://zhuanlan.zhihu.com/p/67989826 ...

2020-05-16 · 1 min · 72 words · -

lerna

“lerna” 什么是lerna?为什么要使用lerna? lerna到底是什么呢?lerna官网上是这样描述的。 A tool for managing JavaScript projects with multiple packages. 这个介绍可以说很清晰了,引入lerna后,上面提到的问题不仅迎刃而解,更为开发人员提供了一种管理多packages javascript项目的方式。 自动解决packages之间的依赖关系 通过git 检测文件改动,自动发布 根据git 提交记录,自动生成CHANGELOG 使用lerna的基本工作流 环境配置 Git 在一个lerna工程里,是通过git来进行代码管理的。所以你首先要确保本地有正确的git环境。 如果需要多人协作开发,请先创建正确的git中心仓库的链接。 因此需要你了解基本的git操作,在此不再赘述。 npm仓库 无论你管理的package是要发布到官网还是公司的私有服务器上,都需要正确的仓库地址和用户名。 你可运行下方的命令来检查,本地的npm registry地址是否正确。 npm config ls 复制代码 lerna 你需要全局安装lerna工具。 npm install lerna -g 复制代码 初始化一个lerna工程 在这个例子中,我将在我本地d:/ 根目录下初始化一个lerna工程。 在d:/ 下创建一个空的文件夹,命名为lerna-demo mkdir lerna-demo 复制代码 初始化 通过cmd进入相关目录,进行初始化 cd d:/lerna-demo lerna init 复制代码 执行成功后,目录下将会生成这样的目录结构。 - packages(目录) - lerna.json(配置文件) - package.json(工程描述文件) 复制代码 添加一个测试package 默认情况下,package是放在packages目录下的。 // 进入packages目录 cd d:/lerna-demo/packages // 创建一个packge目录 mkdir module-1 // 进入module-1 package目录 cd module-1 // 初始化一个package npm init -y 复制代码 执行完毕,工程下的目录结构如下 ...

2020-05-16 · 2 min · 245 words · -

tree command, 以树形结构显示文件目录结构, 目录树

tree command, 以树形结构显示文件目录结构, 目录树 # tree -L 3 dir_0 以树形结构显示文件目录结构 sudo pacman -S tree sudo apt-get install tree tree -aI .git tree -I '*svn|*node_module*' Linux tree命令用于以树状图列出目录的内容。 执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。 语法 tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...] 参数说明: -a 显示所有文件和目录。 -A 使用 ASNI 绘图字符显示树状图而非以 ASCII 字符组合。 -C 在文件和目录清单加上色彩,便于区分各种类型。 -d 显示目录名称而非内容。 -D 列出文件或目录的更改时间。 -f 在每个文件或目录之前,显示完整的相对路径名称。 -F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|“号。 -g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。 -i 不以阶梯状列出文件或目录名称。 -L level 限制目录显示层级。 -l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。 -n 不在文件和目录清单加上色彩。 -N 直接列出文件和目录名称,包括控制字符。 -p 列出权限标示。 -P<范本样式> 只显示符合范本样式的文件或目录名称。 -q 用”?“号取代控制字符,列出文件和目录名称。 -s 列出文件或目录大小。 -t 用文件和目录的更改时间排序。 -u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。 -x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。 -I pattern Do not list those files that match the wild-card pattern. https://blog.csdn.net/xuehuafeiwu123/article/details/53817161

2020-05-16 · 1 min · 91 words · -

vue basic

vue basic vue3 npm init vue@latest JSX JSX 的全称是 Javascript and XML,React 发明了 JSX,它是一种可以在 JS 中编写 XML 的语言。 安装vue sudo pacman -S nodejs sudo pacman -S yarn npm install -g @vue/cli yarn global add vue yarn global remove vue-cli yarn global add @vue/cli 用vue cli 创建一个项目, vue create 会创建一个目录 “hello-world” vue create hello-world 或者 使用图形界面 vue ui unit test Jest E2E test Cypress run yarn serve ...

2020-05-16 · 4 min · 728 words · -

OkHttp

“OkHttp” https://github.com/square/okhttp RequestBody body = RequestBody.create(MediaTypeJson, jsonStr0); Request request = new Request.Builder() .url(url0) .post(body) .build(); String resp = null; try (Response response = client.newCall(request).execute()) { resp = response.body().string(); } catch (IOException e) { e.printStackTrace(); } proxy static Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 8899)); static OkHttpClient client = new OkHttpClient.Builder().proxy(proxy).build(); 1. 历史上Http请求库优缺点 在讲述OkHttp之前, 我们看下没有OkHttp的时代, 我们是如何完成http请求的. 在没有OkHttp的日子, 我们使用HttpURLConnection或者HttpClient. 那么这两者都有什么优缺点呢? 为什么不在继续使用下去呢? HttpClient是Apache基金会的一个开源网络库, 功能十分强大, API数量众多, 但是正是由于庞大的API数量使得我们很难在不破坏兼容性的情况下对它进行升级和扩展, 所以Android团队在提升和优化HttpClient方面的工作态度并不积极. HttpURLConnection是一种多用途, 轻量极的HTTP客户端, 提供的API比较简单, 可以容易地去使用和扩展. 不过在Android 2.2版本之前, HttpURLConnection一直存在着一些令人厌烦的bug. 比如说对一个可读的InputStream调用close()方法时,就有可能会导致连接池失效了。那么我们通常的解决办法就是直接禁用掉连接池的功能: ...

2020-05-15 · 1 min · 134 words · W10N

hugo 搜索

“hugo 搜索” Algolia https://www.algolia.com/ https://www.qikqiak.com/post/hugo-integrated-algolia-search/ https://github.com/actions/setup-node https://github.com/replicatedhq/hugo-algolia

2020-05-13 · 1 min · 7 words · W10N

Linux性能测试工具

Linux性能测试工具 uptime uptime命令用于查看服务器运行了多长时间以及有多少个用户登录,快速获知服务器的负荷情况。 uptime的输出包含一项内容是load average,显示了最近1,5,15分钟的负荷情况。它的值代表等待CPU处理的进程数,如果CPU没有时间处理这些进程,load average值会升高;反之则会降低。 load average的最佳值是1,说明每个进程都可以马上处理并且没有CPU cycles被丢失。对于单CPU的机器,1或者2是可以接受的值;对于多路CPU的机器,load average值可能在8到10之间。 也可以使用uptime命令来判断网络性能。例如,某个网络应用性能很低,通过运行uptime查看服务器的负荷是否很高,如果不是,那么问题应该是网络方面造成的。 dmesg dmesg命令主要用来显示内核信息。使用dmesg可以有效诊断机器硬件故障或者添加硬件出现的问题。 另外,使用dmesg可以确定您的服务器安装了那些硬件。每次系统重启,系统都会检查所有硬件并将信息记录下来。执行/bin/dmesg命令可以查看该记录。 top top命令显示处理器的活动状况。缺省情况下,显示占用CPU最多的任务,并且每隔5秒钟做一次刷新。 Process priority的数值决定了CPU处理进程的顺序。LIUNX内核会根据需要调整该数值的大小。nice value局限于priority。priority的值不能低于nice value (nice value值越低,优先级越高) 。您不可以直接修改Process priority的值,但是可以通过调整nice level值来间接地改变Process priority值,然而这一方法并不是所有时候都可用。如果某个进程运行异常的慢,可以通过降低nice level为该进程分配更多的CPU。 iostat iostat由Red Hat Enterprise Linux AS发布。同时iostat也是Sysstat的一部分,可以下载到,网址是http://perso.wanadoo.fr/sebastien.godard/ 执行iostat命令可以从系统启动之后的CPU平均时间,类似于uptime。除此之外,iostat还对创建一个服务器磁盘子系统的活动报告。该报告包含两部分: CPU使用情况和磁盘使用情况。 vmstat vmstat提供了processes, memory, paging, block I/O, traps和CPU的活动状况 sar sar是Red Hat Enterprise Linux AS发行的一个工具,同时也是Sysstat工具集的命令之一,可以从以下网址下载: http://perso.wanadoo.fr/sebastien.godard/ sar用于收集、报告或者保存系统活动信息。sar由三个应用组成: sar显示数据、sar1和sar2用于收集和保存数据。 使用sar1和sar2,系统能够配置成自动抓取信息和日志,以备分析使用。配置举例: 在/etc/crontab中添加如下几行内容 同样的,你也可以在命令行方式下使用sar运行实时报告。如图所示: 从收集的信息中,可以得到详细的CPU使用情况(%user, %nice, %system, %idle)、内存页面调度、网络I/O、进程活动、块设备活动、以及interrupts/second KDE System Guard KDE System Guard (KSysguard) 是KDE图形方式的任务管理和性能监视工具。监视本地及远程客户端/服务器架构体系的中的主机。 free /bin/free命令显示所有空闲的和使用的内存数量,包括swap。同时也包含内核使用的缓存。 Traffic-vis Traffic-vis是一套测定哪些主机在IP网进行通信、通信的目标主机以及传输的数据量。并输出纯文本、HTML或者GIF格式的报告。 注: Traffic-vis仅仅适用于SUSE LINUX ENTERPRISE SERVER。 ...

2020-05-10 · 1 min · 78 words · W10N

aws

aws 查看所有区域的资源: ec2>左侧菜单> AWS Global View aws s3 ls s3://obsidian-w10n aws configure aws s3 cp foobar s3://obsidian-w10n https://aws.amazon.com/cli/ SAA, Solution Architect Ass

2020-05-10 · 1 min · 22 words · W10N

macvlan

“macvlan” https://cizixs.com/2017/02/14/network-virtualization-macvlan/ macvlan 是 linux kernel 比较新的特性,可以通过以下方法判断当前系统是否支持: modprobe macvlan lsmod | grep macvlan macvlan 19046 0 macvlan 允许你在主机的一个网络接口上配置多个虚拟的网络接口,这些网络 interface 有自己独立的 mac 地址,也可以配置上 ip 地址进行通信。macvlan 下的虚拟机或者容器网络和主机在同一个网段中,共享同一个广播域。macvlan 和 bridge 比较相似,但因为它省去了 bridge 的存在,所以配置和调试起来比较简单,而且效率也相对高。除此之外,macvlan 自身也完美支持 VLAN。 四种模式 private mode: 过滤掉所有来自其他 macvlan 接口的报文,因此不同 macvlan 接口之间无法互相通信 vepa(Virtual Ethernet Port Aggregator) mode: 需要主接口连接的交换机支持 VEPA/802.1Qbg 特性。所有发送出去的报文都会经过交换机,交换机作为再发送到对应的目标地址 (即使目标地址就是主机上的其他 macvlan 接口) ,也就是 hairpin mode 模式,这个模式用在交互机上需要做过滤、统计等功能的场景。 bridge mode: 通过虚拟的交换机讲主接口的所有 macvlan 接口连接在一起,这样的话,不同 macvlan 接口之间能够直接通信,不需要将报文发送到主机之外。这个模式下,主机外是看不到主机上 macvlan interface 之间通信的报文的。 passthru mode: 暂时没有搞清楚这个模式要解决的问题 VEPA 和 passthru 模式下,两个 macvlan 接口之间的通信会经过主接口两次: 第一次是发出的时候,第二次是返回的时候。这样会影响物理接口的宽带,也限制了不同 macvlan 接口之间通信的速度。如果多个 macvlan 接口之间通信比较频繁,对于性能的影响会比较明显。 ...

2020-05-04 · 2 min · 273 words · W10N

内网穿透

内网穿透 https://github.com/ehang-io/nps https://github.com/ehang-io/nps/releases docker pull ffdfgdfg/nps docker run -d --name nps --net=host -v nps-config:/conf ffdfgdfg/nps 内网穿透 https://github.com/ehang-io/nps https://github.com/ehang-io/nps/releases docker pull ffdfgdfg/nps docker run -d --name nps --net=host -v nps-config:/conf ffdfgdfg/nps

2020-04-28 · 1 min · 30 words · -

go 原子操作

go 原子操作 原子操作 像Java一样,Golang支持很多CAS操作。运行结果是unsaftCnt可能小于200,因为unsafeCnt++在机器指令层面上不是一条指令,而可能是从内存加载数据到寄存器、执行自增运算、保存寄存器中计算结果到内存这三部分,所以不进行保护的话有些更新是会丢失的。 package main import ( “fmt” “time” “sync/atomic” “runtime” ) func main() { // IMPORTANT!!! runtime.GOMAXPROCS(4) // thread-unsafe var unsafeCnt int32 = 0 for i := 0; i < 10; i++ { go func() { for i := 0; i < 20; i++ { time.Sleep(time.Millisecond) unsafeCnt++ } }() } time.Sleep(time.Second) fmt.Println("cnt: ", unsafeCnt) // CAS toolkit var cnt int32 = 0 for i := 0; i < 10; i++ { go func() { for i := 0; i < 20; i++ { time.Sleep(time.Millisecond) atomic.AddInt32(&cnt, 1) } }() } time.Sleep(time.Second) cntFinal := atomic.LoadInt32(&cnt) fmt.Println("cnt: ", cntFinal) } ...

2020-04-26 · 1 min · 114 words · -

yum, dnf repo

yum, dnf repo CentOS Extras —— 在 CentOS 5 及 6,这些组件提供额外功能,但不损坏 CentOS 与上游的兼容性,也不会更新基本组件,然而上游并未测试这些软件,它们亦不包含在上游产品内。在 CentOS 7 这是上游的软件库,也包含额外的 CentOS 组件。CentOS 的开发小组已经针对这个软件库内的每个程序作出测试,确定它们能在 CentOS 下运作。这个软件库已连同 CentOS 一并安装,并缺省为启用的。 CentOSPlus —— 这些组件为了提供额外功能,会更改 CentOS 的某些基本组件。这个软件库会导致 CentOS 与上游供应者的内容有异。CentOS 的开发小组已经针对这个软件库内的每个程序作出测试,确定它们能在 CentOS 下运作。上游供应者并未测试这些软件,它们亦不包含在上游产品内。这个软件库已连同 CentOS 一并安装,但缺省为停用的。由这个软件库提供的受欢迎组件包括: CentOS-Plus 内核 (含有额外修正、驱动程序/功能的重建内核) ,支持 postgresql 数据库的 postfix (官方版本只支持 MySQL) 。

2020-04-26 · 1 min · 45 words · -

dnf basic

dnf basic 升级所有系统软件包 用处: 该命令用于升级系统中所有有可用升级的软件包 # "update" is just a deprecated alias for "upgrade", they do exactly the same thing. dnf update dnf upgrade 安装 dnf install rsync 删除 dnf remove nano 或 # dnf erase nano 删除无用孤立的软件包 用处: 当没有软件再依赖它们时,某一些用于解决特定软件依赖的软件包将会变得没有存在的意义,该命令就是用来自动移除这些没用的孤立软件包。 dnf autoremove dnf --version dnf repolist – 查看系统中可用和不可用的所有的 DNF 软件库 用处: 该命令用于显示系统中可用和不可用的所有的 DNF 软件库 命令: # dnf repolist all – 列出所有安装了的 RPM 包 dnf list installed – 列出所有 RPM 包 dnf list – 列出所有可供安装的 RPM 包 用处: 该命令用于列出来自所有可用软件库的可供安装的软件包 命令: # dnf list available – 搜索软件库中的 RPM 包 用处: 当你不知道你想要安装的软件的准确名称时,你可以用该命令来搜索软件包。你需要在"search"参数后面键入软件的部分名称来搜索。 (在本例中我们使用"nano") 命令: # dnf search nano – 查看软件包详情 用处: 当你想在安装某一个软件包之前查看它的详细信息时,这条命令可以帮到你。 (在本例中,我们将查看"nano"这一软件包的详细信息) 命令: # dnf info nano – 安装软件包 用处: 使用该命令,系统将会自动安装对应的软件及其所需的所有依赖 (在本例中,我们将用该命令安装nano软件) 命令: # dnf install nano – 升级软件包 用处: 该命令用于升级制定软件包 (在本例中,我们将用命令升级"systemd"这一软件包) 命令: # dnf update systemd – 检查系统软件包的更新 用处: 该命令用于检查系统中所有软件包的更新 命令: # dnf check-update dnf upgrade --refresh dnf system-upgrade reboot – 删除软件包 用处: 删除系统中指定的软件包 (在本例中我们将使用命令删除"nano"这一软件包) 命令: # dnf remove nano 或 # dnf erase nano – 删除无用孤立的软件包 用处: 当没有软件再依赖它们时,某一些用于解决特定软件依赖的软件包将会变得没有存在的意义,该命令就是用来自动移除这些没用的孤立软件包。 命令: # dnf autoremove – 删除缓存的无用软件包 用处: 在使用 DNF 的过程中,会因为各种原因在系统中残留各种过时的文件和未完成的编译工程。我们可以使用该命令来删除这些没用的垃圾文件。 命令: # dnf clean all – 获取有关某条命令的使用帮助 用处: 该命令用于获取有关某条命令的使用帮助 (包括可用于该命令的参数和该命令的用途说明) (本例中我们将使用命令获取有关命令"clean"的使用帮助) 命令: # dnf help clean – 查看所有的 DNF 命令及其用途 用处: 该命令用于列出所有的 DNF 命令及其用途 命令: # dnf help – 查看 DNF 命令的执行历史 用处: 您可以使用该命令来查看您系统上 DNF 命令的执行历史。通过这个手段您可以知道在自您使用 DNF 开始有什么软件被安装和卸载。 命令: # dnf history – 查看所有的软件包组 用处: 该命令用于列出所有的软件包组 命令: # dnf grouplist – 安装一个软件包组 用处: 该命令用于安装一个软件包组 (本例中,我们将用命令安装"Educational Software"这个软件包组) 命令: # dnf groupinstall 'Educational Software' – 升级一个软件包组中的软件包 用处: 该命令用于升级一个软件包组中的软件包 (本例中,我们将用命令升级"Educational Software"这个软件包组中的软件) 命令: # dnf groupupdate 'Educational Software' – 删除一个软件包组 用处: 该命令用于删除一个软件包组 (本例中,我们将用命令删除"Educational Software"这个软件包组) 命令: # dnf groupremove 'Educational Software' – 从特定的软件包库安装特定的软件 用处: 该命令用于从特定的软件包库安装特定的软件 (本例中我们将使用命令从软件包库 epel 中安装 phpmyadmin 软件包) 命令: # dnf –enablerepo=epel install phpmyadmin – 更新软件包到最新的稳定发行版 用处: 该命令可以通过所有可用的软件源将已经安装的所有软件包更新到最新的稳定发行版 命令: # dnf distro-sync – 重新安装特定软件包 用处: 该命令用于重新安装特定软件包 (本例中,我们将使用命令重新安装"nano"这个软件包) 命令: # dnf reinstall nano – 回滚某个特定软件的版本 用处: 该命令用于降低特定软件包的版本 (如果可能的话) (本例中,我们将使用命令降低"acpid"这个软件包的版本) 命令: # dnf downgrade acpid DNF 包管理器作为 YUM 包管理器的升级替代品,它能自动完成更多的操作。但在我看来,正因如此,所以 DNF 包管理器不会太受那些经验老道的 Linux 系统管理者的欢迎。举例如下: ...

2020-04-26 · 2 min · 372 words · -

单臂路由

单臂路由 openwrt设置 lan口设置 Network>interface>lan>physical settings: Lan口关闭桥接, Lan口取消桥接接口的勾选 接口选择网卡eth0 wan口设置 Network>interface>wan>physical settings: 接口选择网卡eth0 (跟lan口选择同一个网卡) Proxmox VE +openwrt|| docker + openwrt 单臂路由 Docker上运行Lean大源码编译的OpenWRT (初稿) https://openwrt.club/93.html/embed#?secret=a5nUefewHz https://www.redhat.com/sysadmin/leasing-ips-podman https://www.right.com.cn/forum/thread-941106-1-1.html https://github.com/lisaac/blog/issues/4 https://github.com/lisaac/openwrt-in-docker https://www.5yun.org/openwrt-x86-dan-bi-lu-you-dan-wang-kou-shang-wang-fang-fa.html

2020-04-25 · 1 min · 28 words · -

podman in crostini

podman in crostini ERRO[0000] ‘overlay’ is not supported over btrfs at “/var/lib/containers/storage/overlay” https://bugs.chromium.org/p/chromium/issues/detail?id=938877&q=overlayfs&can=2 https://bugs.chromium.org/p/chromium/issues/detail?id=878034

2020-04-25 · 1 min · 14 words · -

华为云CCE, docker 实例发监控数据到influxdb

华为云CCE, docker 实例发监控数据到influxdb docker集群内部新建telegraf实例 从官方repo取到的telegraf镜像 不是最新版本, 手动上传导出 的docker image 到华为云,并创建telegraf 实例 telegraf使用influxdb_listener input plugin docker 实例 内的应用 用go metrics influxdb发数据到集群内的telegraf 的 influxdb listener

2020-04-22 · 1 min · 23 words · -

vim 粘贴注释

vim 粘贴注释 vim在粘贴代码时会自动缩进,这样会把有注释的代码搞得一团糟,可能因为某行的一个注释造成后面的代码全部被注释掉,以前就是直接粘贴的,发现不得不解决这个自动添加注释的问题。 临时方法: vim 是自带缩进的,我们执行粘贴前需要设置为粘贴模式: set paste 当我们写代码时需要缩进,进而,在粘贴完了需要改回来: set no paste 一劳永逸方法: 为了避免麻烦,我们可以为vim设置快捷键: 在/etc/vim中,修改vimrc,追加代码: vim /etc/vim/.vimrc 追加代码: set pastetoggle=<F9> 这样你每次粘贴前就按一下F9,完事之后再F9切回来,OK! vim粘贴注释-解决方法 http://www.chenglin.name/linux/blog-linux/595.html/embed#?secret=QDy4MQGTrl

2020-04-22 · 1 min · 23 words · -

ssh Multiplexing,mux

ssh Multiplexing,mux 管理multiplexing 查看当前的状态 ssh -O check machine1 ssh -O check 192.168.50.169 -l root # Master running (pid=91057) 停止接受新的会话 ssh -O stop machine1 $ ssh -O stop root@47.91._._ # Stop listening request sent. 退出所有会话 ssh -O exit root@47.91._._ # Exit request sent. Session Multiplexing emacs /etc/ssh/ssh_config emacs ~/.ssh/config #--- Host * ControlMaster auto ControlPath ~/.ssh/master-%r@%h:%p ControlPersist 10m http://schin.space/ops/OPS-openssh-multiplexing/ 很多使用类Unix的用户常常头疼的一个问题是,多次登录远程主机的时候,需要重复的输入密码,尤其在登录跳板机还要输入动态token的时候,开多个会话窗口是一件很繁琐的事情 multiplexing 幸运的是,openssh通过multiplexing功能进行了连接优化,通过mulitiplexing可以实现多个ssh会话共用同一个tcp连接 实现multiplexing后,无论打开多少个ssh会话窗口,netstat显示的ssh连接都只有第一次会话建立的连接 $netstat -navp tcp | grep 22 tcp4 0 0 192.168...60603 47.91...22 ESTABLISHED 131072 131768 79974 0 ...

2020-04-21 · 3 min · 624 words · -

linux tcp 连接建立时间

linux tcp 连接建立时间 lsof -P -i tcp | awk '{print $2,$4}' | tr -d 'u' | sort -u stat --printf "%z %N\n" /proc/$pid/fd/$fd

2020-04-21 · 1 min · 23 words · -