Arch: salve e restaure com segurança os bancos de dados do pacman

0

Eu quero fazer backup dos bancos de dados pacman sync após a execução de pacman -Sy , criando "pontos de restauração" que pacman -Suu pode usar para reverter uma atualização do sistema com falha. Informações adicionais podem ser encontradas aqui .

Desejo bloquear manualmente os bancos de dados do pacman via /var/lib/pacman/db.lck para garantir que os bancos de dados não sejam alterados durante a gravação / restauração.

Como posso verificar / criar atomicamente /var/lib/pacman/db.lck ?

    
por Tom Hale 17.02.2017 / 06:51

1 resposta

1

Bloqueando os bancos de dados

mkdir é uma operação atômica que evitará problemas de concorrência.

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

Eu testei o acima enquanto estava executando pacman -Syy em outro shell. A saída é "Bloqueada" enquanto o pacman está em execução e "Got lock" após a conclusão.

Reciprocamente, pacman -Syy dirá que não pode bloquear o banco de dados enquanto o diretório existir.

Backup

Eu escrevi um paranoia_level = 9 bash script que salva com segurança os bancos de dados de sincronização em diretórios com /var/lib/pacman/backup chamado pela data ISO8601.

O script também salva listas de pacotes não dependentes de:

  • todos os pacotes
  • pacotes de sincronização
  • pacotes estrangeiros (por exemplo, AUR)

Uso de backups

Use a opção -b para especificar um local diferente para os bancos de dados, por exemplo:

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