Anduin Xue
Anduin Xue

Anduin's Tech Blog

Linux


Aiursoft Nextcloud 事故调查、分析与总结

在2022年10月4日早晨10:00 - 12:00,Aiursoft Nextcloud遭遇了一次重大事故,服务中断两小时并损失部分数据。事故原因经过调查分析,最终确定为备份过程中的磁盘挂载问题导致系统盘空间被填满。这次事故让我们认识到了备份操作的潜在风险,以及磁盘剩余空间监控告警系统的重要性。为防止类似问题再次发生,我们对备份脚本进行了改进,增加了磁盘挂载状态和剩余容量的检查。此外,我们还建立了监控报警系统,以确保磁盘挂载正确且剩余容量处于健康状态。这次事故给我们带来了宝贵的经验教训,也提醒我们在未来的运维工作中要更加关注系统的健康状况,防止类似问题的发生。那么,如何确保我们的备份操作更加安全可靠?有哪些方法可以更好地监控磁盘使用情况?在这次事故中,我们又可以从哪些方面进行改进,以提高系统的稳定性和可靠性?--GPT 4

bash Linux Backup Nextcloud Disk Incident

Install your own NFS ESXI storage server

本篇博客详细介绍了如何安装和配置自己的NFS ESXI存储服务器。通过一系列步骤,我们将学习如何配置网络,安装DHCP服务器,安装Cockpit以监控服务器状态,以及如何在Vsphere中挂载服务器。文章详细阐述了每个步骤的操作方法和注意事项,以图文并茂的形式展示了操作过程。 在配置网络部分,我们将学习如何在NFS服务器和ESXI服务器之间建立连接,以及如何通过桥接多个光纤端口来简化管理。为了提高性能,我们可以使用光纤直接连接ESXI主机和存储服务器。同时,我们还将安装DHCP服务器,并进行相应的配置。 Cockpit是一个可以帮助我们监控服务器状态的网络门户,我们将学习如何安装和配置Cockpit,以便在浏览器中查看服务器的网络和磁盘使用情况。在Vsphere部分,我们将学习如何为ESXI主机准备挂载NFS存储,并在VCenter服务器中添加新的存储。 最后,我们将使用CrystalDiskBench对存储性能进行基准测试,以确保10Gbps网络能够达到最大速度约1200MB/s。在整个过程中,我们需要密切关注网络使用情况和磁盘使用情况。 通过阅读本篇博客,您将能够掌握搭建NFS ESXI存储服务器的方法和技巧。那么,为什么我们需要在网络中安装额外的DHCP服务器呢?如何在浏览器中访问Cockpit并监控服务器状态?阅读全文,您将找到答案。--GPT 4

Linux Storage NFS VMware ESXI Vsphere Dell IPMI Debian Server

If a Ubuntu server should run apt upgrade automatically?

本文讨论了是否应该让Ubuntu服务器自动运行apt升级。首先,作者提到自动升级的优点:节省时间、尽快获得安全更新、始终保持软件包的清洁和新颖、历史上apt升级非常安全且不会删除现有库。然而,自动升级并不适用于所有场景。在问题调查阶段,自动更新可能会掩盖真正的问题;对于需要极度稳定的客户而言,服务器的任何更改都可能带来风险;自动升级可能导致软件的较大功能更新,从而引发业务中断;此外,更新过程通常需要重启,而某些程序在重启后可能难以恢复正常运行。 尽管如此,仍有一些情况下可以考虑自动升级:系统可容忍降低可用性;系统是无状态的,重启不会影响其正常运行;系统已配置完善的备份/快照;系统始终连接到互联网;系统需要获得最新的功能更新。作者建议仅在满足以上所有条件时才使用自动更新功能。 当然,文章还提供了如何配置Ubuntu服务器以每周自动升级的方法。首先编写一个`upgrade.sh`脚本,然后使用`crontab -e`编辑计划任务。但在实施自动升级之前,请务必权衡好利弊,确保自动升级不会给您的业务带来不必要的麻烦。--GPT 4

