Mac配置docker开发工具

前言

2020年整了一套android下的termux开发环境,今天继续配置一套docker下的开发环境。termux搭建参考

开发电脑环境准备如下:

系统 版本
MacOS 10.14.6
docker 20.10.12

待安装的开发工具环境如下:

镜像 版本
mongo 6.0
redis 7.0
mysql 8.0
nginx 1.22.0
minio latest
etcd latest

1、查询docker进程

1
2
3
launchctl list | grep docker
-	0	com.docker.helper
14047	0	com.docker.docker.47840

2、停止、启动docker进程

1
launchctl stop com.docker.docker.47840 && launchctl start com.docker.docker.47840

3、启动docker

1
open /Applications/Docker.app

PS:

目前通过 open /Applications/Docker.app 可以启动,通过 launchctl start com.docker.docker.xxx 方式不能启动了。

……

阅读全文

转载-arthas常见用法

前言

Arthas是Alibaba开源的Java诊断工具,动态跟踪Java代码;实时监控JVM状态,可以在不中断程序执行的情况下轻松完成JVM相关问题排查工作 。支持JDK 6+,支持Linux/Mac/Windows。这个工具真的很好用,而且入门超简单,十分推荐。

1、使用场景

  • 1、这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
  • 2、我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
  • 3、遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
  • 4、线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
  • 5、是否有一个全局视角来查看系统的运行状况?
  • 6、有什么办法可以监控到JVM的实时运行状态?接下来,围绕这6个问题,学习下Arthas的基本用法。

2、安装

执行下面命令下载

……

阅读全文

java锁体系与ReentrantLock详解

前言

面试和实际编码里 java 锁都是绕不开的话题。这篇先按维度把常见锁的分类理清楚,再聚焦 ReentrantLock:它的四个高级特性分别解决 synchronized 的什么短板,配可运行的验证代码,最后是核心方法与注意事项。

一、java 常见锁的七种分类

按不同维度,锁可以分成下面几组——同一把锁在不同维度下有不同名字:

维度 分类 说明
竞争是否排队 公平锁 / 非公平锁 synchronized 和 ReentrantLock 默认都是非公平锁,非公平可以避免线程唤醒的空档期、提高吞吐
同线程能否重复获取 可重入锁 / 不可重入锁 ReentrantLock 对同一线程可重入,不会自己锁死自己
能否被多线程共享 共享锁 / 独占锁 ReentrantReadWriteLock 中读锁是共享锁、写锁是排他锁
等待期能否被中断 可中断锁 / 不可中断锁 ReentrantLock 的 lockInterruptibly() 支持中断
是否锁住资源 悲观锁 / 乐观锁 synchronized 是悲观;CAS(如 Atomic 系列)是乐观
等待方式 自旋锁 / 阻塞锁 自旋避免上下文切换,但空耗 CPU
- 偏向锁/轻量级锁/重量级锁 synchronized 的锁升级路径(JDK 15 起偏向锁已废弃)

二、ReentrantLock 的四个高级特性

ReentrantLock 实现了 Lock 接口,作用与 synchronized 一样是线程安全,但多了四个 synchronized 没有的能力。

……

阅读全文

几种id浅谈

前言

几种 ID 浅谈,UDID、UUID、ULID、NanoID

1、UDID

Unique Device Identifier(设备唯一标识符)
从名称上也可以看出,UDID这个东西是和设备有关的,而且是只和设备有关的,有点类似于MAC地址。真机调试,然后需要把UDID这个东西添加到Provisoning Profile授权文件中,也就是把设备唯一标识符添加进去,以此来识别某一台设备。 UDID是一个40位十六进制序列,我们可以使用iTunes和Xcode来获取这个值。

……

阅读全文

python打包-只依赖自己项目引用的module

前言

本地开发python后,需要生成requirements.txt,但是不做处理的话,会把你本地安装的所有module都依赖进来,找到一个根据项目生成依赖的工具

1、安装

1
pip install pipreqs

2、生成项目依赖

进入项目根目录

1
pipreqs . --encoding=utf8 --force

说明

参数 说明
–force 会覆盖前一个requirements.txt
–encoding=utf8 解决编码问题

3、参数介绍

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
Usage:
    pipreqs [options] <path>

