我正在管理一個WiFi網絡與多個中繼器(接入點)。
我製作了一個腳本,用於統計每個用戶的連接用戶數量。例如,對於AP 1和2:在Linux shell腳本上並行化行(命令,進程...)
[email protected]:~/Temporal/ClientesActivos$ ./ClientesActivos-AP-N.sh 1
3
[email protected]:~/Temporal/ClientesActivos$ ./ClientesActivos-AP-N.sh 2
10
但它是一個位慢。例如,對於AP 3:
[email protected]:~/Temporal/ClientesActivos$ time ./ClientesActivos-AP-N.sh 3
5
real 0m7.074s
user 0m0.040s
sys 0m0.040s
所以,只要我有10點以上的接入點,我想並行所有的讀數。我製作了另一個腳本,調用背景中的各個請求。例如:
AP-1=$(./ClientesActivos-AP-N.sh 1) &
AP-2=$(./ClientesActivos-AP-N.sh 2) &
AP-3=$(./ClientesActivos-AP-N.sh 3) &
... etc
sleep 20 # Wait 20 seconds for all readings to finish.
echo "$AP-1, $AP-2, $AP-3... etc"
但這似乎不起作用。至少在殼測試:
[email protected]:~/Temporal/ClientesActivos$ echo $a
[email protected]:~/Temporal/ClientesActivos$ a=$(./ClientesActivos-AP-N.sh 4)
[email protected]:~/Temporal/ClientesActivos$ echo $a
6
[email protected]:~/Temporal/ClientesActivos$ unset a
[email protected]:~/Temporal/ClientesActivos$ echo $a
[email protected]:~/Temporal/ClientesActivos$ a=$(./ClientesActivos-AP-N.sh 4) &
[1] 13527
[A few minutes later...]
[email protected]:~/Temporal/ClientesActivos$ echo $a
[1]+ Done a=$(./ClientesActivos-AP-N.sh 4)
我在做什麼錯的,什麼是方法並行各行的shell腳本?是後臺處理正確的方法?
進一步的資料:
- 我的殼是猛砸,但通用的答案會是有用的。
讓你的異步腳本寫入文件,而不是分配給變量(後者可能是不可能的)。 –
我也在想,@n.m。但是這需要更多的編程(檢查文件是否已經充滿了數據,不僅是已創建的,而是空的,等等),所以我想知道是否有更簡單的方法。如果沒有更好的方法,我會使用它。謝謝。 –
不,讓他們寫入不同的文件,每個作業一個文件。 –