LTSP: Reverse messaging (teachers" group --> administrator) HowTo

Ξεκίνησε από mandarinos, 11 Νοε 2025, 09:36:26 ΠΜ

« προηγούμενο - επόμενο »

mandarinos

Το ζητούμενο
Επειδή ο πληροφορικός του σχολείου δεν είναι μονάχα ο άτυπος τεχνικός / το παιδί γιά τα θελήματα, αλλά κάνει και μάθημα (ναι! :) ), τότε δεν είναι επιθυμητό να ζητάει κάποιος συνάδελφος μιά "κομπιουτερική" εξυπηρέτηση σε ώρα μαθήματος· είτε με κλήση στο κινητό, είτε με sms, είτε ερχόμενος ο ίδιος, είτε στέλνοντας μαθητή να ειδοποιήσει. Και τούτο, επειδή διακόπτεται μάθημα, πράγμα όχι και τόσο ωραίο – γιά την ακρίβεια, διακόπτονται περισσότερα του ενός μαθήματα! (Χώρια η αφορμή που βρίσκουν οι μαθητές γιά θόρυβο / φασαρία.)


Η λύση
...Είναι να μπορεί ο/η συνάδελφος, μέσω του LTSP (μιά που υπάρχει ως δίκτυο), να ειδοποιήσει τον πληροφορικό / LTSP sysadmin με μήνυμα μέσω του δικτύου, χωρίς να διακόπτεται (ουσιαστικά) η λειτουργία των μαθημάτων. (Φυσικά, ο sysadmin πάντα μπορεί να απαντήσει μέσω του "Επόπτη".)

Πχ: "- Είμαι στην αίθουσα 4, ξαφνικά ο προβολέας έχασε την εικόνα."
Απάντηση: "- Μάλλον το βύσμα του προβολέα δεν είναι στερεωμένο καλά με βιδάκια. Σπρώξε το λίγο. Αν δεν επανέλθει η εικόνα, θα το κοιτάξω την 3η ώρα, που έχω κενό."

Η ενδοεπικοινωνία αυτή είναι φτιαγμένη να ισχύει μονάχα γιά το εκπαιδευτικό προσωπικό (τους users του group "teachers", που τους βλέπουν μονάχα οι ΗΥ των αιθουσών και του Συλλόγου Διδασκόντων). Γιά ευνόητους λόγους, δεν διατίθεται γιά τους users των μαθητών.

.......................................

Γιά να στήσω αυτό το σύστημα ενδοεπικοινωνίας, ρώτησα την ΤΝ DeepSeek. Κατάφερα να βρω μιά άκρη, μετά από αρκετές ερωτήσεις και ακόμη περισσότερες δοκιμές. Συμμάζεψα τη σωστή απάντηση, και προτίμησα να την παρουσιάσω σ' ένα αρχείο .odt, αντί γιά διαδοχικά (και κουραστικά) posts εδώ. Οπότε, ο καθένας μπορεί άνετα να δεί το αρχείο κειμένου και να το τροποποιήσει, αν έχω λάθη.
Επίσης, παραθέτω και το πρωτογενές υλικό της συνομιλίας μου με την ΤΝ. Ο λόγος; Μπορεί κάποιος απλά να ψάξει από περιέργεια, ή να βρεί ενδιαφέρουσες ιδέες· ή, πολύ απλά να επισημάνει ότι υπάρχει και καλύτερος / συντομώτερος / ασφαλέστερος τρόπος να υλοποιηθεί το συγκεκριμένο project, τον οποίο τρόπο δεν είδα.

(Προσέξτε, μόνο, μη μπλέξετε με τις απαντήσεις, διότι είναι χαοτικές. Αρκεί που έσπασα εγώ το κεφάλι μου, δεν χρειάζεται να επαναλάβετε κι εσείς κάτι τέτοιο!
Επίσης, οι παρατηρητικοί θα διαπιστώσουν ότι σε κάποια σημεία η ΤΝ κάνει παλινωδίες, και παραλείπει απαραίτητα πράγματα· πχ κάπου "έφαγε" ένα απαραίτητο chmod +x.
Με δικαιώνει απόλυτα, όταν λέω ότι ο τελικός κριτής είναι ο άνθρωπος-προγραμματιστής.)

Ελπίζω, πάντως, να βρήτε χρήσιμη αυτή τη utility!

.......................................

Έχει δοκιμαστεί και δουλεύει άψογα, στον συνδυασμό:

Linux Mint 22.2
LTSP version 23.02-3+202509210549~ubuntu24.04.1 ( = η απάντηση στην εντολή: ltsp --version)


ToDo List

  • Να δοκιμαστεί στο αυθεντικό Ubuntu 24.04.xx .

  • Να βρεθεί το bug, που την κάνει να φέρεται περίεργα (το αναδυόμενο παράθυρο βγάζει άσχετες ενδείξεις), όταν η οθόνη του admin βρίσκεται σε κατάσταση lock. (Ίσως ή/και με τον screen saver ενεργοποιημένον.)

Βρέθηκε και διορθώθηκε. (Έτσι φαίνεται μέχρι στιγμής.)
Στο κείμενο του HowTo (αλλά και στο αρχείο message_server.sh, εννοείται!), αλλάξτε το περιεχόμενο του message_server.sh, σύμφωνα με την υπόδειξη στο αμέσως επόμενο post.

  • Αν θεωρηθεί σκόπιμο, ίσως να ενταχθεί σε κάποια μελλοντική έκδοση του LTSP. (Ίσως με κάποιο script αυτόματης δημιουργίας όλων των απαραιτήτων αρχείων; )

