主要还是用df -k这个命令,然后将输出结果全部逐行解析,最后调用REST API,发送给服务器保存。
参考代码:
#!/usr/bin/newlisp (set 'cur-path "/opt/detector") (load (append cur-path "/config.lsp")) (define (add-log msg) (println msg) (append-file (append cur-path "/disk.log") (append " " (string (now 480)) " ")) (append-file (append cur-path "/disk.log") (append ": " msg)) ) (define (process-record record) (add-log record) (set 'l (parse record)) (set 'type (last l)) (set 'a (int (l 1))) (set 'b (int (l 2))) (if (and a b) (begin (set 'll (div b a)) ;; (add-log (format "%lld,%lld,%f" a b ll)) (set 'data (format "ip=%s&hostName=%s&type=fs_%s&values=%lld|%f" ip host_name type (date-value) ll)) (add-log data) (set 'r3 (post-url (format "http://%s/wind_tunnel/api/post/data" server) data)) (add-log r3)))) (define (check-disk) (set 'r (exec "df -k")) (pop r) (dolist (x r) (process-record x))) (check-disk) (exit)