树莓派 通过USB从U盘或移动硬盘启动

起因是多年来Raspberry 2B 已经用坏我3张TF卡了,不能再继续这样了。 制作系统镜像 准备一张容量不少于4G的TF卡,准备好系统镜像并写入TF卡,这里我用的电脑系统是 Debian: # 解压xz格式的系统镜像 我下的是不带UI的lite版本 unxz xxx.img.xz # 写入到TF卡, /dev/sdc 为TF卡的设备路径 sudo dd if=xxx.img of=/dev/sdc bs=1M # 默认开启SSH,无须再接显示器和键盘进行配置 # dd 写入镜像到TF卡后,会创建两个分区分别为boot和rootfs,挂载第一个boot分区 mkdir tmp && sudo mount /dev/sdc1 tmp # 在其中创建ssh文件后,树梅派在启动后发现存在该文件会自动开启SSH服务 sudo … “树莓派 通过USB从U盘或移动硬盘启动”

Read More

从私钥导出公钥

生成密钥对后,偶尔会遗失公钥文件,但只要私钥还在其实还是可以还原出公钥的. ssh-keygen -y -f .ssh/id_xxxx

Read More

简单的shell连写判断对应pod是否创建

当前的运维监控是比较简陋的,运维程序在kubectl apply YAML配置后需要判断是否成功创建对应的pod, 嫌调用 kubenetes 的接口太麻烦,就直接用了 shell 命令行, 这里简单记录下: var svrName = “xxx”; var yamlFileName = “test.{svrName}.yaml”; var timeoutSecond = 100; var k8SJob = “svrName-job”; var cmd = “kubectl create -f {yamlFileName} \ && ret=0 … “简单的shell连写判断对应pod是否创建”

Read More

记录Git 中几种忽略控制的方式

忽略未追踪的文件 据我所知目前共有3种方式: 1.编写由本仓库记录要忽略内容的.gitignore文件,并将该文件加入版本控制. 这是最常见的方式,创建完一个仓库的第一件事就是把当前仓库存放的项目无关的文件或目录加入到.gitignore文件中,这些需要加入忽略的可以是编译的中间文件 或 构建结果 或 IDE相关的配置文件 或 当前平台的配置文件等,并在仓库在其他设备上拉取后也能应用相同相同的忽略配置. 2.编写本仓库仅本地要忽略内容的$GIT_DIR/info/exclude文件,此配置不会加入到版本控制. 这种方式也较常用,比如编写了一个仅本机可用的配置或某些执行脚本,但出于某些原因又不想更新或暴露在.gitignore文件中被他人所见,故可以添加到仓库配置文件夹的info/exclude文件中. 3.编写本机本用户要所有仓库都忽略的$XDG_CONFIG_HOME/git/ignore文件,此配置同样不会加入到版本控制. 这应该是最少使用的,但很这适合我这种懒人,我比较喜欢取同名的本地构建脚本,这种只需写一次就应用全局的方式让我很中意. 忽略文件的编写规则可以参见 官方指导. 忽略已追踪的文件 据我所知目前有两种方式: 1.文件仍在版本控制中,也可拉取更新,但忽略本地对该文件的修改. 使用命令 git update-index –[no-]assume-unchanged <file> [file…] 添加要被忽略或撤销已被忽略的文件. 该方式适用仓库中存在类似模板配置之类的文件,需要手动修改后才可使用的情况,且并不需要将仅适用本机的改动覆盖掉仓库的模板。 2.移除仓库中已被追踪的文件 使用命令git rm –cached <path> [path …] 即可移除仓库对文件的所有追踪历史,注意这删除的不仅仅是文件还包括对文件的所有改动历史,该操作没有后悔药,执行后便无法还原文件的历史,只能重新添加.

Read More

创建基于Fannel网络的Kubernetes 1.11.4

上次发布的 K8s 1.10.3 构建 的文章被喷我太懒,居然文章里还嵌了另一篇内容,而这另一篇文章里面居然还嵌了另一篇,简直不能看. 其实二进制搭建 K8s ,很多的步骤都是要重复的,并且升级版本也是,改动的只是极个别的参数,个人不是很喜欢其他的构建方式,比如16年和17年用 kubeadm 或 minikube 的时候,老会被网络问题困扰,毕竟公司的大网络环境下不能随意上代理, 而 kubespray(之前叫kargo) 的参数化配置还必须预先准备要用的程序然后再一行行填写,我也不喜欢,因此我为自己方便,早早的就搞了个 shell 的一键构建脚本,. 准备环境 本次构建同样是基于 Fannel 网络,并启用 IPVS. Master节点的配置建议 2U2G 起,Node 节点的配置建议 2U2G 起. 各节点系统为 CentOS 7 ,需要配置各个节点的名称,IP,全部流程使用 root 权限,关闭 SELinux … “创建基于Fannel网络的Kubernetes 1.11.4”

Read More

7-Zip添加Plugin支持SHA-512校验方式

7-Zip 是一款强大的解压缩程序,并自带了多种校验算法,已经用了有十余年. 从2017年 Google 宣布 SHA-1 的碰撞文件后,网上文件的校验码开始从 MD5 / SHA-1 向 SHA-256 走了.但是最近一些软件发布时,带的校验码都已经升级到了SHA-512,这时候数年一更的 7-Zip 就尴尬了,不支持 SHA-384 和 SHA-512 的校验. 今天逛7-Zip社区突然发现有人给 7-Zip 开发了一个插件, 叫做 WinCryptHashers. 安装方式很简单,在 7-Zip 的安装目录新建一个Codecs子文件夹,然后将下载过来的WinCryptHashers.64.dll或WinCryptHashers.32.dll(根据当前系统上安装的 7-Zip的版本类型,在帮助中可以查看32位或64位) 放入此目录,编辑WinCryptHashers.ini其中[Main]项下将想要校验的方法由0改为1即可.然后打开 7-Zip 选中文件右击点 CRC 中的*即可.(如果CRC有添加到右键也可直接点击)

Read More

解决flutter中Snackbar的显示问题

直接调用在SnackBar在底栏无法出现,可以给SnackBar写个扩展: class MySnackBar { static Show(final GlobalKey<ScaffoldState> scaffold, BuildContext context, String str) { final MySnackBar = new SnackBar(content: new Text(str)); scaffold.currentState.showSnackBar( MySnackBar); } } 这样在调用的时候关联GlobalKey传入,比如按钮的点击动作中加入即可: GlobalKey<ScaffoldState> scaffoldKey = new GlobalKey(); … onPressed:(){ MySnackBar.Show(scaffoldKey, context, “show … “解决flutter中Snackbar的显示问题”

Read More