Raspbian 扩容 SWAP 分区的正确姿势
树莓派装好 Raspbian 系统后,默认的 SWAP 分区是 100M,用着用着 ZABBIX 就告警 SWAP 分区不足,网上许多资料都是增加个 SWAP 文件,然后在 fstab 挂盘。其实我们发现在编辑树莓派 fstab 文件的时候,就发现有两句话。
12# a swapfile is not a swap partition, no line here# use dphys-swapfile swap[on|off] for that
这其实已经说明了,官方推荐使用 dphys-swapfile 挂载 SWAP。
编辑配置文件1sudo vim /etc/dphys-swapfile
修改 CONF_SWAPFILE 和 CONF_SWAPSIZE
12CONF_SWAPFILE=/var/swapCONF_SWAPSIZE=2048
一般 SWAP 大小就给 2 倍物理内存就好了。
使 SWAP 生效1systemctl restart dphys-swapfile
划分空间需要一点时间,等他一会,free -h 就可以看到 SWAP 分区已经 2G 了。
ZABBIX 升级小记(5.0LTSto6.0LTS)
近日 ZABBIX 发布了其 6.0 的 LTS 版本,增强了业务服务监控、数据可视化的能力,也为我们带来了期待很久的 HA、K8S 等新功能。
抽个周末,给自己 HomeLAB 原来的 5.0LTS 升级到 6.0LTS 版本。如果想了解 ZABBIX 新功能,可以转向 6.0 What’s New 了解详情。
我的 ZABBIX 是运行在树莓派 3B+(1G 内存 +64G 存储)上的,能满足我对全家网络设备、服务器以及其他基础设施的监控和管理。其操作系统是 Debian11。
整个升级包含:升级条件判断,备份,升级软件包,验证业务,四个部分。
升级条件判断升级前你需要判断一下你的系统,基础组件,例如 PHP-FPM 版本,数据库版本,是否支持最新版本的 ZABBIX。
如图,以我当前情况下,从 5.0LTS 到 6.0,只要保证 PHP-FPM 版本>7.2 即可。
备份停掉现有的 Zabbix-Server,并备份数据库,备份相关配置文件。
12345service zabbix-server stopmysqldump zabbix > zabbix_2022 ...
RouterOS GREv6 隧道做 OSPF
整体思路是两个 ROS 路由器做 GREv6 隧道,然后通过 OSPF 互宣路由。因为只有一个 OSPF 区域,所以直接放在 Area0 了,在 ROS 里叫 Backbone。
前提条件:
两边 GRE 隧道已经拉起来了。
ROS1:GRE 接口-> gre6-r2 业务接口:br_main
ROS2: GRE 接口-> gre6-r1 业务接口:br_main、br_vm
操作步骤:
1、修改 R1 的 RouterID:Routing/OSPF/Instances
2、为 R1 添加 OSPF 接口,把 GRE 接口和业务接口都加进去:Routing/OSPF/Interface注意网络类型是 Broadcast
3、为 R1 添加要宣告的网络:Routing/OSPF/Networks
4、启用 R1 的 Area:Routing/OSPF/Areas
5、R2 需要重复 1-4
5、查看 R1 的邻居信息:Routing/OSPF/Neighbors如图成功建立 ...
RouterOS HE.NET DDNSv6 脚本
RouterOS 的 Cloud 其实是支持 Push IPv6 地址的,会很“智能”的推送默认 IPv6 的前缀地址,但如果网络环境是多线的情况下,这个智能就显得比较鸡肋。所以我们一般把 Cloud 的 IPv6 Support 关掉,找第三方的服务去做 DDNS。
如何干掉 ROS 原生的 DDNSv6
以下脚本可以帮助你将 ROS 某个接口的 IPv6 地址,推送给 HE.NET 的 DDNS 上。这是完全依赖 ROS 命令和 HE.NET 官方接口的,无需借助第三方服务器,安全可靠。
1234567891011121314151617181920212223:global hostname "xxxx.ddns6.16iot.cn":global password "p@ssw0rd2022":global intv6 "pppoe-out":log info ("[ipv6_ddns]" . $intv6 . " is running."):global "addre ...
GitLab 迁移和升级小记
记录一下最近做的 GitLab 迁移和升级的事情。
高危操作警告升级及迁移存在风险,若您在操作生产环境,请提前做好升级计划和升级方案,以防升级失败造成服务不可用或数据丢失。
要做什么1、从裸机 CentOS6 GitLab-Omnibus 迁移到 Docker 环境中。2、跨版本升级 GitLab 版本,从 11.x 到 13.x。
准备怎么做根据需求,计划先做同版本迁移,再做跨版本升级。
迁移在新机器上准备一个 Docker 环境,因为是通过 Docker Compose 拉起容器的,所以还需要安装 Docker Compose。
根据 GitLab Docs 中提及的 Install GitLab using Docker Compose 准备好 docker-compose.yml。注意文件中的 image 版本应该和原机器 GitLab 版本保持一致。
以 CE 版本(GitLab 社区版,非极狐版)为例,具体的 Tag 可以在 DockerHub 中找到。
备份我们需要在老机器上备份三个文件。
/etc/gitlab/gitlab-secre ...
openEuler 搭建 SeaTable 小记(1)
众所周知的 Seafile 老用户了,家里的私有云盘一直在使用 Seafile。有时候收集或分享文件时也会直接甩 Seafile 链接,Seafile 可以很好的存储和分享文件。
最近一直再找一个笔记软件(要求是啥都能存),有事没事打算记录点啥东西,试过 Typora,试过 OneNote,试过 MyBase,甚至是为知笔记(私有部署版),总觉得差点什么。
突然发现 Seafile 团队搞的一个新产品叫 SeaTable,按照官方的说法:
SeaTable 是一款新型的在线协同表格和信息管理工具。它支持“文件”、“图片”、“单选项”、“协作人”、“计算公式”等丰富的数据类型。它帮助你用表格的形式来方便的组织和管理各类信息,同时又和专门的软件系统一样强大。它还可以按照你的需要进行扩展,实现数据处理的自动化和业务流程的自动化。
咦,这不就是我要找的可以啥都能存的小工具么,好像还能写脚本自动化的搞一些事情。看起来不错哦~ 于是花了点时间上了一台 SeaTable 打算使用一下。CentOS 更新策略变了,是时候选择一个“下一代”的服务器操作系统了,不打算再新装 CentOS7 了,一直关 ...
解决 Ubuntu 20.04 ROOT 用户无法本地登录的问题
问题描述新装一台 Ubuntu 20.04 系统,改了 root 密码,想用 root 用户登录系统。确定自己已经使用了正确的 root 密码,系统还是提示 Sorry,无法登录。
排查过程使用普通用户登录系统,查 root 用户是否被锁定。
cat /etc/shadow | grep root
如果出现 root:!!$6$CG (注意!!)则说明 root 用户被锁定,不能登陆。若被锁定,则可使用passwd -u root 解除用户锁定。
本环境没有 root 用户并没有被锁定,继续排查。
su 到 root,安装 ssh 服务,开启 root 的远程连接。
SSH 远程登录系统,看一下 journalctl 日志。journalctl -f
本地使用 root 用户登录,看日志是否报错。
发现报错:requirement “user != root” not met by user “root”
原来是 PAM 拦截了 root 用户的登录。
解除 PAM 限制,cd /etc/pam.d/ 修改gdm-password文件,具体要改哪个文件,看报错。
vi g ...
X86_64 环境下使用 QEMU 虚拟机安装 ARM 版 EulerOS 小记
由于架构不同,X86_64 环境下无法直接安装 ARM 版操作系统和软件。我们可以使用 QEMU 创建 AARCH64 虚拟机来安装 ARM 版的 EulerOS。
QEMU 是一款纯软件实现的虚拟化软件,可以通过模拟 CPU、内存、IO 设备等硬件设备,虚拟出一台独立运行操作系统的虚拟机。QEMU 使得 GuestOS 认为自己直接和硬件打交道,但其实指令都会被 QEMU 转手进行翻译才送给物理机执行,所以这种方式创建的虚拟机性能相对较低。但 QEMU 还是有一定优势,就是可以模拟各类的硬件设备,例如 aarch64、mips64、ppc、s390x 等。
环境准备
物理机:配置不应低于 4C8G,硬盘不低于 300G
操作系统:Ubuntu 18.04.5 LTS
内核版本:Linux version 5.0.0-23-generic
QEMU 版本:qemu-aarch64 version 2.11.1
镜像:
ubuntu-18.04.3-desktop-amd64.iso
EulerOS-V2.0SP3-aarch64-dvd.iso
安装过程在物理机中安装 Ubun ...
命令行操作 VMware WorkStation 小记
Windows 环境下,需要使用命令后台开启虚拟机。操作环境:Windows 10 工作站版、VMware WorkStation 16 Pro
通过使用 vmrun 命令可以对虚拟机进行后台开机操作。
1234cd C:\Program Files (x86)\VMware\VMware Workstation>.\vmrun.exe start D:\VMware\Win10\Win10.vmx nogui
常见命令及详解:
123456789101112131415161718192021222324# 启动虚拟机操作# -T 可指定宿主主机类型,合法的类型包括:ws(vmware workstation)|server|server1|fusion|esx|vc|player,其中ws、esx、player较为常用# nogui 表示无图形界面启动,也可以指定为gui表示图形界面启动.\vmrun.exe -T ws start guest.vmx nogui | gui# 关闭虚拟机操作# hard 表示硬关机,也可以指定为soft表示软关机.\vmrun.exe s ...
【Ubuntu】解决标准用户不在 sudoers 文件中的问题
不好意思没留图。最近遇到一个设备,是 Ubuntu16 的系统,厂家不提供 root 密码,只提供了一个普通权限的用户,在这个普通用户下无法使用 sudo,会提示“用户不在 sudoers 文件中”的错误。
对于这种情况有两个思路,一是进入 Single 模式下,直接修改 root 密码。二是修改 sudoers 文件,为这个普通用户授予 sudo 权限。
尝试进入开机按 Shift 进入 Grub,按 e 进入编辑模式,发现 Grub 还被锁了,需要用户名和密码才可以编辑。
重启服务器设备,挂载 Ubuntu LiveCD,进入 LiveCD 系统。
使用 fdisk-l 查看硬盘信息,发现有两个分区,sda1 2G 大小,sda2 800G 大小。分析易得 sda2 应该是 Linux 分区。
使用 mount /dev/sda2 /home/ubuntu/sda2 命令挂载分区。此时 sda2 目录下,即为设备的 Linux 系统分区。
先敲掉 Grub 密码,直接编辑 grub.conf。vi boot/grub/grub.co ...