Saída / pipe ntbackup diretamente para o GPG

2

Atualmente, podemos executar e criptografar um backup do Windows com ntbackup e GPG em duas etapas separadas em um script em lote, conforme abaixo:

ntbackup backup "@selection_file.bks" /f "backup_file.bak"
gpg --recipient "recipient" --encrypt "backup_file.bak" --output "encrypted_file" --yes --batch 

Gostaria de saber se existe alguma maneira de combinar essas etapas para gerar o backup diretamente para o GPG, sem criar um arquivo de backup intermediário e não criptografado?

Para esclarecer, estou procurando algo como redirecionamento de entrada padrão ou canalização

prog.exe | prog2.exe

que funciona com o GPG na linha de comando. Obrigado pelo seu tempo.

    
por nedm 28.05.2009 / 23:10

9 respostas

1

Como Matt_Simmons tão lucidamente explicou, o ntbackup não faz a saída para stdout, então tentar usá-lo está condenado.

gpg, no entanto, irá fazer a coisa certa se você usar (unix convention) '-' como o arquivo a ser inserido.

Portanto, agora você precisa de uma maneira de coletar arquivos que inclua 'a capacidade de selecionar e excluir arquivos individuais com facilidade', o que se ajusta totalmente à fatura (consulte os sinalizadores -T e -X). Versões modernas também fazem compressão, via sinalizadores -z (gzip) e -j (bzip).

E, claro, você pode amarrá-los juntos com um cano:

tar -cjf - /dir/to/backup -X .mp3 | gpg --encrypt - --output "encrypted_backup.enc"
    
por 03.06.2009 / 22:39
3

Eu não acho que você será capaz de fazer isso. Mas, como alternativa, você provavelmente poderia fazer backup em um volume TrueCrypt montado.

    
por 28.05.2009 / 23:33
2

OK, eis o porquê disso não funcionar.

O que você está tentando fazer é convencer o ntbackup a fazer o streaming de dados de backup para um padrão, em vez de um arquivo. O problema é que o ntbackup não está escrito para poder fazer isso. O ntbackup deve receber o nome do arquivo para a saída dos dados e, infelizmente, no Windows, não há equivalente a / dev / stdin ou / dev / stdout.

Para que isso funcione, você precisará convencer o ntbackup a imprimir os dados de backup brutos na tela. Não há documentação que eu saiba (ou que tenha encontrado através de pesquisa) que indique que isso é remotamente possível. Apenas não foi escrito para fazer isso. Desculpa.

    
por 31.05.2009 / 13:22
2

Up para alguma programação? :) Você pode usar um pipe nomeado (aka fifo) para fazer isso, mas, tanto quanto eu posso dizer, não há interface pronta para arquivos em lote.

    
por 31.05.2009 / 13:32
2

Você provavelmente poderia usar um arquivo FIFO para atuar como o pipe. Embora eu não saiba exatamente como você criaria um desses no Windows. Mas geralmente é para isso que eles são usados, onde você não pode usar STDOUT para canalizar.

    
por 01.06.2009 / 23:35
2

A execução de um ntbackup padrão e o uso do gpg criam um arquivo intermediário e não criptografado. No entanto, se você ativar o EFS, poderá colocar o arquivo de backup em uma pasta criptografada para que um invasor não possa recuperar o texto sem formatação do arquivo .bkf. Essa provavelmente será a maneira mais fácil de realizar o que você está pedindo sem trocar completamente os conjuntos de ferramentas.

    
por 03.06.2009 / 17:44
1

Você não pode fazer isso com gpg, mas você pode com openssl e mysys:

cat.exe testfile | openssl enc -cast > outfile

Aqui está a página de manual , você pode até especificar uma senha na linha de comando se realmente precisar para. Isso só funcionará com criptografia simétrica.

    
por 01.06.2009 / 18:52
1

A documentação da linha de comando 7-Zip menciona -si e -so para ler de stdin e gravar em stdout.

7z a dummy -tgzip -so Doc.txt > archive.gz

compresses Doc.txt file to output stream and writes that stream to archive.gz file.

Não menciona canalização, mas se você pode escrever para o stdout, não vejo por que o gpg não conseguirá lê-lo.

    
por 04.06.2009 / 06:33
0

Eu não acredito que o ntbackup suporte qualquer tipo de criptografia nativamente.

    
por 28.05.2009 / 23:16