tune2fs

tune2fs tune2fs命令 一.简介: tune2fs用来调整和查看ext2/ext3 (现在有ext4了) 文件系统的文件系统参数,Windows平台如果出现意外断电死机情况,下次开机一般都会出现系统自检。Linux系统当然也有文件系统自检,而且是可以通过tune2fs命令,自行定义自检周期及方式。 二.用法: 自己去man吧,man man,更健康。。。 常用选项说明: -l 查看文件系统信息 -c max-mount-counts 设置强制自检的挂载次数,如果开启,每挂载一次mount conut就会加1,超过次数就会强制自检 -i interval-between-checks[d|m|w] 设置强制自检的时间间隔[d天m月w周] -m reserved-blocks-percentage 保留块的百分比 -j 将ext2文件系统转换为ext3类型的文件系统 -L volume-label 类似e2label的功能,可以修改文件系统的标签 -r reserved-blocks-count 调整系统保留空间 -o [^]mount-option[,…] Set or clear the indicated default mount options in the filesystem. 设置或清除默认挂载的文件系统选项 (这一条是我需要的。) 三.例如: tune2fs -c 30 /dev/hda1 设置强制检查前文件系统可以挂载的次数 tune2fs -c -l /dev/hda1 关闭强制检查挂载次数限制。 #有些分区本身默认就是-1,也就是不检测 tune2fs -i 10 /dev/hda1 10天后检查 tune2fs -i 1d /dev/hda1 1天后检查 tune2fs -i 3w /dev/hda1 3周后检查 ...

2020-01-12 · 1 min · 100 words · -

ios iphone basic

ios iphone basic 儿童账户 APP 年龄限制设置 Family> 儿童账户> Screen Time> Content & Privacy Restrictions> Content Restrictions> Apps 关闭辅助触控, 关闭屏幕上的圆点 设置》通用》辅助功能》触控》辅助触控》关闭

2020-01-11 · 1 min · 20 words · -

ansible-pull

ansible-pull ansible-pull 该指令的使用涉及Ansible的另一种工作模式: pull模式 (Ansible默认使用push模式) 。这和通常使用的push模式工作机理刚好相反,其适用于以下场景: ①你有数量巨大的机器需要配置,即使使用高并发线程依旧要花费很多时间;②你要在刚启动的、没有网络连接的主机上运行Anisble。 ansible-pull命令使用格式如下: ansible-pull [options] [playbook.yml] 通过ansible-pull结合Git和crontab一并实现,其原理如下: 通过crontab定期拉取指定的Git版本到本地,并以指定模式自动运行预先制订好的指令。 具体示例参考如下: /20 * * * root /usr/local/bin/ansible-pull -o -C 2.1.0 -d /srv/www/king-gw/ -i /etc/ansible/hosts -U git:// git.kingifa.com/king-gw-ansiblepull » /var/log/ansible-pull.log 2>&1 ansible-pull通常在配置大批量机器的场景下会使用,灵活性稍有欠缺,但效率几乎可以***提升,对运维人员的技术水平和前瞻性规划有较高要求。

2020-01-11 · 1 min · 34 words · -

java 中的内省 introspector

java 中的内省 introspector 概述 经常需要使用java对象的属性来封装程序的数据,每次都使用反射技术完成此类操作过于麻烦,所以sun公司开发了一套API,专门用于操作java对象的属性。 内省(IntroSpector)是Java语言对JavaBean 类属性、事件的一种处理方法。 例如类A中有属性name,那我们可以通过getName,setName 来得到其值或者设置新的值。 通过getName/setName 来访问name属性,这就是默认的规则。 Java中提供了一套API 用来访问某个属性的getter/setter方法,通过这些API可以使你不需要了解这个规则,这些API存放于包java.beans 中。 一般的做法是通过类Introspector的getBeanInfo方法获取某个对象的BeanInfo信息,然后通过BeanInfo来获取属性的描述器(PropertyDescriptor),通过这个属性描述器就可以获取某个属性对应的getter/setter方法,然后我们就可以通过反射机制来调用这些方法。 我们又通常把javabean的实例对象称之为值对象,因为这些bean中通常只有一些信息字段和存储方法,没有功能性方法。 一个JavaBean类可以不当JavaBean用,而当成普通类用。JavaBean实际就是一种规范,当一个类满足这个规范,这个类就能被其它特定的类调用。一个类被当作javaBean使用时,JavaBean的属性是根据方法名推断出来的,它根本看不到java类内部的成员变量。去掉set前缀,然后取剩余部分,如果剩余部分的第二个字母是小写的,则把剩余部分的首字母改成小的。 内省访问JavaBean有两种方法: 通过PropertyDescriptor来操作Bean对象 public static void demo1() throws Exception { User user = new User(“zhangsan”, 21); String propertyName = “name”; // 直接指定要访问的属性 PropertyDescriptor pd = new PropertyDescriptor(propertyName, user.getClass()); // 获取到读方法 Method readMethod = pd.getReadMethod(); // 反射机制调用 Object invoke = readMethod.invoke(user, null); System.out.println(“名字: " + invoke); pd.getWriteMethod().invoke(user, “lisi”); invoke = readMethod.invoke(user, null); System.out.println(“名字: " + invoke); ...

2020-01-10 · 1 min · 199 words · -

junit

junit junit5 JUnit5的第一个可用性版本是在2017年9月10日发布的。 JUnit5架构 相比JUnit4,JUnit5由三个不同的子项目及不同的模块组成。 JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage JUnit Platform 启动Junit测试、IDE、构建工具或插件都需要包含和扩展Platform API,它定义了TestEngine在平台运行的新测试框架的API。 它还提供了一个控制台启动器,可以从命令行启动Platform,为Gradle和Maven插件提供支持。 JUnit Jupiter 它用于编写测试代码的新的编程和扩展模型。它具有所有新的Junit注释和TestEngine实现来运行这些注释编写的测试。 JUnit Vintage 它主要的目的是支持在JUnit5的测试代码中运行JUnit3和4方式写的测试,它能够向前兼容之前的测试代码。 https://tonydeng.github.io/2017/10/09/junit-5-tutorial-introduction/ 安装 你可以在Maven或Gradle项目中使用JUnit5,包含最小的两个依赖关系,即junit-jupiter-engince和junit-platform-runner。 <project> <properties> <junit.jupiter.version>5.5.2</junit.jupiter.version> <junit.platform.version>1.5.2</junit.platform.version> </properties> <dependencies> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit.jupiter.version}</version> </dependency> <dependency> <groupId>org.junit.platform</groupId> <artifactId>junit-platform-runner</artifactId> <version>${junit.platform.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.jdbi</groupId> <artifactId>jdbi3-core</artifactId> <version>${jdbi.version}</version> </dependency> </dependencies> </project> import org.junit.jupiter.api.Test; public class AppTest { @Test public void Test() { System.out.println("foo"); } } Annotations 描述 ...

2020-01-09 · 1 min · 91 words · -

故障码类型 主动/静态,被动/偶发

故障码类型 主动/静态,被动/偶发 主动静态,说明这个故障一直存在,无法消除,被动偶发说明是以前有过,后来好了,比如你断电后需要设定门一键升窗,你设定好了就成被动偶发的。可以消除。 https://zhidao.baidu.com/question/1239311185193933419.html

2019-12-30 · 1 min · 4 words · -

Redis 持久化 RDB 和 AOF

Redis 持久化 RDB 和 AOF Redis本身的机制是 AOF 持久化开启且存在AOF文件时,优先加载AOF文件;AOF 关闭或者AOF文件不存在时,加载RDB文件;加载AOF/RDB文件城后,Redis启动成功;AOF/RDB文件存在错误时,Redis启动失败并打印错误信息 RDB快照持久化 RDB 持久化是通过快照的方式,即在指定的时间间隔内将内存中的数据集快照写入磁盘。在创建快照之后,用户可以备份该快照,可以将快照复制到其他服务器以创建相同数据的服务器副本,或者在重启服务器后恢复数据。RDB是Redis默认的持久化方式 快照持久化 RDB持久化会生成RDB文件,该文件是一个压缩过的二进制文件,可以通过该文件还原快照时的数据库状态,即生成该RDB文件时的服务器数据。RDB文件默认为当前工作目录下的dump.rdb,可以根据配置文件中的dbfilename和dir设置RDB的文件名和文件位置 # 设置 dump 的文件名 dbfilename dump.rdb # 工作目录 # 例如上面的 dbfilename 只指定了文件名, # 但是它会写入到这个目录下。这个配置项一定是个目录,而不能是文件名。 dir ./ 触发快照的时机 执行 save 和 bgsave 命令 配置文件设置 save <seconds> <changes>规则,自动间隔性执行bgsave命令 主从复制时,从库全量复制同步主库数据,主库会执行bgsave 执行 flushall 命令清空服务器数据 执行 shutdown 命令关闭 Redis 时,会执行 save命令 save 和bgsave命令 执行save 和bgsave命令,可以手动触发快照,生成RDB文件,两者的区别如下 使用save 命令会阻塞Redis服务器进程,服务器进程在RDB文件创建完成之前是不能处理任何的命令请求 而使用bgsave 命令不同的是,basave命令会fork一个子进程,然后该子进程会负责创建RDB文件,而服务器进程会继续处理命令请求 fork() 是由操作系统提供的函数,作用是创建当前进程的一个副本作为子进程 fork 一个子进程,子进程会把数据集先写入临时文件,写入成功之后,再替换之前的RDB文件,用二进制压缩存储,这样可以保证RDB文件始终存储的是完整的持久化内容 自动间隔触发 在配置文件中设置 save <seconds> <changes> 规则,可以自动间隔性执行bgsave命令 # SNAPSHOTTING ################################ # # Save the DB on disk: # # save <seconds> <changes> # # Will save the DB if both the given number of seconds and the given # number of write operations against the DB occurred. # # In the example below the behaviour will be to save: # after 900 sec (15 min) if at least 1 key changed # after 300 sec (5 min) if at least 10 keys changed # after 60 sec if at least 10000 keys changed # # Note: you can disable saving completely by commenting out all "save" lines. # # It is also possible to remove all the previously configured save # points by adding a save directive with a single empty string argument # like in the following example: # # save "" save 900 1 save 300 10 save 60 10000 # save <seconds> <changes>表示在seconds秒内,至少有changes次变化,就会自动触发gbsave命令 save 900 1 # 当时间到900秒时,如果至少有1个key发生变化,就会自动触发bgsave命令创建快照 save 300 10 # 当时间到300秒时,如果至少有10个key发生变化,就会自动触发bgsave命令创建快照 save 60 10000 # 当时间到60秒时,如果至少有10000个key发生变化,就会自动触发bgsave命令创建快照 RDB RDB 持久化 执行 rdb 持久化时, Redis 会fork 出一个子进程, 子进程将内存中数据写入到一个紧凑的文件中, 因此它保存的是某个时间点的完整数据。 ...

2019-12-23 · 5 min · 1026 words · -

DCEVM, HotSwapAgent

DCEVM, HotSwapAgent https://blog.csdn.net/u013613428/article/details/51499911 要高效的开发Java代码,那就必须要让java像js一样,修改过的代码可以实时的反应出来。要了解如何做到这一点,我们先要知道JVM是如何工作的: 我们知道,JAVA程序都是运行在java虚拟机上面 (当然JVM有两种类型,JDK和单纯的JRE,这里我们主要是指的JDK,因为只有JDK包含了debug功能,而我们只有在debug端口打开的情况下才能实现run time class load) ,我们的写的每一个Java文件,会被编译器编译成为class文件,然后根据选择不同的打包选择,比如说 (jar, war, ear) ,被打包存放到系统的classpath中。在运行一个java程序的时候,会有几个步骤, 包括装载,链接,初始化,翻译 (在翻译成机器码的时候同时会对代码进行优化,inline) ,运行,就如下图 这里的关键,就是这个classloader。所有的类都会在jvm中生成为class对象,存放在内存当中, (这里,主要分成两部分,常量池和方法字节码) 当我们的程序生成一个类的实例或instance时候,就会根据这个类对象,分配和初始化内存用于存储对象的field,然后在调用对象方法的时候,则从class对象中获取方法字节码,如下图: 因此,如果我们能够在JVM里面途欢这个class对象,那么我们创建的所有object或instance,在调用函数的时候,就可以动态获得你修改之后的代码。如下图: hotswap的原理,就是替换jvm里面的class对象. Sun 在2002年把这项技术引入到java 1.4的JVM中,Hotswap需要和debuggerAPI一起协同工作,我们可以通过debugger来更新jvm里面同名的class bytecode 因此,这也就限制了,我们在使用hotswap的时候,必须使用debug mode.因此也就限制了java app必须是运行在jdk上,而不是jre上,JAVA_HOME必须指向JDK。 说了这么多理论,回到我们最初的话题,如何做到hotswap呢,步骤很简单: 用debug模式attach我们的app 修改你的java文件,并且编译 这时,神奇的事情发生了,如下图 我们的class被reload了,我们可以不用重新把app部署到服务器上就可以直接看修改代码之后的结果。 等等,天底下有这么容易的事情吗?!这个solution是有缺陷的,那就是我们只能简单修改class method的内容,如果我们新添加了Method,field,或者在method里面引用了新的lib,增加了Import语句,那么对不起,你会看到: hot swap失败了。 那么有没有什么解决方案呢?有!收费的JRebel,或者免费的HotSwapAgent+DCEVM 让我们来看看什么是DCEVM: https://dcevm.github.io/ The Dynamic Code Evolution VirtualMachine (DCEVM)is a modification of the Java HotSpot(TM) VM that allows unlimited redefinitionof loaded classes at runtime. The current hotswapping mechanism of the HotSpot(TM) VM allows only changing methodbodies. Our enhanced VMallows adding and removing fields and methods as well as changes to the supertypes of a class. ...

2019-12-17 · 1 min · 177 words · -

awk、grep、sed

awk、grep、sed awk、grep、sed是linux操作文本的三大利器,也是必须掌握的linux命令之一。三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂。 grep适合单纯的查找或匹配文本, sed适合编辑匹配到的文本, awk适合格式化文本,对文本进行较复杂格式处理。 awk https://blog.wiloon.com/?p=3738 sed https://blog.wiloon.com/?p=2838 grep https://blog.wiloon.com/?p=468 https://thief.one/2017/08/12/1/

2019-12-11 · 1 min · 12 words · -

Funtoo

Funtoo Funtoo Linux 是由 Daniel Robbins (Gentoo Linux的创始人和前项目领袖) 和一个核心开发团队基于 Gentoo 的发行版,它基于一个简单的愿景, 那就是提升 Gentoo Linux 中的核心技术。 https://imtx.me/archives/923.html https://www.funtoo.org/Welcome

2019-12-09 · 1 min · 17 words · -

kafka 分区数

kafka 分区数 Kafka的分区数是不是越多越好? 分区多的优点 kafka使用分区将topic的消息打散到多个分区分布保存在不同的broker上,实现了producer和consumer消息处理的高吞吐量。Kafka的producer和consumer都可以多线程地并行操作,而每个线程处理的是一个分区的数据。因此分区实际上是调优Kafka并行度的最小单元。对于producer而言,它实际上是用多个线程并发地向不同分区所在的broker发起Socket连接同时给这些分区发送消息;而consumer,同一个消费组内的所有consumer线程都被指定topic的某一个分区进行消费。 所以说,如果一个topic分区越多,理论上整个集群所能达到的吞吐量就越大。 分区不是越多越好 分区是否越多越好呢?显然也不是,因为每个分区都有自己的开销: 一、客户端/服务器端需要使用的内存就越多 Kafka0.8.2之后,在客户端producer有个参数 batch.size,默认是16KB。它会为每个分区缓存消息,一旦满了就打包将消息批量发出。看上去这是个能够提升性能的设计。不过很显然,因为这个参数是分区级别的,如果分区数越多,这部分缓存所需的内存占用也会更多。假设你有10000个分区,按照默认设置,这部分缓存需要占用约157MB的内存。而consumer端呢?我们抛开获取数据所需的内存不说,只说线程的开销。如果还是假设有10000个分区,同时consumer线程数要匹配分区数(大部分情况下是最佳的消费吞吐量配置)的话,那么在consumer client就要创建10000个线程,也需要创建大约10000个Socket去获取分区数据。这里面的线程切换的开销本身已经不容小觑了。 服务器端的开销也不小,如果阅读Kafka源码的话可以发现,服务器端的很多组件都在内存中维护了分区级别的缓存,比如controller,FetcherManager等,因此分区数越多,这种缓存的成本就越大。 二、文件句柄的开销 每个分区在底层文件系统都有属于自己的一个目录。该目录下通常会有两个文件: base_offset.log和base_offset.index。Kafak的controller和ReplicaManager会为每个broker都保存这两个文件句柄(file handler)。很明显,如果分区数越多,所需要保持打开状态的文件句柄数也就越多,最终可能会突破你的ulimit -n的限制。 三、降低高可用性 Kafka通过副本(replica)机制来保证高可用。具体做法就是为每个分区保存若干个副本(replica_factor指定副本数)。每个副本保存在不同的broker上。期中的一个副本充当leader 副本,负责处理producer和consumer请求。其他副本充当follower角色,由Kafka controller负责保证与leader的同步。如果leader所在的broker挂掉了,contorller会检测到然后在zookeeper的帮助下重选出新的leader——这中间会有短暂的不可用时间窗口,虽然大部分情况下可能只是几毫秒级别。但如果你有10000个分区,10个broker,也就是说平均每个broker上有1000个分区。此时这个broker挂掉了,那么zookeeper和controller需要立即对这1000个分区进行leader选举。比起很少的分区leader选举而言,这必然要花更长的时间,并且通常不是线性累加的。如果这个broker还同时是controller情况就更糟了。 如何确定分区数量呢? 可以遵循一定的步骤来尝试确定分区数: 创建一个只有1个分区的topic,然后测试这个topic的producer吞吐量和consumer吞吐量。假设它们的值分别是Tp和Tc,单位可以是MB/s。然后假设总的目标吞吐量是Tt,那么分区数 = Tt / max(Tp, Tc) 说明: Tp表示producer的吞吐量。测试producer通常是很容易的,因为它的逻辑非常简单,就是直接发送消息到Kafka就好了。Tc表示consumer的吞吐量。测试Tc通常与应用的关系更大, 因为Tc的值取决于你拿到消息之后执行什么操作,因此Tc的测试通常也要麻烦一些。 ———————————————— 版权声明: 本文为CSDN博主「AlferWei」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接: https://blog.csdn.net/OiteBody/article/details/80595971

2019-11-27 · 1 min · 42 words · -

基站定位

基站定位 MCC: 国家码 MNC: 运营商码 LAC: 位置区码, 大区 CellID: 基站塔码, 小区

2019-11-26 · 1 min · 11 words · -

go 调试, pprof, go tool trace

go 调试, pprof, go tool trace 做 Profiling 第一步就是怎么获取应用程序的运行情况数据。go 语言提供了 runtime/pprof 和 net/http/pprof 两个库 http api // pprof 的init函数会将pprof里的一些handler注册到http.DefaultServeMux上 // 当不使用http.DefaultServeMux来提供http api时,可以查阅其init函数,自己注册handler import _ "net/http/pprof" go func() { http.ListenAndServe("0.0.0.0:8080", nil) }() http://localhost:8080/debug/pprof/ cpu go tool pprof http://localhost:8080/debug/pprof/profile?seconds=60 mem go tool pprof http://localhost:6060/debug/pprof/heap block go tool pprof http://localhost:8080/debug/pprof/block mutex go tool pprof http://localhost:6060/debug/pprof/mutex runtime/pprof // CPUProfile enables cpu profiling. Note: Default is CPU defer profile.Start(profile.CPUProfile).Stop() // GoroutineProfile enables goroutine profiling. // It returns all Goroutines alive when defer occurs. defer profile.Start(profile.GoroutineProfile).Stop() // BlockProfile enables block (contention) profiling. defer profile.Start(profile.BlockProfile).Stop() // ThreadcreationProfile enables thread creation profiling. defer profile.Start(profile.ThreadcreationProfile).Stop() // MemProfile changes which type of memory profiling to // profile the heap. defer profile.Start(profile.MemProfile).Stop() // MutexProfile enables mutex profiling. defer profile.Start(profile.MutexProfile).Stop() golang CPU profiling CPU 性能分析(CPU profiling) 是最常见的性能分析类型。 ...

2019-11-20 · 2 min · 298 words · -

VMware ESXi

VMware ESXi http://idc.wanyunshuju.com/li/580.html free license https://kb.vmware.com/s/article/2107518 虚拟机导出 各种类型的文件 .ovf OVF 模板,该模板将虚拟机或虚拟设备的状态捕获到一个自包含的包中,并且磁盘文件以压缩格式存储。 .mf .iso .vmdk 虚拟机磁盘, Virtual Machine Disk .nvram 虚拟机 BIOS 或 EFI 配置

2019-11-11 · 1 min · 24 words · -

state和status的区别

state和status的区别 state和status的区别 state: 比较常用,各种状态都可以用它,但是它更着重于一种心理状态或者物理状态。 Status: 用在人的身上一般是其身份和地位,作"状态,情形"讲时,多指政治和商业。 state倾向于condition,是一种延续性的状态。status常用于描述一个过程中的某阶段 (phase) ,类似于C语言中枚举型变量某一个固定的值,这个值属于一个已知的集合。 比如淘宝买家问卖家"我的网购现在是什么状况?" 这个问题的背景是讲话双方都清楚,交易状态有"买家选购"“买家已付款"“卖家已发货"“买家已签收"或者有"买家已 投诉"等等状态。这些状态描述一件事情发展过程中的不同阶段。而且,这些阶段的先后顺序也是双方默许的。 所以在这里可以问"What’s the status of my purchase?",此处用state不太贴切,如果硬用上去从语感上可能听着别扭。 说物态变化用state再恰当不过。如果说一个物质的四种状态,可以说"solid state”,但如果你说"solid status”,第 一,这两个词的组合不像是描述物态,更像是在说"确定的状况 (solid产生歧义’确定的/确凿的’) “;第二,这个说法即 使不被误解,也需要事先约定一组物态变化顺序,比如把这个物质从固态开始加热然后电离,可能先后经历固态、液态、气态、等离子态这四个阶段。类似先定义枚举,然后引用的方式。 扩展: ajax中readyState,statusText,onreadystatechange,window.status怎么一会state一会是status都晕乎了 state所指的状态,一般都是有限的、可列举的,status则是不可确定的。 比如 readyState - 就那么四五种值 statusText - 描述性的文字,可以任意 onreadystatechange - 那么四五种值之间发生变化 window.status - 描述性的文字,可以任意 来个形象的比方,你体重多少公斤,属于status,但说你体重属于偏瘦、正常还是偏胖,那就是state. https://www.cnblogs.com/likebeta/archive/2012/07/03/2574595.html

2019-11-08 · 1 min · 43 words · -

golang 位运算

golang 位运算 & 位运算 AND | 位运算 OR ^ 位运算 XOR &^ 位清空 (AND NOT) << 左移 >> 右移 无符号右移 https://blog.wiloon.com/?p=15522 & 操作符 假设给定数值 a,b 只有满足 a = b = 1 的情况下下 AND(a,b) = 1,否则为 0 所以AND的另外一个很好的效果是可以用于把一个整数进行清零。 func main() { var x uint8 = 0xAC // x = 10101100 x = x & 0xF0 // x = 10100000 } | 操作符, OR | 操作符对整数部分执行OR操作。回顾一下OR操作符的属性: 给定数值 a, b 当 a = 1 或者 b = 1 OR(a,b) = 1 否则为 0 我们可以对一个给定的整数选择性地使用OR操作符设置各个位的值。例如,在下面的例子中,我们使用OR运算符 (从最低位到最高位 (MSB) ) 将第3位,第7位和第8位设置为1。 ...

2019-11-06 · 1 min · 124 words · -

gnome keyring

gnome keyring install sudo pacman -S gnome-keyring libsecret vim .bashrc eval $(/usr/bin/gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh) export $(gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gpg) dbus-update-activation-environment --systemd DISPLAY secret-tool, 用 secret-tool 测试 gnome keyring daemon 是否正常 secret-tool 由 libsecret 提供 secret-tool store --label='Label' foo bar secret-tool lookup foo bar secret-tool store --label='Label' {attribute} {value} ... secret-tool lookup {attribute} {value} ... secret-tool clear {attribute} {value} ... secret-tool search [--all]{attribute} {value} ... secret-tool secret-tool - 通过命令行访问 GNOME keyring (以及其他任何实现了DBus Secret Service API的服务) 。 secret-tool - Store and retrieve passwords ...

2019-11-05 · 1 min · 83 words · -

TC1

TC1 https://ljr.im/articles/streamline-the-fibonacci-tc1-firmware/ docker pull python:2-slim-stretch docker run -it -name mico -v /home/wiloon/tmp/mico:/workdir python:2-slim-stretch bash apt update && apt install git wget lib32ncurses5 ln -s /usr/local/bin/python /usr/bin/python 容器bash pip install mico-cube && \ cd /workdir && \ wget http://firmware.mxchip.com/MiCoder_v1.1.Linux.tar.gz && \ tar -zxf MiCoder_v1.1.Linux.tar.gz && \ rm MiCoder_v1.1.Linux.tar.gz && \ mico config -global MICODER /workdir/MiCoder 容器bash cd /workdir && \ mico new TC1 -create-only 容器bash cd /workdir/TC1 && \ mico add https://code.aliyun.com/mico/mico-os.git/#6c465211d3ff8797cd835e400ec54a06530dd476 容器bash git clone https://github.com/cnk700i/tc1_mqtt.git && \ mv tc1_mqtt/TC1 . && \ ...

2019-11-02 · 2 min · 232 words · -

golang 百万 TCP 连接

golang 百万 TCP 连接 https://colobu.com/2019/02/23/1m-go-tcp-connection/ https://github.com/smallnest/1m-go-tcp-server

2019-11-01 · 1 min · 6 words · -

两个 iphone 同步数据

iphone 换手机, 两个 iphone 同步数据, new iphone, sync 旧手机关掉 vpn 旧手机备份和删除照片 旧手机删除 trust 新 iphone 开机 选完语言之后停在 quick start 页面 把旧手机靠近新手机 在新手机上点 continue 用旧手机扫新手机屏幕 按提示操作 选择直接复制不选从icloud同步 check list duo mobile, 新手机 app 激活之后, 旧手机的 app 就不能用了 webex 重新登录 bitwarden, 新手机上重新输入密码 ultra mobile eSIM, wifi calling hsbc, 先在旧手机里操作删除保安密码器, 再去新手机登录, 拍护照的照片可能会失败, 失败三次之后会引导输入密码登录 银行 app 重新登录, 开 faceid 微信, 支付宝 开 faceid 支付

2019-11-01 · 1 min · 60 words · -