Category: 运维 DevOps

Windows Powershell下touch命令的实现

PowerShell 中的 touch 命令(兼容 Linux 风格) 如果你来自 Linux/macOS 环境,可能会很想念 touch 命令:当文件不存在时创建文件,存在时更新它的修改时间。PowerShell 本身并没有内置 touch 命令,但我们可以自己实现一个行为与 Unix 类似的版本(支持多个文件和通配符)。 本文提供一个实用的 touch 函数,你可以将其添加到 PowerShell Profile 中长期使用,同时包含示例和一些边界情况说明。 “touch” 应该具备的行为 在 Unix 系统中,touch 通常具备以下特性: 如果文件不存在,则创建一个空文件 …

废物利用: 树莓派4b藏在鞋柜里当个小型服务器

TLDR; 我现在有 27 台服务器,其中一些价格低廉甚至免费。例如,Oracle 会提供 2 台免费虚拟机,我家用的是一台 4b 的树莓派。我在小型虚拟机上运行微服务。我把树莓派放在鞋柜里,连接到路由器。我把 CPU 从 1.4 GHz 超频到 2.2 GHz,开了两个风扇,温度保持在 30 到 40 度之间。 树莓派4b:架设小型服务器用于跑微服务 我家里有三四台树莓派,大多都积灰吃灰了。其中有一台是那种键盘一体式的型号,类似小时候的小霸王学习机,几年前曾拿来给孩子做启蒙教育用。它的配置也是几台中最强的。其次是一台 Raspberry Pi 4B,配有四核 CPU 和 4GB 内存。 …

哪吒 Nezha 服务器监控软件: 一下子把28台服务器都放在一个页面里

这些年我陆续折腾过一些小项目,比如博客、在线工具、STEEM见证人等。目前我手头上管理着28台服务器,大多是一些价格便宜的VPS,最近新添的一台是家里鞋柜里的一块树莓派4B(Raspberry Pi)。 我把每台服务器的信息都记录在一个 Excel 表格中,包括 IP 地址、VPS 提供商、内存、硬盘等。这些信息都是静态配置数据。 平时我也写了不少小工具和 Bash 脚本,挂在 crontab 上定期运行,用来监控一些异常情况,比如磁盘空间不足、高 CPU 负载等。一旦检测到异常,就会通过邮件及时通知我。 比如以下BASH脚本(awk/sed)检测硬盘剩余空间: #!/bin/bash disk=$(df / | tail -1 | awk '{print $5}' | sed 's/%//') …

为什么 Linux Shell 命令前加空格会有影响?

理解 Linux Shell 中前导空格的行为 概述 在像 bash 这样的 Linux shell 环境中,命令前加一个空格可能会影响该命令是否被保存到命令历史中。 这个小技巧在处理敏感数据时非常有用,或者当你不希望某个命令被记录下来时也能派上用场。 关键变量:HISTCONTROL 这种行为是由一个叫做 HISTCONTROL 的 shell 环境变量控制的。 查看当前设置的方法如下: echo $HISTCONTROL 例如,你可能会看到: ignoredups:ignorespace 值的含义解释 选项 描述 ignoredups 防止连续重复的命令被保存到历史中。 ignorespace …

MySQL参数一键配置脚本: 有效提升数据库性能

我一直是自己租用VPS服务器,然后搭建各种服务,比如博客就是Apache2+MySQL数据库。一般来说就是默认参数,没有去管,不过最近发现MySQL的性能参数都很保守,不能发挥整个服务器的性能。 然后我就网上搜索了一下,根据参数配置建议,用ChatGPT写了以下Python和BASH脚本。只需要在需要优化的服务器上,跑一下该脚本,然后就会显示参数配置,然后直接把参数添加到MySQL数据库配置参数文件上: /etc/mysql/mysql.conf.d/mysqld.cnf 然后运行: service mysql restart 重启MySQL服务器。 运行了几周,发现效果很好,博客反应速度也快了很多,这很大原因是根据了内存增加了MySQL缓存大小。 Python脚本优化MySQL数据库参数 把下面的Python脚本存成 mysql_config.py 然后运行 python3 mysql_config.py def get_total_ram(): with open('/proc/meminfo', 'r') as f: for line in f: if line.startswith("MemTotal:"): total_ram_kb …

把 MySQL 中的 MyISAM 表格转换成 InnoDB 的PHP小工具

我们都知道 MYSQL中常见表格的引擎有两种: 一是MyISAM 另一种是 InnoDB (当然还有Memory, CSV等其它系统自带的类型). MyISAM 是5.5.1版本前默认的数据库引擎类型, 而5.5.1版之后所有新创建的表格默认类型就是 InnoDB 了. MyISAM 的优点是压缩比较大, 同时是整个表格锁定, 所以不太适合经常插入删除的表格. MyISAM 还不支持 Transaction, 在之前, MyISAM 的一大优点是支持 全文检索 Full Text Indexing 不过现在 InnoDB 也可以了. …

通过 MySQLTuner 来检查数据库配置

如果自己折腾 VPS 那很有可能得自己配置 MYSQL 数据库. /etc/mysql/my.cnf 则是MYSQL的配置参数文件, 外行人搞不太懂里面的参数 而且有些参数组合可能有问题 但并不是马上看出来. 这下好了, 有一个开源的项目(用Perl语言写的) – MySQLTuner – 网址是: http://mysqltuner.com/ 简单来说 就是一个 PERL 脚本 运行它 它会检查你MYSQL数据库的状态和一些配置情况. 下载并安装 wget http://mysqltuner.pl/ -O mysqltuner.pl wget …