私はサーバーからデータを収集するために使用されるpythonスクリプトを持っています。分割時間間隔をバッチで
1477389500000000000
と
1477389900000000000
は間隔を定義するナノ秒単位の時間です
./ApiStreamingClient.py -w flow-index -n admin -p admin localhost 1477389500000000000 1477389900000000000 | gzip - > out.gz
:私はそれを実行することができます。
サービスが遅いので、サブコードで同じコードを実行するbashスクリプトを作成する必要があります。私はエラーがwhileループが定義されている方法で、私はbatch_start
とbatch_end
変数を更新する方法であると思い
#!/bin/bash
file_name=$1
data_type=$2
username=$3
password=$4
address=$5
start_time=$6
end_time=$7
set batch_size = 1000000000
set batch_start = start_time
set batch_end = current_time + batch_size
while (("$batch_end" < "$end_time"))
do
echo "iteration $i batch_start=$batch_start batch_end=$batch_end"
./$file_name -w flow-index -n $username -p $password $address $batch_start $batch_end | gzip > "out
set /a batch_start = batch_end + 1
set /a batch_end = batch_start + batch_size
done
~
を:
これが私の現在の試みですが、コンパイル中に多少の誤差があります。
このコードで何が問題なのか教えていただけますか?私の知識は、bashは0に近く、私はスクリプトの作業バージョンと問題の説明をしたいと思います。
Thansk!
EDIT: 私はまだエラーを取得:
#!/bin/bash
file_name=$1
data_type=$2
username=$3
password=$4
address=$5
start_time=$6
end_time=$7
batch_size = 1000000000
batch_start = $start_time
batch_end = $((current_time + batch_size))
while (("$batch_end" < "$end_time$))
do
echo "iteration $i batch_start=$batch_start batch_end=$batch_end"
./$file_name -w flow-index -n $username -p $password $address $batch_start $batch_end | gzip > "out_$i.gz"
batch_start =$((batch_end + 1))
batch_end =$((batch_start + batch_size))
done
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
probe27:/data/misC#
probe27:/data/misC#
probe27:/data/misC#
probe27:/data/misC#
probe27:/data/misC# sh GetStreamingFlowData.sh ApiStreamingClient.py -w flow-index -n admin -p admin localhost 1477389500000000000 1477389900000000000
GetStreamingFlowData.sh: line 11: batch_size: command not found
GetStreamingFlowData.sh: line 12: batch_start: command not found
GetStreamingFlowData.sh: line 13: batch_end: command not found
GetStreamingFlowData.sh: line 20: unexpected EOF while looking for matching `"'
GetStreamingFlowData.sh: line 24: syntax error: unexpected end of file
probe27:/data/misC#
あなたはこれをpythonで行うと考えましたか? Pythonはより多くの算術に適合し、別の言語をプロセスに追加することを避けるため、より適切です。私は間違っているかもしれませんが、私はあなたが一度もPythonの一行を書いたことがない場合でも、半日でそれをやるために十分に学ぶことができると確信しています – Aaron
それはbashで難しいと思いますか?私はPythonを使用することができないと確信していません – Donbeo
いいえ、それは正しいツールを使用する場合は簡単です、私の答えを参照してください:)問題は長期的に:何かがあなたの解決策で壊れている場合は、 pythonとそれをデバッグするbashを知っているressourceです。また、bashはpythonよりも効率が悪く、1つではなく複数のpythonプロセスを生成するには時間がかかります。 – Aaron