Επικόλληση στο GNU Screen

0 Flares Twitter 0 Facebook 0 LinkedIn 0 Filament.io Made with Flare More Info'> 0 Flares ×

Στο γραφείο χρειάζεται να δουλεύω μεταξύ ενός Linux desktop και ενός Windows XP laptop. Η συγκεκριμένη διαμόρφωση έχει τα θετικά της έχει και τα αρνητικά της. Δεν μπορώ να μήν παραδεχτώ ότι το Microsoft Office είναι ένα προϊόν στοχευμένο στο εταιρικό περιβάλλον και ενώ το OpenOffice είναι υπεραρκετό για το σπίτι, στο γραφείο είναι υποχρεωτικό να δουλεύεις με Enterprise Grade λογισμικό. Για πολλούς λόγους ισχύει αυτό που δεν θα ήθελα να αναφέρω τώρα. Δεν είναι αυτός ο σκοπός της καταχώρησης. Το RedHat distro που έχουμε είναι fully supported ως Enterprise Linux.

Αυτό που ήθελα να προσφέρω, σε όποιον/α ενδιαφέρεται, είναι ένας τρόπος να αξιοποιείτε η ταυτόχρονη χρήση του GNU Screen από πολλαπλούς χρήστες. Είχα αναφερθεί στο Screen και σε παλαιότερη ανάρτηση. Για να μετακινούμαι από Linux σε Windows χρησιμοποιώ οθόνες με διπλή είσοδο σήματος. Με αυτό τον τρόπο το linux desktop παρέχει σήμα σε DVI, σε δύο οθόνες, και το Windows laptop σήμα σε VGA και πάλι σε δύο οθόνες. Με αυτό τον τρόπο πατώντας ένα κουμπί στην οθόνη, αλλάζω την οπτική μεταξύ τους. Σε συνδιασμό και με το synergy2, δεν χρειάζεται να έχω πολλαπλά πληκτρολόγια και ποντίκια. Περισσότερα για το synergy2 σε μελλοντική καταχώρηση αν σας ενδιαφέρει. Απλά ρωτήστε στα σχόλια.

Υπάρχουν όμως φορές που δεν χρειάζομαι ολόκληρο τον X server να τρέχει GDM. Χρειάζομαι απλά μια οθόνη με τερματικό. Κάτι τέτοιο είναι πολύ απλό. Το putty είναι ένα πολύ ελαφρύ και εύχρηστο εργαλείο για να συμπληρώσει την έλλειψη SSH & SCP στα Windows. Υποστηρίζει και public key cryptography σε περίπτωση οπυ θέλετε να συνδέεστε χωρίς συνθηματικό στον απομακρυσμένο υπολογιστή. Επικίνδυνο, αλλά βολικό ορισμένες φορες πίσω από προστατευμένα δίκτυα. Μπορώ συνεπώς σχετικά εύκολα να συνδέομαι στο Linux box.

Αυτό που χρειαζόμουν είναι ένα τρόπο να διατηρώ ένα socket του Screen ανάμεσα στους δύο υπολογιστές. Αν εν τέλη χρειαζόμουν να αλλάξω την οθόνη στο μηχάνημα του RedHat, ήθελα να διατηρώ όλες τις εντολές και το history του ότι είχα κάνει μέσω putty.

Ο τρόπος να γίνει αυτό είναι με την δυνατότητα του Screen να διαχειρίζετε πολλαπλούς χρήστες. Στην συγκεκριμένη περίπτωση και οι δύο χρήστες είμαι εγώ. Ότι πληκτρολογώ στο putty στα Windows εκείνη τη στιγμή εμφανίζεται στο linux.

Για να γίνει αυτό θα πρέπει να γίνει επικόλληση στην υπάρχουσα επικολλημένη (attached screen). Αυτό που ήθελα ήταν ένας τρόπος να επιταχύνω αυτή τη διαδικασία μέσω ενός script. Το παρακάτω script κάνει ακριβώς αυτό. Τοποθετήστε το κάπου στο path και κάθε φορά που το εκτελείτε αφότου συνδεθείτε μέσω putty, θα μπορείτε να επικολλήστε στην πρώτη υπάρχουσα οθόνη του Screen.

Αυτό που καταφέρνει το παρακάτω είναι να παίρνει μία λίστα όλων των υπάρχοντων οθόνων (Γραμμή 2) και να την αποθηκεύει σε ένα προσωρινό αρχείο. Η πρώτη περίπτωση μέσα σε αυτή την λίστα που αναφέρει μία οθόνη ώς επικολλημένη “(Attached)” αποθηκεύεται (Γραμμή 3) και το προσωρινό αρχείο διαγράφεται (Γραμμή 4). Από εκεί και πέρα αν υπάρχει διαθέσιμη επκολλημένη οθόνη (Γρ. 5) τότε επικολλούμαστε σε αυτήν (Γρ. 7), αλλιώς εκκινούμε μία νέα οθόνη (Γρ. 9)

</span></p>

<pre>#!/bin/bash
s=$(screen -list > /tmp/awk)
screen=$(awk '$2 == "(Attached)" { print $1 }' /tmp/awk)
r=$(rm -rf /tmp/awk)
if [ -n $screen ]
then
run="screen -x $screen"
else
run="screen -R"
fi
$run

Ελπίζω να το βρίσκετε τόσο χρήσιμο όσο και εγώ.

Χρίστος.

0 Flares Twitter 0 Facebook 0 LinkedIn 0 Filament.io Made with Flare More Info'> 0 Flares ×