A pergunta a seguir está relacionada ao ZFS no Linux (ZoL) / OpenZFS , como é fornecido, por exemplo, no Debian Buster e no Debian Bullseye.
Como o título diz, gostaria de saber se os nomes de instantâneos do ZFS teoricamente podem conter novas linhas (como os nomes de arquivos normais podem fazer) e, se sim, como posso trabalhar com segurança por meio de uma lista de nomes de instantâneos em um script.
Eu tentei criar instantâneos com esses nomes, mas o zfs (felizmente) se recusou a fazer isso. No entanto, gostaria de ter certeza e, portanto, estou perguntando aqui.
Um pouco de pano de fundo: neste site e em outros lugares, muitas vezes há a questão de como podemos analisar a saída de ls
trabalhar com a lista de nomes de arquivos nome por nome. A resposta é principalmente: Não faça isso, porque pode haver efeitos colaterais inesperados, por exemplo, se os nomes dos arquivos contiverem novas linhas; em vez disso, use globbing do bash. Eu entendi isso (na verdade, sempre fiz assim).
No entanto, quando se trata de nomes de instantâneos ZFS, não há globbing. Por exemplo, na minha caixa, quando emito algo como zfs list -H -r -o name -t snapshot rpool/vm-garak
, recebo uma lista de nomes de instantâneos com as entradas separadas por uma nova linha:
root@cerberus ~/scripts # zfs list -H -r -o name -t snapshot rpool/vm-garak
rpool/vm-garak@Q-2021-10-03-12-09-01
rpool/vm-garak@T-2021-10-03-12-14-01
rpool/vm-garak@T-2021-10-03-12-19-01
rpool/vm-garak@Q-2021-10-03-12-24-01
rpool/vm-garak@T-2021-10-03-12-29-01
rpool/vm-garak@T-2021-10-03-12-34-01
rpool/vm-garak@Q-2021-10-03-12-39-01
rpool/vm-garak@T-2021-10-03-12-44-01
rpool/vm-garak@T-2021-10-03-12-49-01
rpool/vm-garak@H-2021-10-03-12-54-01
Tenho alguns scripts que funcionam com essa lista nome por nome; ou seja, linha por linha, contando com o fato de que o caractere de nova linha indica com segurança um novo nome de instantâneo.
Contanto que eu tenha a criação de instantâneos sob meu controle, isso é seguro, porque posso evitar nomes de instantâneos não razoáveis. Mas os instantâneos são criados por outra pessoa, e daí se houver uma nova linha no nome? Como mencionado acima, não tive sucesso em criar esses nomes de instantâneos, mas certamente não estou ciente de todos os métodos estranhos que poderiam produzi-los.
Uma nota final: estou ciente de que eventualmente poderia me safar com o globbing, desde que se trate de instantâneos normais de conjuntos de dados (sistema de arquivos), porque o ZFS os coloca em um diretório oculto e os torna acessíveis como diretórios/arquivos normais. No entanto, no meu caso, os instantâneos são instantâneos de ZVOLs, que o ZFS não torna acessível dessa maneira.
Com base neste documento , não há como inserir uma nova linha no nome do instantâneo do ZFS. Então IMHO analisa linha por linha.
Achei convenção de nomenclatura em Openindiana , mas infelizmente o site está em manutenção