Linux 環境。このプログラム 't_show' は、ID を指定して実行すると、その ID の価格データをコンソールに書き込みます。このデータを取得する他の方法はありません。
ID 1 ~ 10,000 の価格データを 2 つのサーバー間で、最小帯域幅、最小接続数を使用してコピーする必要があります。宛先サーバーでは、データは次の形式の ID ごとに個別のファイルになります。
<id>.dat
このようなものは、長ったらしい解決策になります。
宛先:
files=`seq 1 10000`
for id in `echo $files`;
do
./t_show $id > $id
done
tar cf - $files | nice gzip -c > dat.tar.gz
ソース:
scp user@source:dat.tar.gz ./
gunzip dat.tar.gz
tar xvf dat.tar
つまり、各出力を独自のファイルに書き込み、圧縮して tar し、ネットワーク経由で送信し、抽出します。
IDごとに新しいファイルを作成する必要があるという問題があります。これは大量のスペースを占有し、うまく拡張できません。
中間ファイルを作成せずに、コンソール出力を (圧縮された) tar アーカイブに直接書き込むことはできますか? より良いアイデアはありますか (圧縮データをネットワーク経由で直接書き込み、tar をスキップするなど)?
tar アーカイブは、先に述べたように、宛先サーバーで ID ごとに個別のファイルとして抽出する必要があります。
時間を割いて助けてくれた人に感謝します。