Arch:安全地保存和恢复 pacman 数据库

Arch:安全地保存和恢复 pacman 数据库

我想pacman在执行后备份同步数据库pacman -Sy,创建“还原点”,pacman -Suu可用于逆转失败的系统升级。可以找到更多背景这里

我想通过手动锁定 pacman 数据库,/var/lib/pacman/db.lck以确保数据库在保存/恢复时不会更改。

如何自动检查/创建/var/lib/pacman/db.lck

答案1

锁定数据库

mkdir是一个原子操作,可以避免并发问题。

sudo mkdir /var/lib/pacman/db.lck 2>/dev/null && echo Got lock || echo Locked out

pacman -Syy我在另一个 shell 中运行时测试了上述内容。 pacman 运行时输出为“Locked out”,完成后输出为“Got lock”。

相反,pacman -Syy会说当目录存在时它无法锁定数据库。

备份

我写了一个paranoia_level=9bash脚本它将同步数据库安全地保存到/var/lib/pacman/backup由 ISO8601 日期命名的目录中。

该脚本还保存以下非依赖包列表:

  • 所有套餐
  • 同步包
  • 国外(例如 AUR)包裹

备份的使用

使用该-b选项为数据库指定不同的位置,例如:

pacman -Suu -b /var/lib/pacman/backup/2017-02-26T12:55:26+07:00

相关内容