(Δεν λέω το να ενταχθεί στον "Επόπτη", διότι το εκπαιδευτικό προσωπικό πρέπει οπωσδήποτε πρώτα να γίνει μέλος του αντίστοιχου Linux group, γιά να τον χρησιμοποιήσει. Ενώ έτσι, δεν χρειάζεται η ένταξη στο group epoptes. Αλλά, τί να τον κάνει τον "Επόπτη" στον Σύλλογο Διδασκόντων;
Προσωπικά, βάζω ως μέλη στον "Επόπτη" μονάχα όσους μή-πληροφορικούς συναδέλφους ζητήσουν να τους "δανείσω" το εργαστήριο Πληροφορικής γιά κάποιες ώρες. Άρα, αυτή η προοπτική εξ ορισμού δεν είναι χρήσιμη γιά όλους και ανά πάσα στιγμή.)

  • Εάν ισχύσει η ένταξη σε μελλοντική έκδοση του LTSP, τότε: Localization / i18n.

(Δεν άλλαξα τα αγγλόφωνα μηνύματα, όχι από τεμπελιά, αλλά γιά να μην παρέμβω σε τυχόν διαδικασία i18n. Εσείς, βέβαια, μπορείτε να τ' αλλάξετε - γιά τοπική εφαρμογή στο σχολείο σας.)

  • Ίσως μελλοντική επέκταση της εφαρμογής αυτής σε πλήρη ενδοεπικοινωνία του εκπαιδευτικού προσωπικού μεταξύ τους, χωρίς τη μεσολάβηση του LTSP sysadmin.

(...Αν προκύψει κάποια ανάγκη γιά κάτι τέτοιο. Μπορεί, βέβαια, να γίνει εμμέσως, μέσω του sysadmin, αλλά αυτή δεν είναι δόκιμη λύση.)


Αναφορές
Ακολουθούν ως επισυναπτόμενα: το κείμενο του HowTo και το πρωτογενές υλικό της συνομιλίας μου με την ΤΝ. (Και τα δύο αρχεία παρουσιάζονται σε μορφή .odt .)



mandarinos

Χμ... και η απάντηση της ΤΝ γιά το bug:

Δίνουμε:
sudo nano /usr/local/bin/message_server.sh

Και αλλάζουμε το περιεχόμενο με:

#!/bin/bash
# message_server.sh - Clean version without lock screen pollution

SERVER_IP="0.0.0.0"
PORT=9999
LOG_FILE="/var/log/teacher_messages.log"

# Create log file if it doesn't exist
touch "$LOG_FILE"
chmod 644 "$LOG_FILE"

# Log function that only writes to file (not stdout)
log_message() {
    echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$LOG_FILE"
}

# Initial log entry (only to file, not screen)
log_message "Teacher Message Server starting on port $PORT"

# Suppress all status messages from terminal output
while true; do
    # Run netcat quietly and process messages
    nc -l -p $PORT -w 3600 2>/dev/null | while read -r line; do
        if [ -n "$line" ]; then
            TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
            LOG_ENTRY="[$TIMESTAMP] $line"
            
            # Log to file only
            echo "$LOG_ENTRY" >> "$LOG_FILE"
            
            # Show desktop notification (this will queue until screen unlocks)
            notify-send -t 10000 -u critical "💬 Teacher Message" "$line"
            
            # Optional: Play sound notification
            if command -v paplay &> /dev/null && [ -f "/usr/share/sounds/freedesktop/stereo/message.ogg" ]; then
                paplay /usr/share/sounds/freedesktop/stereo/message.ogg &
            fi
        fi
    done
    
    # If netcat exits, wait briefly and restart (quietly)
    sleep 2
done


mandarinos

logout (as administrator) / login / ξαναξεκινάει η utility / δουλεύει σωστά!

mandarinos

Φαίνεται πως συνεχίζεται το bug των ασχέτων μηνυμάτων, όταν έρχομαι το πρωΐ στο σχολείο και (ως administrator) βγάζω την οθόνη του server από την κατάσταση lock. (Ο server παραμένει ανοιχτός από το πέρας του ωραρίου της προηγούμενης μέρας και όλη νύχτα.) Το δέ αναδυόμενο παράθυρο των μηνυμάτων δεν υπακούει σε εντολή γιά κλείσιμο.

Τέλος πάντων, η θεραπεία είναι απλή:

(ως admin) logout / ξανά login,

και σταματάει η δυσλειτουργία.

mandarinos

(Παρακαλώ να μετακινηθεί το thread στον υποπίνακα "Linux". Από απροσεξία το ανάρτησα εδώ.)

thanos

Εξαιρετική προσπάθεια.

Αλλά μια ελαφρώς πιο "guru" προσέγγιση θα ήταν να σου στέλνει μνμ στο Viber.

mandarinos

Νά σαι καλά γιά έπαινο!

Απλά σκέφτηκα ότι μιά τέτοια utility είναι χρήσιμη μόνο γιά ενδοσχολικό περιβάλλον, όχι γιά παραέξω. Στο σπίτι, οι εκπαιδευτικοί του συλλόγου μας ανταλλάσσουμε και τηλεφωνήματα / sms / μηνύματα Viber στην ομαδική... όθεν χωρίς χρησιμότητα το reverse messaging.

Βέβαια, αν κάποιος σκεφτεί κάποια χρησιμότητα γιά αυτόματη ειδοποίηση και στο Viber, οκ, θα το κοιτάξω!  :)

.....................................

Με την ευκαιρία: επειδή έχω στα σκαριά ακόμη καναδυό μεγαλούτσικα HowTo's, μπορούμε εδώ στο φόρουμ να έχουμε ξεχωριστή κατηγορία τέτοιων θεμάτων;