Εμφάνιση 1-13 από 13
  1. #1
    Το avatar του μέλους bomberb17
    bomberb17 Guest
    Καλησπέρα σε όλους,

    Έχω ένα μηχάνημα που τρέχει embedded linux, και κάποιες παράμετροι λειτουργίας του (θερμοκρασία, uptime κλπ.) τις εμφανίζει με json format. Π.χ.
    Κώδικας:
    {"STATS":0,"ID":"S300","Elapsed":327961,"Calls":0,"Wait":0,"Max":0,"Min":99999999,"ASICstotalrate":3634190,"Temperaturefront":25,"Temperaturereartop":57,"Temperaturerearbot":65}
    Αυτά τα εμφανίζει μέσω php και τα βλέπω εφόσον με τον browser μου δώσω την διεύθυνσή του, π.χ.
    http://myserver.com/monitor.php και αφού δώσω username/password (το οποίο δυσκολεύει το πρόβλημα).

    Αυτό που θέλω να κάνω είναι με κάποιο τρόπο να εξάγω κάποια από αυτά τα παραπάνω δεδομένα ανά κάποιο χρονικό διάστημα και να φτιάξω γραφήματα και alarms. Η δουλειά αυτή μπορεί να γίνει είτε στον ίδιο το server ή κάποιον άλλο που θα τρέχει linux.

    Μπορεί κάποιος να με βοηθήσει;

  2. #2
    Εγγραφή
    24-01-2012
    Μηνύματα
    76
    Downloads
    0
    Uploads
    0
    ISP
    ttt
    Πρεπει να φτιαξεις μια εφαρμογή που θα κανει post τα name-password και θα διαβαζει την json response.
    Μπορεις να το κανεις σε java για να τρεχει σε linux .
    http://stackoverflow.com/questions/3...equest-in-java

    Μετα κανεις parse το json
    http://stackoverflow.com/questions/2...e-json-in-java

  3. #3
    Το avatar του μέλους bomberb17
    bomberb17 Guest
    Θα προτιμούσα να μη μπλέξω με java, θα ήθελα να το κρατήσω όσο πιο απλό γίνεται.
    Σκέφτομαι για να αποφύγω το πρόβλημα του username/password να βάλω τον ίδιο τον server μου να στέλνει το text output του php περιοδικά σε έναν άλλον server. Κάτι σαν αυτό
    Κώδικας:
    php monitor.php | ssh username@example.com "cat > file.txt"
    Το πρόβλημα είναι όμως ότι δε μπορώ να δίνω αυτόματα το ssh password μου..

  4. #4
    Εγγραφή
    07-11-2005
    Περιοχή
    /dev/null
    Ηλικία
    41
    Μηνύματα
    1.610
    Downloads
    5
    Uploads
    0
    Ταχύτητα
    20480/1024
    ISP
    Forthnet
    DSLAM
    ΟΤΕ - ΠΑΤΗΣΙΑ
    Router
    OpenBSD -stable
    SNR / Attn
    6(dB) / 12(dB)
    Παράθεση Αρχικό μήνυμα από bomberb17 Εμφάνιση μηνυμάτων
    Το πρόβλημα είναι όμως ότι δε μπορώ να δίνω αυτόματα το ssh password μου..
    Γιατί δε χρησιμοποιείς ένα ssh key; To κάνεις generate, κάνεις cat το .pub στον server στο ~/.ssh/authorized_keys και καθάρισες.
    Richard Stallman: "I see you are being your usual friendly self ;-}."
    Theo de Raadt: "Yes, and you are being the usual slimy hypocritical asshole."

  5. #5
    Το avatar του μέλους bomberb17
    bomberb17 Guest
    Ναι το ξέρω, δεν θέλω όμως να αλλάξω τον ssh server μου γιατί είναι επίπονο μετά να περάσω το key σε όλους τους άλλους clients που έχω..

  6. #6
    Εγγραφή
    07-11-2005
    Περιοχή
    /dev/null
    Ηλικία
    41
    Μηνύματα
    1.610
    Downloads
    5
    Uploads
    0
    Ταχύτητα
    20480/1024
    ISP
    Forthnet
    DSLAM
    ΟΤΕ - ΠΑΤΗΣΙΑ
    Router
    OpenBSD -stable
    SNR / Attn
    6(dB) / 12(dB)
    Παράθεση Αρχικό μήνυμα από bomberb17 Εμφάνιση μηνυμάτων
    Ναι το ξέρω, δεν θέλω όμως να αλλάξω τον ssh server μου γιατί είναι επίπονο μετά να περάσω το key σε όλους τους άλλους clients που έχω..
    Δεν αλλάζεις το key στον server. Από το pc σου ουσιαστικά θέλεις ένα key για να κάνεις login (εκτός αν κατάλαβα λάθος ). Ακόμη κι έτσι να είναι και να μη θέλεις να χάσεις το key σου για να το κάνεις use σε άλλους servers, κάνεις generate ένα καινούριο, το περνάς μέσα στο .ssh με διαφορετικό name και ρίχνεις στο ~/.ssh/config κάτι ανάλογο με αυτό:

    Κώδικας:
    Host name
            HostName server.address
            User username
            IdentityFile ~/.ssh/newkey_rsa
    Τελευταία επεξεργασία από το μέλος ESP1982 : 24-04-15 στις 12:10. Αιτία: no js mangled muh format
    Richard Stallman: "I see you are being your usual friendly self ;-}."
    Theo de Raadt: "Yes, and you are being the usual slimy hypocritical asshole."

  7. #7
    Το avatar του μέλους bomberb17
    bomberb17 Guest
    Ok ευχαριστώ, τελικά βρήκα τρόπο χωρίς να μπλέξω με ssh! Στον άλλον μου linux server δίνω σε terminal prompt
    Κώδικας:
    curl -u username:password http://myserver.com/monitor.php
    και μου βγάζει τις json τιμές όπως παραπάνω!
    Τώρα λοιπόν αυτό που θέλω εγώ να κάνω είναι να φτιάξω γραφήματα των τιμών αυτών ανά το χρόνο...
    Τελευταία επεξεργασία από το μέλος bomberb17 : 24-04-15 στις 16:40.

  8. #8
    Εγγραφή
    31-12-2007
    Περιοχή
    Αθήνα
    Ηλικία
    51
    Μηνύματα
    324
    Downloads
    1
    Uploads
    0
    ISP
    HOL
    DSLAM
    HOL - ΜΑΡΟΥΣΙ
    Για να διαβάσεις το JSON, έχει έτοιμες functions η PHP: http://php.net/manual/en/ref.json.php

    Για τα γραφήματα, μπορείς να δοκιμάσεις κάτι έτοιμο, όπως το flot: http://www.flotcharts.org/

  9. #9
    Το avatar του μέλους bomberb17
    bomberb17 Guest
    Παράθεση Αρχικό μήνυμα από axxis Εμφάνιση μηνυμάτων
    Για να διαβάσεις το JSON, έχει έτοιμες functions η PHP: http://php.net/manual/en/ref.json.php

    Για τα γραφήματα, μπορείς να δοκιμάσεις κάτι έτοιμο, όπως το flot: http://www.flotcharts.org/
    Ναι για τα γραφήματα μάλλον θα πάω σε κάτι έτοιμο, βρήκα και http://www.highcharts.com

    Πως όμως θα τα χρησιμοποιήσω; Μου φαίνεται κομματάκι περίπλοκο..

  10. #10
    Εγγραφή
    31-12-2007
    Περιοχή
    Αθήνα
    Ηλικία
    51
    Μηνύματα
    324
    Downloads
    1
    Uploads
    0
    ISP
    HOL
    DSLAM
    HOL - ΜΑΡΟΥΣΙ
    Έχεις ξαναγράψει κάτι σε PHP; Έχεις παίξει με Apache και PHP;
    Αν ναι, εδώ έχει ένα ωραίο παράδειγμα με PHP και highcharts: http://www.kliptu.com/free-script/dy...-php-json-data
    Αν δεν θέλεις να μπλέξεις με PHP και Apache, θα μπορούσες να κάνεις το ίδιο με nodejs.
    Εξαρτάται όμως τι σχέση έχεις με προγραμματισμό σε web.

    Το μηχάνημα στο οποίο αναφέρεσαι, τι είναι; Έχεις ψάξει αν υπάρχει η δυνατότητα να παίρνεις το JSON χωρίς να κάνεις login;
    Τελευταία επεξεργασία από το μέλος axxis : 26-04-15 στις 20:18.

  11. #11
    Το avatar του μέλους bomberb17
    bomberb17 Guest
    Με PHP δεν έχω ασχοληθεί ιδιαίτερα, τώρα μου δίνεται η αφορμή και αρχίζω να ασχολούμαι...
    Το μηχάνημα είναι ένα bitcoin miner. Το JSON το παίρνω όπως έγραψα παραπάνω με την curl.
    Ο κύριος προβληματισμός μου είναι ότι δεν πρόκειται για στατικά δεδομένα, αλλά δεδομένα που μεταβάλλονται με το χρόνο. Π.χ. στις 14.00 η θερμοκρασία είναι 28oC, στις 15.00 29oC κ.ο.κ.
    Εγώ θέλω λοιπόν να εμφανίσω τα δεδομένα π.χ. της τελευταίας εβδομάδας, με ανάλυση ανά ώρα.
    Άρα θα πρέπει λοιπόν με κάποιο τρόπο να τα "αποθηκεύω" κάπου με timestamps (χρησιμοποιώντας ένα cron job), σωστά; Μήπως να κοιτάξω να χρησιμοποιήσω τις ob_start() και ob_get_clean() σε ένα php script και να το τρέχω με cron?

  12. #12
    Το avatar του μέλους bomberb17
    bomberb17 Guest
    Αυτό που θέλω λοιπόν είναι να βρω τρόπο να μετατρέπω ένα JSON βάζοντάς του timestamp και να φτιάχνεται ένα μεγάλο JSON το οποίο θα χρησιμεύει σαν ιστορικό.
    Δηλαδή θέλω π.χ. να έχω ως input αυτό
    Κώδικας:
    {"CG_Uptime":753991,"MHS_Avg":3587198.92,"DegC_In":"27","DegC_TopOut":"58","DegC_BotOut":"67"}
    και μέσω ενός cron job να μου φτιάχνεται αυτό
    Κώδικας:
    {"Data": {
     "Data1":{"Year":"2015","Month":"05","Day":"01","Hour":"23","Minutes":"20","Seconds":"30","Stats":{"CG_Uptime":753991,"MHS_Avg":3587198.92,"DegC_In":"27","DegC_TopOut":"58","DegC_BotOut":"67"}},
      "Data2":{"Year":"2015","Month":"05","Day":"02","Hour":"23","Minutes":"20","Seconds":"30","Stats":{"CG_Uptime":753991,"MHS_Avg":3587198.92,"DegC_In":"27","DegC_TopOut":"58","DegC_BotOut":"67"}},
      "Data3":{"Year":"2015","Month":"05","Day":"03","Hour":"23","Minutes":"20","Seconds":"30","Stats":{"CG_Uptime":753991,"MHS_Avg":3587198.92,"DegC_In":"27","DegC_TopOut":"58","DegC_BotOut":"67"}}}}
    Ξέρει κανείς πως μπορεί να γίνει;

  13. #13
    Εγγραφή
    31-12-2007
    Περιοχή
    Αθήνα
    Ηλικία
    51
    Μηνύματα
    324
    Downloads
    1
    Uploads
    0
    ISP
    HOL
    DSLAM
    HOL - ΜΑΡΟΥΣΙ
    Νομίζω ότι έχεις βρει μόνος σου τη λύση.

    Χρειάζεσαι ένα cron job το οποίο θα τρέχει ένα script το οποίο θα τραβάει με cURL το JSON με τα νέα δεδομένα από το μηχάνημα που θέλεις, θα προσθέτει το timestamp και στη συνέχεια θα προσθέτει το παραγόμενο json στο υπάρχον.
    Το υπάρχον json θα πρέπει να το κρατάς είτε όπως είναι σε κάποιο αρχείο, είτε σε κάποια βάση.
    Το script σου θα μπορούσε να είναι σε PHP αλλά δεν είναι απαραίτητο.
    Η PHP βέβαια έχει καλή υποστήριξη και για cURL και για JSON.
    Σε αυτή την περίπτωση, χρησιμοποιείς την PHP για να τρέξεις απλά ένα script οπότε δεν χρειάζεσαι κάποιον web server όπως είχα γράψει πιο πάνω.

    Δυστυχώς εγώ δεν έχω το χρόνο να σε βοηθήσω πιο ουσιαστικά. Αν όμως ξεκινήσεις να γράφεις κάτι και κολλήσεις κάπου, όλο και κάποιος θα σε βοηθήσει.

Παρόμοια Θέματα

  1. Επαναφορά δεδομένων σε iphone 4
    Από Sea_of_madness στο φόρουμ iOS
    Μηνύματα: 4
    Τελευταίο Μήνυμα: 04-04-20, 09:54
  2. Μηνύματα: 1
    Τελευταίο Μήνυμα: 31-12-14, 18:22
  3. Εξαγωγή Επαφών σε Excel
    Από nith1717 στο φόρουμ Windows
    Μηνύματα: 0
    Τελευταίο Μήνυμα: 09-10-14, 12:14
  4. Μηνύματα: 2
    Τελευταίο Μήνυμα: 01-09-14, 00:15
  5. Μηνύματα: 0
    Τελευταίο Μήνυμα: 28-04-14, 11:22

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας