web-dev-qa-db-ja.com

ntbackupをGPGに直接出力/パイプします

現在、次のように、バッチスクリプトの2つの別々のステップでntbackupとGPGを使用してWindowsバックアップを実行および暗号化できます。

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

中間の暗号化されていないバックアップファイルを作成せずに、これらの手順を組み合わせてバックアップをGPGに直接出力する方法があるかどうか疑問に思っていますか?

明確にするために、私は標準入力リダイレクトやパイピングのようなものを探しています

prog.exe | prog2.exe

これはコマンドラインでGPGと連携します。御時間ありがとうございます。

2
nedm

Matt_Simmonsが非常に明快に説明したように、ntbackupはstdoutへの出力を行わないため、それを使用しようとすると運命になります。

ただし、gpgは、入力するファイルとして(unix規則) '-'を使用すると、will正しい動作をします。

したがって、「個々のファイルを簡単に選択して除外する機能」を含むファイルを収集する方法が必要になります。これは、料金に完全に適合します(-Tフラグと-Xフラグを参照)。最新バージョンでは、-z(gzip)フラグと-j(bzip)フラグを使用して圧縮も行います。

そしてもちろん、パイプでそれらを結ぶことができます:

tar -cjf - /dir/to/backup -X .mp3 | gpg --encrypt - --output "encrypted_backup.enc"
1
pjz

私はあなたがそれをすることができるとは思わない。しかし、別の方法として、マウントされたtruecryptボリュームにバックアップすることもできます。

3
Zoredache

OK、これがうまくいかない理由です。

あなたがしようとしているのは、バックアップデータをファイルではなく標準出力にストリーミングするようにntbackupを説得することです。問題は、これを実行できるようにntbackupが作成されていないことです。 ntbackupには、データを出力するためのファイル名を指定する必要がありますが、残念ながらWindowsでは、/ dev/stdinまたは/ dev/stdoutに相当するものはありません。

これが機能するためには、生のバックアップデータを画面に出力するようにntbackupを説得する必要があります。これがリモートで可能であることをほのめかすような、私が知っている(または検索で見つけた)ドキュメントはありません。これを行うために書かれたものではありません。ごめんなさい。

2
Matt Simmons

プログラミングはどうですか? :) 名前付きパイプ (別名fifo)を使用してこれを行うことができますが、私が知る限り、バッチファイル対応のインターフェイスはありません。

2
Alex J

おそらくFIFOファイルを使用してパイプとして機能させることができます。Windowsでこれらのいずれかをどのように作成するかは正確にはわかりませんが、一般的にはそれが使用されます。 STDOUTを使用してパイプすることができない場所。

2
Mez

標準のntbackupを実行してからgpgを使用すると、暗号化されていない中間のファイルが作成されます。ただし、EFSをオンにすると、バックアップファイルを暗号化されたフォルダーに配置して、攻撃者が.bkfファイルのプレーンテキストを復元できないようにすることができます。これはおそらく、ツールセットを完全に切り替えることなく、求めていることを達成するための最も簡単な方法になるでしょう。

2
paulr

Gpgでそれを行うことはできませんが、opensslとmysysでできます

cat.exe testfile | openssl enc -cast > outfile

これが manpage です。本当に必要な場合は、コマンドラインでパスワードを指定することもできます。これは、対称暗号化でのみ機能します。

1
Sekenre

7-Zipコマンドラインドキュメントには、-siおよび-soスイッチがstdinからの読み取りとstdoutへの書き込みに切り替えられることが記載されています。

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

doc.txtファイルを圧縮してストリームを出力し、そのストリームをarchive.gzファイルに書き込みます。

パイピングについては触れていませんが、stdoutに書き込むことができれば、gpgがそれを読み取れない理由がわかりません。

1
David

Ntbackupがあらゆる種類の暗号化をネイティブにサポートしているとは思いません。

0
mrdenny