当前位置: 首页 > Linux

Linux也有后悔药,五种方案快速恢复你的系统

时间:2023-04-06 23:04:40 Linux

Linux也有后悔药,五招快速恢复你的系统有时候,你难免会遇到命令输入错误或者系统错误的问题。那么如何快速解决呢?本文先给你一颗后悔药,让你快速备份和恢复Linux系统。本文将以Ubuntu为例。在此之前,你需要一台服务器,可以免费使用腾讯云开发者实验室进行实验。备份当然,能够恢复在服务器上所做的更改的最简单和最安全的方法是对重要文件执行定期例行备份。Linux系统上有很多备份软件。我们来看看备份工具之间的差异,以找到最适合您需求的工具。定期验证备份以确保它们正常运行更为重要。备份提供了一种从服务器损坏中恢复的非常好的方法。只要复制的关键数据保存在其他服务器上,它们就可以在数据损坏或删除时派上用场。备份包括完整备份(所有数据的完整备份)、差异备份(备份自上次完整备份以来发生变化的每个文件)和增量备份(备份自上次完整备份或差异备份以来文件中的数据变化)。这些级别的组合通常相互结合使用以完全备份文件,并且通常,您可以恢复单个文件而无需恢复整个文件系统。如果您不小心删除或修改了文件,您可以使用备份快速恢复它。版本控制与备份有点相似的策略是版本控制。虽然这不是备份整个计算机的理想解决方案,但如果您只想将文件恢复到以前的状态,版本控制可能正是您所需要的。版本控制系统,例如git和mercurial,允许您跟踪对文件的更改。这意味着,如果您将配置目录/etc置于版本控制之下,您可以轻松恢复更改,以防您的文件因此而损坏。简而言之,您可以使用以下命令在Ubuntu上安装git:sudoapt-getupdatesudoapt-getinstallgit安装后,您需要通过键入以下内容来设置一些配置选项:gitconfig--globaluser.name"your_name"gitconfig--globaluser.email"your_email"完成此操作后,切换到要跟踪更改的目录。我们将在此示例中使用该目录。将内容置于版本控制之下的另一个好地方是您的主目录。我们可以通过键入以下命令来初始化git存储库:/etcd/etcsudogitinit然后您可以通过键入以下命令添加此目录(和子目录)中的所有文件:sudogitadd。通过键入以下内容提交您的更改:gitcommit-m"Initialcommit"您的文件现在将处于版本控制之下。当你对该目录中的文件进行更改时,你将需要重新运行最后两个命令(使用不同的内容而不是“初始提交”)。然后,你可以通过日志查找哈希值将文件恢复到以前的状态:gitlogcommit7aca1cf3b5b19c6d37b4ddc6860945e8c644cd4fAuthor:rootDate:ThuJan2313:28:252014-0500againcommit4be26a199fd9691dc567412a470d446507885966Author:rootDate:ThuJan2313:20:382014-0500initialcommitThenrevertthefileviathefollowingcommand,forexample:gitcheckoutcommit_hash--file_to_revert请记住,您只能在准备好进行更改时定期提交到git。使用包管理器还原更改有时您可以使用apt包管理器进行一些更改。包管理器可以帮助您将包恢复到默认设置。我们在下面讨论这些情况。使用Apt卸载软件包有时,您安装一个软件包只是为了发现它不是您想要保留的东西。您可以通过键入以下命令删除apt中的包:sudoapt-getremovepackage但是,上面的命令将保持配置文件不变。但是如果你想从你的系统中完全删除一个包,你可以使用清除命令如下:sudoapt-getpurgepackage你可以使用autoremoveapt命令卸载任何不再需要的自动安装的依赖项:sudoapt-getautoremove--purge使用apt安装包时出现的另一个问题是“元包”很难正确删除。元包只是一个包含依赖项列表的包。他们自己不安装任何东西,而是安装其他软件包的列表。很难以自动方式完全删除。一个有用的工具是deborphan包:sudoapt-getinstalldeborphan删除元数据包后,您可以运行orphaner命令来查找包卸载留下的孤立信息。这将帮助您找到未通过正常方式删除的包。另一种查找杂散文件的方法是通过mlocate包。安装后:sudoapt-getinstallmlocate,您可以使用以下命令更新文件索引:sudoupdatedb然后您可以搜索包名称以查看文件系统上是否有其他位置(apt索引之外)引用了该包。locatepackage_name还可以通过apt日志查看元包安装的文件:sudonano/var/lob/apt/history.log默认文件。如果你想保留你当前的配置文件作为备份,你可以通过键入复制它:sudomvfilefile.bak如果你没有对相关目录的写权限,你必须在上面的命令中使用sudo。删除文件或将其移开后,您可以重新安装软件包并检查是否缺少任何配置文件:sudoapt-get-oDpkg::Options="--force-confmiss"install--reinstallpackage_nameif你不知道哪个包负责需要恢复的配置文件,你可以使用dpkg程序:dpkg-Sfile_name如果你只是想执行一些在安装过程中发生的初始包配置步骤来更改一些值,您可以使用以下命令:dpkg-reconfigurepackage_name这将从最初安装程序时重新开始配置。查找文件的默认权限另一种常见情况发生在修改文件权限时。有时,您出于测试目的更改文件的权限,然后想恢复权限。您可以通过查找哪个包拥有该文件来找出您的发行版打包文件的默认权限。您可以通过发出以下命令来完成此操作:dpkg-S文件名这将告诉您与该文件关联的包。例如,如果我们想找出/etc/deluser.conf文件的包所有者,我们可以输入:dpkg-S/etc/deluser.confadduser:/etc/deluser.conf如你所见,它告诉我们负责该文件的adduser包。然后,我们可以通过更改为apt存档来检查该包的.deb文件:cd/var/cache/apt/archive在此目录中,您将找到系统上安装的包的.deb文件。如果找不到与您正在使用的包匹配的文件,则需要使用以下命令从存储库中重新下载它:sudoapt-getdownloadpackage如果我们的adduser包没有.deb,我们可以通过键入以下内容获得一个:sudoapt-getdownloadadduser一旦文件位于该目录中,我们可以通过键入以下内容查询它安装的文件的默认属性:dpkg-cfile.deb对于adduser程序,它可能看起来像这样:dpkg-cadduser_3.113ubuntu2_all.debdrwxr-xr-xroot/root02011-10-1918:01./drwxr-xr-xroot/root02011-10-1918:01./etc/-rw-r--r--root/root6042011-10-1918:01./etc/deluser.confdrwxr-xr-xroot/root02011-10-1918:01./usr/drwxr-xr-xroot/root02011-10-1918:01./usr/sbin/-rwxr-xr-xroot/root351202011-10-1918:01./usr/sbin/adduser-rwxr-xr-x根/根165112011-10-1918:01./usr/sbin/deluser。..如您所见,我们可以验证默认包是否为root设置了读/写访问权限,并为所有其他用户设置了读访问权限。结论现在你应该有一些策略来扭转你所犯的错误,并制定相关的应急计划。以上五种场景都需要提前备份。你可以买个新服务器试试,不过我还是推荐你免费使用腾讯云开发者实验室。参考资料:《How To Use Backups, Git, and Apt-Get to Undo Changes on a Linux VPS》Q&Alinux实时调度算法?相关阅读Docker日志记录的5个最佳实践您的nginx访问速度很慢?添加模块!MySQL8.0版本功能变化介绍