bash Linux Ubuntu Upgrade Crontab Update

Install Cockpit on Ubuntu 22.04

本篇博客详细介绍了如何在Ubuntu 22.04上安装Cockpit,以及如何解决安装过程中可能遇到的问题。首先,我们需要使用命令行安装Cockpit。接下来,为了确保安全性,我们需要创建一个非root用户,并将其添加到sudo组中。本文提供了一个关于身份验证的最佳实践的链接,供读者参考。 在安装过程中,可能会遇到“packagekit无法在离线状态下刷新缓存”的错误。为了解决这个问题,我们需要在/etc/netplan/目录下创建一个新的网络配置文件,并将renderer设置为NetworkManager。然后,将其他配置文件的优先级调整为更高的数字,最后应用网络配置并重启Cockpit服务。 此外,本文还介绍了如何安装Cockpit的导航插件。首先,我们需要安装jq工具,然后从GitHub上获取插件的最新版本,并安装到本地。 安装完成后,可以在浏览器中访问Cockpit。为了确保HTTPS安全性,我们可以使用Caddy对Cockpit服务器进行反向代理。本文提供了一个关于Caddy的使用技巧的链接,以及一个示例配置文件。 通过阅读本文,您将能够顺利地在Ubuntu 22.04上安装并使用Cockpit。那么,您准备好尝试Cockpit了吗?在安装过程中,您是否遇到了其他问题?欢迎在阅读全文后,分享您的经验和解决方案。--GPT 4

bash Linux Ubuntu Remote Management Cockpit NetworkManager

