shell多进程执行任务

管道就像水管,有流入才会有流出,水管数水流的通道,管道是数据的通道。管道分为无名管道和有名管道。

无名管道:常用的|就是管道,只不过是无名的,可以直接作为两个进程的数据通道,比如:cat file.txt | grep test

有名管道:mkfilo 可以创建一个管道文件,比如:mkfiflo testfifo

管道有一个特点,如果管道中没有数据,那么取管道数据的操作就会阻塞,直到管道内进入数据,然后读出后才会终止这一操作,同理,写入管道的操作如果没有读取操作,这一个动作也会阻塞。

继续阅读

多SSH KEY切换部署同步代码

一般情况下,我们会单独生成一个ssh-key公钥用于备份数据,而不是和其他公钥混合使用,避免因为因为某些操作不安全,造成代码丢失。当然你也可以选择一个其他账户操作也是可以的,但如果选择其他账户了,也就没有这篇文章的存在了。还是回到多个私钥的问题上,默认情况下,RSA算法的 ssh 私钥文件名为 id_rsa,我们可以通过ssh-keygen生成 ssh key 的时候可以指定其名称。

当有多个SSH KEY存在的时候,如何指定某个ssh读取某个私钥呢?本文就提供一个解决方案。

继续阅读

高性能计算集群如何工程化

随着人工智能的发展,高性能服务出现在工程师的日程上,模型训练可谓热火朝天,但是问题也就此而来:资源分配和任务调度缺乏统一管理,无法及时获悉任务执行情况,造成资源浪费;资源占用不能直观监控,不能及时获知服务性能情况;每次跑模型任务都需要安装依赖软件,算法工程师还需要维护服务环境,精力浪费在核心工作之外;甚至部分数据从线下环境操作,数据安全也是一大隐患等。

继续阅读

PhpStorm 2019.2.1激活码

PhpStorm 2019.2.1激活码,亲测可用,持续更新。 建议大家购买正版,此激活码仅用于学习。如若有问题,责任自负。

PhpStorm 2019.2.1
Build #PS-192.6262.66, built on August 22, 2019
Licensed to Jig F
Subscription is active until June 13, 2020
Runtime version: 11.0.3+12-b304.39 x86_ 64
VM: OpenJDK 64- Bit Server VM by JetBrains s.r.o

继续阅读

MacOS编译NGINX1.17

使用Mac的开发者大多数的时候通过 brew 命令安装各类软件,比如 PHP、Python、Nodejs,Nginx 也不例外。

默认情况下Nginx安装在/usr/local/Cellar/nginx,通过brew link nginx加软连接到/usr/local/bin/nginx,虽然这样完全满足开发且符合 Mac 软件的管理,但是却不方便移植(比如想给不懂开发的用户一键部署部署的应用包,做私有化部署的同学应该对此不陌生)。

从源码编译 NGINX 程序比安装预编译的安装包要灵活很多,可以添加特定的模块(来自NGINX官方或者第三方的,比如给 Fastdfs 提供 HTTP 访问文件能力的 fastdfs-nginx 模块),当然自己编译源码拉取的可以是已修复 bug 和新增特性的最新分支。

继续阅读

浅谈分布式锁

随着架构系统的演进,由纯真的单机架构到容器化编排的分布式架构,可以说是一个大型互联网企业发展的必然走向。在网站初创时,应用数量和用户较少,可以把Tomcat和Mysql部署在同一台机器上。随着用户数量增多,访问量增大,并发升高,Tomcat和MySQL竞争资源,此时,单机已经扛不住了,需要把Tomcat和MySQL分离在不同的机器上,用于提升单台机器的处理能力。业务从来没有减少,产品越做越大。应用也越来越复杂,原来的大应用,拆分成多个小应用,加入各级缓存,做了反向代理负责均衡,最后坠入分库分表的深渊。

继续阅读