@@ -35,17 +35,28 @@ show_version() {
3535echoerr () { echo " $@ " 1>&2 && exit 1; }
3636
3737check_available_memory () {
38- total=$( ubus call system info | jsonfilter -e ' @.memory.total' )
39- available=$( ubus call system info | jsonfilter -e ' @.memory.available' )
40- required=$( echo - | awk -v percent=" $REQUIRED_PERCENT " -v total=" $total " ' {printf("%.f",percent*total)}' )
38+ while true ; do
39+ total=$( ubus call system info | jsonfilter -e ' @.memory.total' )
40+ available=$( ubus call system info | jsonfilter -e ' @.memory.available' )
41+ required=$( echo - | awk -v percent=" $REQUIRED_PERCENT " -v total=" $total " ' {printf("%.f",percent*total)}' )
4142
42- if [ " $available " -ge " $required " ]; then
43- echo " 0"
44- else
45- [ " $VERBOSE_MODE " -eq " 1" ] && logger -s " Not enough memory available, skipping collect data." \
46- -p daemon.warn
47- echo " 1"
48- fi
43+ if [ " $available " -ge " $required " ]; then
44+ return 0
45+ else
46+ # enough memory not available, deleting old data
47+ # shellcheck disable=SC2012
48+ file=" $TMP_DIR /$( ls -1t " $TMP_DIR " | tail -1) "
49+ # ensure that memory was available previously and file was written
50+ if [ -f " $file " ]; then
51+ rm " $file "
52+ else
53+ [ " $VERBOSE_MODE " -eq " 1" ] \
54+ && logger -s " Not enough memory available, skipping collect data." \
55+ -p daemon.warn
56+ return 1
57+ fi
58+ fi
59+ done
4960}
5061
5162collect_data () {
@@ -56,8 +67,7 @@ collect_data() {
5667 /usr/sbin/netjson-monitoring --dump " $MONITORED_INTERFACES " && break
5768
5869 if [ " $n " -eq 5 ]; then
59- [ " $VERBOSE_MODE " -eq " 1" ] && logger -s " Collecting data failed!" \
60- -p daemon.err
70+ [ " $VERBOSE_MODE " -eq " 1" ] && logger -s " Collecting data failed!" -p daemon.err
6171 fi
6272 n=$(( n + 1 ))
6373 sleep 5
@@ -84,8 +94,7 @@ set_url_and_curl() {
8494
8595save_data () {
8696 while true ; do
87- memory_available=" $( check_available_memory) "
88- if [ " $memory_available " -eq " 0" ]; then
97+ if check_available_memory; then
8998 data=" $( collect_data) "
9099 filename=" $( date -u +' %d-%m-%Y_%H:%M:%S' ) "
91100 # make directory
@@ -168,10 +177,10 @@ send_data() {
168177 -t openwisp-monitoring \
169178 -p daemon.info
170179 FAILING=0
171- [ -f " $RESPONSE_FILE " ] && rm " $RESPONSE_FILE "
180+ rm -f " $RESPONSE_FILE "
172181 fi
173182 # remove saved data
174- [ -f " $filename " ] && rm " $filename "
183+ rm -f " $filename "
175184 break
176185 else
177186 timeout=$(( timeout * 2 ))
0 commit comments