CaddyV2 tips and examples (How to correctly get user's IP address after a reverse proxy)

本篇博客主要介绍了如何在Caddy V2中正确获取用户的IP地址,以及一些实用的Caddy V2技巧和示例。文章首先讲述了如何在Debian系统上安装Caddy V2及其插件,接着展示了如何修改Caddy V2文件以支持Proxy Protocol。此外,还提供了一些实用的Caddy V2配置示例,包括托管静态文件服务器、直接渲染HTML、在特定地址上进行反向代理、执行永久重定向、反向代理并移除/添加自定义头部、忽略证书问题的反向代理、仅允许局域网访问的反向代理、仅允许局域网进行登录的反向代理、覆盖HTTP Host头部的反向代理、通过基本身份验证保护反向代理以及在两个节点之间进行负载均衡的反向代理等。最后,文章给出了一个完整的示例配置,包括外部IP地址的基本身份验证保护、局域网直接访问、覆盖HTTP Host、允许不安全的HTTPS、移除头部“x-frame-options”等功能。阅读这篇博客,您将了解到Caddy V2的强大功能以及如何灵活运用这些功能进行网站配置。那么,如何在实际应用中根据需求选择合适的Caddy V2配置呢?这将取决于您的实际需求和场景,欢迎尝试这些示例并进行实践。--GPT 4

Reverse Proxy Linux Ubuntu Proxy FRP Caddy CaddyV2 IP Address Proxy Protocol

Build a new NFS server with WinServer or Ubuntu and mount it

本篇博客详细介绍了如何在Windows Server和Ubuntu系统中搭建新的NFS服务器,并进行挂载。首先在Windows Server中,通过安装相关组件并设置文件夹属性来创建NFS服务器。接着在Ubuntu系统上,使用命令行工具安装nfs-kernel-server,创建共享文件夹并对其进行权限设置。配置完成后,需要编辑exports文件以允许特定子网访问服务器。 在Windows系统中,通过PowerShell启用NFS客户端功能,并在CMD中使用mount命令挂载远程NFS。对于Ubuntu系统,需要安装nfs-common包,并使用mount命令挂载远程NFS。此外,还介绍了如何在VMware ESXI中将远程NFS作为数据存储挂载。 本文详细阐述了在不同操作系统中搭建NFS服务器的步骤,以及在各个平台上挂载远程NFS的方法。通过阅读本文,你将能够了解到在Windows Server和Ubuntu系统中创建和使用NFS服务器的过程。那么,你是否想知道在其他操作系统中如何搭建NFS服务器呢?对于不同的场景和需求,你会选择哪种方式进行远程文件共享?--GPT 4

Linux Ubuntu File Windows Server Share NFS VMware ESXI Vsphere NAS

Mount Windows SMB folder to Ubuntu

本篇博客教你如何将远程SMB文件夹挂载到本地Ubuntu服务器。首先,安装cifs-utils工具,然后创建一个新文件夹。接下来,使用mount命令将远程SMB文件夹挂载到本地文件夹。你可能需要输入密码来完成挂载操作。挂载完成后,你可以在本地文件夹中查看远程SMB文件夹的内容。需要注意的是,挂载命令中的`your-name`、`your-server`和`your-path`分别代表你的Windows用户名、服务器IP地址或域名以及SMB共享文件夹的名称。 如果你希望在开机时自动挂载远程SMB文件夹到Ubuntu,可以编辑`/etc/fstab`文件并添加相应的配置行。在配置行中,将`<your-server>`、`<your-path>`、`<your-name>`和`<your-password>`替换为实际值。 通过阅读本文,你将学会如何在Ubuntu系统中挂载和卸载远程SMB文件夹,以及如何配置开机自动挂载。在实际操作中,你可能会遇到哪些问题?有哪些需要注意的地方?希望本文能为你提供有益的启示。--GPT 4

bash Linux Ubuntu Windows Server SMB Share

Run WeChat in Ubuntu

在本篇博客中,我们将探讨如何在Ubuntu系统下安装和运行微信。首先,我们需要安装Wine,一个允许在Linux和类Unix操作系统上运行Windows应用程序的兼容层。安装完成后,需要调整Wine的设置,例如DPI值,以适应不同的显示器分辨率。 接下来,我们需要下载并配置字体,以确保微信在运行时能正确显示中文字符。通过运行一系列命令,我们可以安装所需的字体包。 在完成字体配置后,我们需要下载微信安装包,并通过Wine运行安装程序。安装过程与在Windows系统上无异。 安装完成后,我们需要编辑微信的桌面快捷方式,以确保微信在启动时使用正确的语言环境。在这里,我们将其设置为“zh_CN.UTF8”。 现在,您可以启动并使用微信了!然而,在运行过程中,您可能会遇到一些问题,例如:微信运行在中文环境下,因此当微信启动其他程序(如浏览器)时,这些程序可能会显示为中文版;此外,微信在打开小程序时可能会崩溃。 本文详细介绍了如何在Ubuntu系统上安装和运行微信的过程,但仍有一些不足之处。那么,是否有其他方法可以解决这些问题?或者,有没有其他类似的应用程序可以在类Unix系统上更好地运行呢?这些问题值得我们进一步探讨。--GPT 4

bash Linux Ubuntu China WeChat Wine

Install Nextcloud on a Ubuntu 20.04\22.04 server

本篇博客详细介绍了如何在Ubuntu 20.04/22.04服务器上安装Nextcloud。文章分为17个步骤,包括安装所需的软件包、配置数据库、创建Nextcloud目录、设置权限、配置Apache、安装和配置SSL证书、设置大文件上传、配置Cron、调整数据存储位置、完成区域设置、完成电子邮件设置、完成Redis设置、设置备份、设置反向代理(可选)以及设置GPU。 文章还提供了一些有趣的问题,以吸引读者阅读并启发思考。例如,在调整数据存储位置时,如何确保在重启后云仍然可以正常工作?在设置备份时,如何自动运行备份脚本以确保数据安全?在设置反向代理时,如何避免出现问题? 通过阅读本篇博客,读者可以了解到如何成功安装和配置Nextcloud,以及如何根据自己的需求进行一些额外的设置。在文章的最后,作者还提到了如何为Nextcloud添加GPU支持,以便在安装了识别应用程序的情况下提高性能。 现在,你是否对在Ubuntu服务器上安装Nextcloud感兴趣?是否想知道如何通过这些设置来优化你的Nextcloud实例?快来阅读全文,自己找到答案吧!--GPT 4

Web Linux Ubuntu IT Apache2 PHP MySQL Certbot Nextcloud Storage

Use you local server to replace the cloud with FRP.

本文介绍了如何使用FRP(Fast Reverse Proxy)将本地服务器替换为云服务器。首先,我们需要在云服务器上安装和配置FRP服务器。接下来,我们需要在本地家庭服务器上安装FRP客户端,并确保家庭服务器能够成功连接到FRP服务器。值得注意的是,家庭服务器不需要具有公共IP地址,可以部署在防火墙或NAT之后。 本文使用Windows Server作为示例,并介绍了如何在家庭服务器上安装FRP客户端。配置完成后,我们可以运行FRP本地验证配置。然后,我们需要将FRP注册为后台服务。此外,我们还可以选择配置自动升级。 需要注意的是,云服务器和家庭网络可能会因流量而产生费用。如果服务不是很繁重,通常使用FRP方案会非常便宜。相比之下,云服务器的月费用可能达到数百美元,而家庭服务器的电费和网络费用要低得多。总的来说,使用FRP方案可以节省成本,同时享受全面的裸金属性能。 那么,是否应该使用FRP方案替代云服务器呢?这取决于您的需求和预算。如果您希望节省成本并享受更好的性能,那么FRP方案可能是一个不错的选择。但如果您需要更高级的功能和更强大的计算能力,那么云服务器可能仍然是最佳选择。--GPT 4

IP bash Linux Windows Server Cloud FRP Network Port Firewall

Auto backup for Minecraft on Linux

This blog post discusses the process of creating an automatic backup solution for a Minecraft server hosted on Linux. The author first explores the Git solution, which consumes a lot of CPU resources when compressing objects, potentially impacting the game's performance. Due to these issues, the Git solution was abandoned. The author then moves on to the copy solution, which involves copying the world folder to another location. To implement this, the author uses tmux to run the Minecraft environment. The blog post provides step-by-step instructions on how to start tmux and run the Minecraft server within it, as well as how to exit and resume the terminal. Next, the author shares a script named backup.sh that automates the backup process. The script saves the game, copies the world folder to a backup location, removes older backups if necessary, and then resumes the game. The author suggests using a background job system like crontab to run the script and enable automatic backups. H...--GPT 4

bash Linux Minecraft Backup

Programmatically connect to the remote server via SSH and execute remote command.

在这篇博客中,我们将学习如何使用.NET Core和SSH.NET库编程地连接到远程服务器并执行命令。这对于构建服务器管理工具非常有用,尤其是当需要远程连接到Ubuntu服务器时。 首先,创建一个新的.NET Core项目,然后安装最新的SSH.NET库。接下来,编写一段使用SSH.NET库连接到远程服务器并执行命令的代码。示例中的代码将连接到远程服务器并运行`apt upgrade`命令。运行应用程序后,将自动连接到远程服务器并执行该命令。 SSH.NET库还有许多其他用途,可以查看其文档以了解更多信息。通过本文的示例,你将能够更好地理解如何使用.NET Core和SSH.NET库远程连接和管理服务器。在实际应用中,你可能需要根据自己的需求调整代码以满足不同的场景。 那么,你是否有兴趣尝试使用SSH.NET库来简化远程服务器管理呢?或者你是否有其他方法来实现类似的功能?让我们一起探讨吧!--GPT 4

C# .NET Core bash Linux SSH