使用s6-Overlay来管理多进程容器
容器使用最佳实践是:一个容器运行一个进程,进程退出容器也就退出,很优雅是不是?但是…在日常工作中总有一些你懂的的原因,就需要多个进程塞在一个容器里面,那么我们可以怎么来管理容器内进程呢?这个时候容器内的进程管理工具就派上用场了。s6-Overlay 就是其中之一s6-Overlay 官方 github 地址:https://github.com/just-containers/s6-overlay 安装容器是通过判断 pid=1 的进程来判断容器是否工作正常的,也就是说 s6-Overlay 进程 pid 为 1 通过官方安装脚本来安装 12345678FROM ubuntuADD https://github.com/just-containers/s6-overlay/releases/download/v2.2.0.1/s6-overlay-amd64-installer /tmp/RUN chmod +x /tmp/s6-overlay-amd64-installer && /tmp/s6-overlay-amd64-installer...
Flask之服务端持久化session
需求如下:开发一个 web 界面,用户经过 oauth 认证后,给用户生成一个随机密码显示出来,并将用户名和密码发送给 radiusserver 用来当作 WIFI 密码。因为希望密码不要随便就更换,那样员工出去再进来,手机就需要重新输入新密码才能连 WIFI,容易被人打。所以用 session 存储的方式,将密码保存一定时间。 什么是 sessionsession 基于 cookie 实现,保存在服务端的键值对(dict 类型),同时在浏览器中的 cookie 中也对应一相同的随机字符串,用来再次请求的时候验证Flask 中的 session 是加密的,所以需要配置 SECRET_KEY 开始使用导入模块1from flask import Flask, render_template, request, session 配置 SECRET_KEY1app.secret_key = os.getenv("SECRET_KEY", "not set key") 设置 session 类型可以存临时文件,还可以存...
检查端口是否能通的几种方法
服务器上运行了一个服务,想测试一下端口通不通,可以通过以下一些方法来测试。 telnet常见的 tcp 端口测试都是用的 telnet,用法也很简单 1telnet 10.0.0.7 22 成功会显示: 1234Trying 10.0.0.7...Connected to 10.0.0.7.Escape character is '^]'.SSH-2.0-OpenSSH_7.4 失败会显示: 12Trying 10.0.0.7...telnet: Unable to connect to remote host: Connection refused ssh使用 1ssh root@localhost -p 8000 失败会显示 1ssh: connect to host localhost port 8001: Connection refused curlcurl ip:port 失败会显示 1curl: (7) Failed to connect to localhost port 8001: Connection...
使用radius和OpenLDAP来认证unifi AP
公司目前用的 WIFI 是 unifi 的 AP,员工离职后仍然可以连接公司 WIFI,是一个安全隐患,所以准备将 AP 接入 radius 来认证,数据取自 openldap,员工离职删除 openldap 账号即可。 本次操作系统使用的是 CentOS 7 OpenLDAP 参考文章:https://www.server-world.info/en/note?os=CentOS_7&p=openldap 安装 OpenLDAP1234yum install -y openldap openldap-clients openldap-serverscp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIGchown ldap. /var/lib/ldap/DB_CONFIGsystemctl enable --now slapd OpenLDAP 基础配置 生成一个密码 slappasswd 将生成的密码复制保存 设置 root 密码 chrootpw.ldif ...
将wsl里的文件挂载进虚拟机
虽然不同操作系统使用起来大致类似,很多开源软件同时支持 Linux 和 Windows,就算不支持,Windows 还有 cygwin 或 WSL,Linux 也有 wine,但是我感觉这两种系统最大的区别还是文件系统,比如将 Linux 下的文件复制到 Windows,然后再复制回 Linux,得到的文件和原来的是一样的吗,答案是否定的,因为文件权限可能已经发生了变化,另外 Windows 的 NTFS 大小写不敏感,导致很多时候从 Linux 复制文件到 Windows 的时候总会弹个窗问我是否覆盖,还有 Linux 的软链接也无法复制到 Windows 里面。本人平时写代码等都是在 linux 上运行的,不过最近系统换成了 Windows,为了避免以上问题,将文件放进了 WSL 里面,同时用到了虚拟机做测试,所以想将 wsl 和虚拟机的目录进行同步,才有了这篇文章。 在 Windows 环境下找到想要共享的目录 以下 3 种都可以 在 Windows 下可以这样访问 WSL\\wsl$\发行版名,比如 \\wsl$\Ubuntu,将完整的链接复制下来。 将...
最后一个Typora免费版0.11.18
Typora 是一个所见即所得的 Markdown 跨平台写作工具,目前已经发布正式版,并且更改为付费模式,0.11.18_beta 是最后一个免费的测试版,有需要的可以选择下载。 Windows 用户下载地址: https://github.com/iuxt/src/releases/download/2.0/typora-0-11-18.exe 0.11.18 现在被远程施法了,会提示过期无法使用,可以使用 0.9.96 版 下载地址:https://github.com/iuxt/src/releases/download/2.0/typora-setup-x64_0.9.96.exe Mac 用户下载地址: https://github.com/iuxt/src/releases/download/2.0/typora-0-11-18.dmg Ubuntu 用户下载地址:https://github.com/iuxt/src/releases/download/2.0/Typora_Linux_0.11.18_amd64.deb 安装方法使用 apt...
Python使用dotenv来管理环境变量
管理环境变量是一件比较麻烦的事情,好在 python 有 python-dotenv 可以帮助我们来简化这个操作 安装直接 pip 来安装就好 1pip install python-dotenv 使用创建.env 文件,记得添加到.gitignore 里面 .env 文件内容为键值对形式 12#这是注释FOO="BAR" 123456import dotenvimport osdotenv.load_dotenv()print(os.getenv("FOO")) shell 脚本怎么使用.env 文件123source .envecho $FOO
笔记本电脑CPU性能被锁定在0.78GHz的原因及解决方案
家里的旧笔记本电脑使用电池正常工作,但是插上电源就锁频率 800MHz,非常的卡,Google 了一下,总结如下。 出现这种情况的原因 可能是由于供电不好,比如充电器非原装,或者散热不行系统会自动降低 cpu 频率来保证系统稳定。 一劳永逸的解决方案 使用原装的充电器 定期清理笔记本电脑灰尘 看看 bios 里面有没有相关的设置 BD PROCHOT,把它关掉,或者升级 bios 试试看看。 Windows 系统怎么解决Just download throttlestop and Disable BD PROCHOT and Turbo不过每次重启都需要重新设置一下官网下载地址:https://www.techpowerup.com/download/techpowerup-throttlestop/ Ubuntu 系统怎么解决1234567apt install cpufrequtils msr-tools -ycpufreq-set -c 0 -g performancecpufreq-set -c 1 -g performancecpufreq-set -c 2...
使用typora更好更快地写hugo博客
hugo 是一个静态博客生成工具,自己有自己的文件组织方式,所以导致的结果就是使用 typora 不能正常显示图片,插入图片也不能放在正确的位置上。typora 已经成为收费软件了,有能力请支持正版,或者使用旧版本 最后一个Typora免费版0.11.18 图片管理 按照图示设置后,即可正常显示图片,复制粘贴图片也能复制到正确的位置,设置完成后,发现 markdown 的 frontmatter 增加了 2 行: 12typora-root-url: ../../statictypora-copy-images-to: ../../static/img 意思是将图片放在 static 的 img 目录里。每次都在 markdown 文件添加上这两行即可,那么有没有办法自动添加呢? 当然有~ 编辑 hugo 目录下的 archetypes/default.md,这个文件是默认创建的模版。在里面添加上上述内容。 自动生成分类 不想让所有的 markdown 文件都在一个文件夹内,比如想按文件夹分类,A 文件夹内的文章发布后就是在 A 分类下。 可以将...
vagrant常见报错解决方案
vagrant 是一款虚拟机管理工具,可以通过代码来控制虚拟机的状态,帮助提升开发效率 提示 umount: /mnt: not mounted 出现这种情况一般是由于安装了 vagrant-vbguest 插件, 但是这个插件并不能自动帮助我们安装 vbguest这种情况可能是由于内核版本比较低导致的 方案 1: 升级内核 vagrantfile 增加一行 1config.vbguest.installer_options = { allow_kernel_upgrade: true } 方案 2: 降级 vagrant-vbguest 12vagrant plugin uninstall vagrant-vbguestvagrant plugin install vagrant-vbguest --plugin-version 0.21 报错网段不在 nat 网段里面vagrantfile 添加 virtualbox__intnet 参数 1node.vm.network "private_network",...