前提・実現したいこと
bashかpythonで、xz,gz,bz2形式のファイルを解凍するプログラムを書きたい。
今はひとまずbashで考えている。
ファイルはcsvを圧縮したもので、一つの圧縮ファイルに一つのcsvファイルが入っている。csvには日本語も入っている。
圧縮するのは別の人なので、先に分割して圧縮はできない。
発生している問題・エラーメッセージ
圧縮ファイルが大きすぎる場合、サーバのリソース(メモリ&CPU)を使い切ってしまい、他プロセスに迷惑をかけるため、処理を分割するとか、一度に処理する量をへらす等を検討しているが、よい方法がなく困っている。
なお、バッチ処理なので、時間がかかるのは問題ない。
プログラムで解決できる問題ではなく、Linux寄りで検討すべきなのかもしれないとは考えている。実行ユーザを他プロセスと変えて、そのユーザの使えるリソースを制限するとか?しかし、どのサーバでも動かせるプログラムにしたいので、できればそのような方法は回避したい。
該当のソースコード
bash
1gunzip -c "$compressed_file" > "${decompress_full_path}" ;
試したこと
圧縮ファイルをsplitして、それぞれ解凍できないかと思ったが、破損のエラーで解凍できなかった。
補足情報(FW/ツールのバージョンなど)
CentOS 7
Bash 5.0.17
python 3.6.10
回答4件
あなたの回答
tips
プレビュー