Gravar uma estrutura de diretórios de um stdin pipe

2

Estou tentando fazer algo complicado, quero gravar uma estrutura de diretórios em um CD a partir de um fluxo de tubos. O motivo é que vem da rede e não quero que seja escrito no disco rígido da máquina de gravação de cd.

Não tenho certeza de como (ou se possível) canalizar a saída de tar (por exemplo) para genisoimage ou mkisofs. Notei uma opção de fluxo em genisoimage, mas quando tentei fazer

tar -cvf - /home/myuser | genisoimage --stream-media-size 200 -o test.iso

Eu só tenho um test.iso que contém um stream.img (como especificado em genisoimage (1)) que era o arquivo tar original. Isso não vai funcionar, ele precisa ser uma estrutura de diretórios no CD.

Eu sei que cdrskin (ferramenta cli para gravação) pode pegar dados de stdin e gravá-los.

Então, como eu posso enviar dados para o genisoimage, criar uma estrutura de diretórios desses dados para o ISO e, em seguida, fazer com que os dados sejam enviados de volta para o cdrskin para gravar? Eu também sei que o genisoimage canaliza os dados iso para stdout por padrão, então meu único problema parece estar recebendo um fluxo de uma estrutura de diretório canalizada para o genisoimage e ter essa estrutura de diretórios mantida nos dados ISO.

As tags deste post são terríveis porque não consegui encontrar genisoimage, cdrskin, nem mesmo stdin.

Edit: Isso não é sobre segurança de dados, é sobre falta de espaço em disco. Eu não me importo se os dados estão em buffer no disco rígido, mas não posso escrever o ISO completo. E, claro, genisoimage é apenas uma sugestão, estou aberto a qualquer outro método de criação de dados ISO. Para sua informação, destina-se a discos Blu-ray.

    
por Stefan Midjich 28.10.2011 / 10:57

2 respostas

1

Eu estou supondo que a razão pela qual você não está apenas especificando o diretório no disco é porque você está canalizando isso pela rede. Eu também estou supondo que você está usando o ssh para isso, então minha pergunta é: Por que não sshfs?

    
por 28.10.2011 / 11:19
0

and I don't want it written on the hard drive of the cd-burning machine.

É praticamente impossível evitar isso. Até mesmo o stdio piping pode gravar no disco. E mesmo se você evitar o uso de canos (por exemplo, escrevendo um segmento de memória compartilhada), ele ainda pode ser paginado.

Na ausência de qualquer buffer, é provável que você tenha problemas com over / underruns, mesmo com uma rede rápida e uma velocidade lenta de gravação.

Basta copiar o arquivo e depois fragmentá-lo - ou usar a criptografia na origem / no sistema de arquivos do buffer

    
por 28.10.2011 / 11:02

Tags