Options:
    --use-local           Use ONLY local package info instead of querying PyPI
    --pypi-server <url>   Use custom PyPi server
    --proxy <url>         Use Proxy, parameter will be passed to requests library. You can also just set the
                          environments parameter in your terminal:
                          $ export HTTP_PROXY="http://10.10.1.10:3128"
                          $ export HTTPS_PROXY="https://10.10.1.10:1080"
    --debug               Print debug information
    --ignore <dirs>...    Ignore extra directories
    --encoding <charset>  Use encoding parameter for file open
    --savepath <file>     Save the list of requirements in the given file
    --print               Output the list of requirements in the standard output
    --force               Overwrite existing requirements.txt
    --diff <file>         Compare modules in requirements.txt to project imports.
    --clean <file>        Clean up requirements.txt by removing modules that are not imported in project.
    --no-pin              Omit version of output packages.

4、参考

参考文档:https://pypi.org/project/pipreqs/

……

阅读全文

渗透测试的部分资料

前言

整理了一些渗透测试的资料,方便查阅。

1、漏洞扫描

1.1 xray

xray 是一款功能强大的安全评估工具,由多名经验丰富的一线安全从业者呕心打造而成,主要特性有:

  • 检测速度快。发包速度快; 漏洞检测算法高效。
  • 支持范围广。大至 OWASP Top 10 通用漏洞检测,小至各种 CMS 框架 POC,均可以支持。
  • 代码质量高。编写代码的人员素质高, 通过 Code Review、单元测试、集成测试等多层验证来提高代码可靠性。
  • 高级可定制。通过配置文件暴露了引擎的各种参数,通过修改配置文件可以极大的客制化功能。
  • 安全无威胁。xray 定位为一款安全辅助评估工具,而不是攻击工具,内置的所有 payload 和 poc 均为无害化检查。

目前支持的漏洞检测类型包括:

……

阅读全文

数据分析指标速查手册:从用户、行为到统计术语的完整梳理

前言

做业务系统久了会发现:开发和数据同事对话的障碍往往不是技术,而是指标名词。这篇把散落在各处的数据分析指标与术语系统地梳理一遍,分五大类:用户数据指标、行为数据指标、业务数据指标、数据分析术语、统计学与报告常用语,当速查手册用。

一、用户数据指标

IP、UV、PV、VV

  • IP(Internet Protocol):独立IP数
  • UV(Unique Visitor):独立访问客数
  • PV(Page View):页面浏览量/阅读量
  • VV(Visit View):访问次数。注:在视频产品的数据分析中,VV(Video View)是播放类指标,指一个统计周期内视频被打开的次数之和

活跃与新增

……

阅读全文

转载-shell 13问

前言

shell编写入门的时候,有幸看到比较经典的 shell 13问,碰到有大佬整理成 markdown 格式,转载过来

1、为何叫做 Shell?

我们知道计算机的运作离不开硬件,但却无法直接操作硬件,硬件的驱动只能通过一种称之为“操作系统(OS,Opertating System)的软件来管控。Linux 严格来说是一个操作系统(OS)。

……

阅读全文

spring cloud gateway的一些细节注意

前言

spring cloud 2.* 的路由用的是 gateway 方案,不再是 1.* 时代的 zuul 了,不过也带来了新问题,这里整理下近期优化 gateway 的鉴权带来的爬坑记录

1、理解 gateway 与 zuul 比较

SpringCloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。

SpringCloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Zuul,在Spring Cloud 2.0以上版本中,没有对新版本的Zuul 2.0以上最新高性能版本进行集成,仍然还是使用的Zuul 2.0之前的非Reactor模式的老版本。而为了提升网关的性能,SpringCloud Gateway是基于WebFlux框架实现的,而WebFlux框架底层则使用了高性能的Reactor模式通信框架Netty。

……

阅读全文

linux后台执行可用方式整理

前言

最近答疑群友如何后台运行 ssh 连接后的操作,整理了下日常常见的后台执行方式,方便知识梳理。

1、nohup方式

1
2
# nohup sh shell.sh &
查看日志:tail -f nohup.out

2、disown方式

1
2
# sh shell.sh & disown
查看日志:断开终端后,不能再查看日志

3、screen方式

执行screen,如果命令不存在,需要先安装:

1
# yum install screen -y

新建一个屏幕:

1
# screen -S screen_name

执行命令:

1
# sh shell.sh

依次按 Ctrl+A 与 D (无 Ctrl) 脱离该屏幕,此时程序仍运行在后台。

……

阅读全文

最近文章

分类

标签

其它