使用 apt-get 升级所有默认 LEMP 安全吗?

使用 apt-get 升级所有默认 LEMP 安全吗?

我已经备份了当前的 MySQL 数据库和相关数据,但我通常会问,执行以下操作是否安全?

apt-get update nginx mysql-server php-fpm php-mysql
apt-get upgrade nginx mysql-server php-fpm php-mysql

我确实unattended-upgrades默认使用,仅用于安全升级,但我确实觉得我应该完全升级 LEMP,以满足性能需求。

顺便说一句,我知道CM就像 Ansible 那样做(如果确实如此,它基本上是一个默认的 LEMP)。

答案1

没有 100% 的保证

如果没有其他人报告问题,那么您可以 99% 确定。如果您通过 Google 搜索发现一个用户遇到其他硬件问题,您的确定性将降至 95%。如果用户遇到您的制造商的问题,您的确定性将降至 90%。如果问题出在您的型号上,则为 80%,您的操作系统为 70%,等等。

测试、测试、再测试。完成后再次测试。

最好的测试方法是在数据库关闭且所有用户都已注销后进行。创建一个与程序和数据大小相等的分区。将活动分区克隆到测试分区。

在测试分区上运行升级:

  • 如果升级在测试分区上崩溃,那么感谢你的幸运,你没有在实时分区上进行升级。
  • 修复升级过程中的任何错误,将实时数据重新克隆到测试分区(如果使用,第二次将更短rsync)。再次运行升级。
  • 升级成功后,测试你的程序。如果它们崩溃了,那你可要庆幸你没有在活动分区上进行测试。
  • 找出程序崩溃的原因。如果它们扰乱了你的数据库,请重新克隆实时数据库,升级,获取故障程序的补丁,然后重新测试。

我想你已经明白了。为了协助克隆过程,你可以参考以下脚本:Bash 脚本将 Ubuntu 克隆到新分区以测试 18.04 LTS 升级。您还可以使用 Live USB 启动,并使用脚本作为参考并结合来自互联网的其他说明,手动克隆未安装的活动分区。

笔记:链接的脚本写于 4 月 28 日,运行良好。我正在通过额外的测试对其进行修改,以验证是否选择了正确的测试分区作为克隆。另一个修订是显示源和目标分区操作系统版本详细信息。最后一个修订是显示rsync已删除文件的统计信息,这些统计信息在克隆上重新克隆时很重要。

答案2

为什么它不应该是安全的?以防万一,备份总是好的,但在大多数情况下,通过升级软件包apt是安全的。我在升级 LEMP 堆栈时从未遇到过问题,我已经使用它至少几个月了。此外,如果您是为了性能而升级,您可能希望从 切换到MySQLMariaDB这可以通过以下方式完成:

sudo apt install mariadb-server-10.0 mariadb-client-10.0

并且它应该检测MySQL数据库并导入它们。

使用MySQLMariaDB,备份数据库很容易,只需运行:

sudo mysqldump dbnamehere > database.sql

如果升级过程中出现问题,只需使用以下命令恢复数据库:

sudo mysql dbnamehere < database.sql

或者,如果出现严重错误,只需删除数据库,创建一个新的空数据库,然后运行上述命令。

还有几点说明:

  • 请使用apt而不是apt-get
  • 只管跑apt update,不要apt update nginx mysql-server php-fpm php-mysql

此外,如果您使用的是 VPS 而不是专用服务器,VPS 提供商通常会为您提供创建快照的选项,如果出现问题,可以轻松恢复。

答案3

简短的回答是肯定的,它是安全的;详细的回答
是肯定和否定的,这取决于软件的年代。
我提到年代的原因是,举一个极端的例子,如果你有 1999 年的软件,打算把它更新到 2018 年的版本,那么你会遇到兼容性问题,因为最新版本可能无法转换那么久以前的文件,但如果它是较新的,那么应该没问题。

但如果你想绝对确定,我建议在更新之前先备份程序

相关内容