Τα έργα μας είναι συνήθως περιφερειακά και οι πελάτες είναι συνήθως υπουργεία. Αλλά, εκτός από τον δημόσιο τομέα, τα συστήματά μας χρησιμοποιούνται και από ιδιωτικούς οργανισμούς. Δεν υπάρχουν πρακτικά κανένα πρόβλημα με αυτά.
Έτσι, τα κύρια έργα είναι περιφερειακά και μερικές φορές υπάρχουν προβλήματα με αυτά. Για παράδειγμα, με την παραγωγικότητα, όταν στις περιοχές υπάρχουν 20 χιλιάδες από τους πολύτιμους χρήστες μας κατά την περίοδο κυκλοφορίας νέων λειτουργιών στους διακομιστές προϊόντων. Αυτό είναι ένα πρόβλημα...
Ονομάζομαι Ruslan και ασχολούμαι με την υποστήριξη πληροφοριακών συστημάτων του Ομίλου BARS και ανάπτυξη ενός φονικού bot για βίαιους σειριακούς κωδικούς δεδομένων (DBAs)Αυτή η ανάρτηση δεν είναι για όσους έχουν λιγότερη καρδιά - πολλά γράμματα και εικόνες.

/awr
Ορισμένες από τις εφαρμογές μας εκτελούνται σε Oracle DBMS. Υπάρχουν επίσης έργα σε PostgreSQL DBMS. Η Oracle έχει ένα σπουδαίο πλεονέκτημα - τη συλλογή στατιστικών στοιχείων φόρτωσης DBMS, τα οποία επισημαίνουν υπάρχοντα προβλήματα και δίνουν ακόμη και συστάσεις για εξάλειψη - Αυτόματο Αποθετήριο Φορτίου Εργασίας (AWR). Σε κάποιο σημείο (δηλαδή, τη στιγμή του προβλήματος), οι προγραμματιστές ζητούσαν συνεχώς να συλλέγουν Αναφορές AWR για ανάλυση απόδοσηςΕιλικρινά, πήγαμε στον διακομιστή DBMS, συλλέξαμε αναφορές, τις μεταφέραμε στον εαυτό μας και τις στείλαμε για ανάλυση στην παραγωγή. Μετά την 5η φορά έγινε ενοχλητικό... μετά την 10η - ενοχλητικό...
Μια μέρα, ένας από τους συναδέλφους μου εξέφρασε την ιδέα ότι οτιδήποτε γίνεται περισσότερες από μία φορές θα πρέπει να αυτοματοποιείται. Για να είμαι ειλικρινής, μέχρι τη στιγμή του εκνευρισμού, δεν το σκέφτηκα και προσπάθησα να αυτοματοποιήσω οτιδήποτε μπορούσε να αυτοματοποιηθεί, αλλά συχνά δεν υπήρχε ζήτηση και ήταν περισσότερο ερευνητικό παρά εφαρμοσμένο.
Και μετά σκέφτηκα: «Δεν απαιτούνται διαχειριστές για τη δημιουργία αναφοράς...»Άλλωστε, η συλλογή μιας αναφοράς σημαίνει εκτέλεση του σεναρίου SQL @$ORACLE_HOME/rdbms/admin/awrrpt.sql και λήψη της αναφοράς από τον διακομιστή στον εαυτό σας... Α, ναι, δεν αφήνουμε την ανάπτυξη να πάει στην παραγωγή.
Στη συνέχεια, έψαξα στο Google τις απαραίτητες πληροφορίες, δημιούργησα μια συνάρτηση από το άρθρο στη βάση δοκιμών, έβγαλα το σενάριο και ένα θαύμα - η αναφορά μεταγλωττίστηκε και μπορεί να αποθηκευτεί τοπικά. Δημιούργησα συναρτήσεις όπου χρειάζονταν συχνά αναφορές AWR, είπα στους προγραμματιστές πώς να τη χρησιμοποιήσουν.
Εκείνη την εποχή, στον ελεύθερο χρόνο μου, αφού είχα συνομιλήσει με τον @BotFather, δημιούργησα ένα bot Telegram για τον εαυτό μου, απλώς για πλάκα. Πρόσθεσα κάποιες απλές λειτουργίες - να δείχνει την τρέχουσα ώρα, τις συναλλαγματικές ισοτιμίες, τον καιρό, και το έμαθα να στέλνει κομπλιμέντα στη γυναίκα μου (τότε ήταν ακόμα κορίτσι) με βάση ένα πρόγραμμα. Ίσως, εκείνη την εποχή, η αποστολή κομπλιμέντας ήταν η πιο δημοφιλής λειτουργία του bot μου, και η γυναίκα μου το εκτιμούσε.
Λοιπόν. Οι προγραμματιστές μας γράφουν στο Telegram, εμείς τους στέλνουμε μια αναφορά στο Telegram... Αλλά τι γίνεται αν δεν γράψουν σε εμάς, αλλά στο bot; Άλλωστε, θα είναι καλύτερο για όλους, η αναφορά θα λαμβάνεται πιο γρήγορα και, το πιο σημαντικό, θα περνάει από εμάς. Έτσι γεννήθηκε η ιδέα της πρώτης δημοφιλούς λειτουργικότητας για το bot μου.
Άρχισα να το υλοποιώ. Το έκανα όσο καλύτερα μπορούσα σε PHP (η εφαρμογή μας είναι στην πραγματικότητα σε PHP, την καταλαβαίνω καλύτερα από την Python). Δεν είμαι και πολύ σχεδιαστής κώδικα, οπότε δεν θα σας δείξω τον κώδικά μου :)
Το bot βρίσκεται στο εταιρικό μας δίκτυο και έχει πρόσβαση σε συγκεκριμένα έργα, συμπεριλαμβανομένων των βάσεων δεδομένων-στόχων. Για να μην ασχολούμαι με παραμέτρους στην εντολή ή με το μενού, έχω συνδέσει αυτήν τη λειτουργικότητα στην ομαδική συνομιλία με ειδοποιήσεις παρακολούθησης. Έτσι, το bot γνωρίζει αμέσως από ποια βάση δεδομένων να συλλέξει την αναφορά.
Έχοντας λάβει την εντολή της φόρμας /awrN, όπου N είναι ο αριθμός των πλήρων ωρών για τις οποίες χρειάζεται μια αναφορά (από προεπιλογή, 1 ώρα), ακόμη και για μια εβδομάδα, εάν η βάση δεδομένων δεν έχει επανεκκινηθεί, το bot αρχίζει αμέσως να λειτουργεί, συλλέγει την αναφορά, τη δημοσιεύει ως ιστοσελίδα και αμέσως (σχεδόν αμέσως) παρέχει έναν σύνδεσμο προς την τόσο απαραίτητη αναφορά.
Ακολουθούμε τον σύνδεσμο και ορίστε η αναφορά AWR:

Όπως αναμενόταν, οι προγραμματιστές αντιμετώπισαν μια τέτοια δημιουργία αναφορών, κάποιος μάλιστα τους ευχαρίστησε.
Έχοντας αξιολογήσει την ευκολία της εντολής, οι διαχειριστές έργων από άλλες περιοχές ήθελαν το ίδιο, επειδή λαμβάνουν τα περισσότερα οφέλη από τον πελάτη και ανησυχούν για την απόδοση και τη διαθεσιμότητα των συστημάτων. Πρόσθεσα το bot στις άλλες συνομιλίες. Το χρησιμοποιούν ακόμα και είμαι ευχαριστημένος με αυτό.
Αργότερα, συνάδελφοι από το CIT ανακάλυψαν τον τρόπο συλλογής αναφορών και ήθελαν να συμμετάσχουν. Δεν τους πρόσθεσα στις συνομιλίες μας, αλλά δημιούργησα μια ξεχωριστή συνομιλία με δυνατότητα δημιουργίας αναφορών σύμφωνα με το χρονοδιάγραμμα και κατόπιν αιτήματος.
/pgΑσβός
Έχουμε επίσης και άλλες εφαρμογές σε PHP σε συνδυασμό με την PostgreSQL. Υλοποιήθηκε η συλλογή αναφορών pgBadger για όσους έχουν ανάγκη, χρησιμοποιώντας την ίδια αρχή - σε ομαδικές συνομιλίες. Στην αρχή το χρησιμοποιήσαμε, αλλά μετά σταματήσαμε. Η λειτουργικότητα αφαιρέθηκε ως περιττή.
/δασμός
Το τμήμα μας έχει νυχτερινές βάρδιες και, κατά συνέπεια, πρόγραμμα. Βρίσκεται στους πίνακες της Google. Δεν είναι πάντα βολικό να αναζητήσετε έναν σύνδεσμο, να ανοίξετε ένα πρόγραμμα, να ψάξετε μόνοι σας... Ένας πρώην συνάδελφός μου έπαιξε επίσης με το bot του Telegram και το εφάρμοσε στη συνομιλία του τμήματός μας. ειδοποιήσεις σχετικά με την έναρξη της βάρδιας εργασίας για τους υπαλλήλους του τμήματος. Το bot αναλύει το πρόγραμμα, προσδιορίζει το άτομο που έχει υπηρεσία μέχρι την τρέχουσα ημερομηνία και, σύμφωνα με το πρόγραμμα ή κατόπιν αιτήματος, αναφέρει ποιος έχει υπηρεσία σήμερα. Αποδείχθηκε υπέροχο, βολικό. Είναι αλήθεια ότι δεν μου άρεσε πολύ η μορφή των μηνυμάτων. Επίσης, οι υπάλληλοι ενός άλλου τμήματος (για παράδειγμα, το Επιχειρηματικό Κέντρο "Ιατρική") δεν χρειάζονται πραγματικά πληροφορίες για όσους έχουν υπηρεσία σε άλλους τομείς, αλλά πρέπει να γνωρίζουν ποιος έχει υπηρεσία στο "Ιατρικό" σε περίπτωση προβλημάτων. Αποφάσισα να "δανειστώ" τη λειτουργικότητα, αλλά να αλλάξω ό,τι δεν μου άρεσε. Έφτιαξα μια βολική μορφή μηνύματος για τον εαυτό μου και για τους άλλους, αφαιρώντας περιττές πληροφορίες.
/tnls
Αφού δοκίμασα τον αυτοματισμό μέσω ενός bot στο Telegram, είχα πολλές διαφορετικές ιδέες, αλλά ήθελα να κάνω τα απολύτως απαραίτητα πράγματα. Αποφάσισα να ηγηθώ. στατιστικά στοιχεία σχετικά με τα αιτήματα. Για την πρόσβαση στα έργα των πελατών μας, έχουμε υλοποιήσει έναν λεγόμενο "jump server" ή διακομιστή προώθησης. Σε αυτόν δημιουργούνται συνδέσεις VPN και στη συνέχεια οι θύρες εφαρμογών, οι βάσεις δεδομένων και άλλες βοηθητικές προωθήσεις προωθούνται στο τοπικό μας δίκτυο μέσω ssh, για εύκολη πρόσβαση στα έργα των εργαζομένων μας, χωρίς την ταλαιπωρία των συνδέσεων VPN. Αρκεί να ρυθμίσετε μια σύνδεση VPN στο εταιρικό μας δίκτυο.
Τα στατιστικά στοιχεία των αιτημάτων υποδεικνύουν ότι συχνά, μετά από διακοπή λειτουργίας μιας σήραγγας (σε περίπτωση προβλημάτων δικτύου, λόγω χρονικού ορίου, για παράδειγμα), οι χρήστες επικοινωνούν μαζί μας για την επαναφορά της πρόσβασης στο έργο. Στις περισσότερες περιπτώσεις, αρκεί απλώς να επανεκκινήσετε τη σύνδεση και όλα θα πάνε καλά. Ας το κάνουμε μόνοι σας. Ακολουθεί η εντολή:

«Πέφτεις» στο επιθυμητό στοιχείο μενού, επιλέγεις το έργο σου, περιμένεις ένα λεπτό και όλοι είναι ευχαριστημένοι και ικανοποιημένοι...
Μόλις λάβει μια εντολή, με μια μικρή κίνηση του χεριού σε bytes και bits, το bot συνδέεται με τον διακομιστή προώθησης, γνωρίζοντας εκ των προτέρων ποια προώθηση πρέπει να επανεκκινηθεί, και κάνει τη δουλειά του - επαναφέρει τη σύνδεση με το έργο. Έγραψα οδηγίες ώστε να μπορούν να λύσουν τέτοια προβλήματα μόνοι τους. Και επικοινώνησαν μαζί μας μόνο εάν το παρεχόμενο εργαλείο δεν λειτουργούσε...
/ecp_to_pem
Περαιτέρω στατιστικά στοιχεία έδειξαν ότι είναι συχνά απαραίτητο να μετατρέπονται EDS Crypto Pro σε μορφή pem() για διάφορες ενσωματώσεις, και έχουμε αρκετές από αυτές. Η εργασία: παίρνετε ένα κοντέινερ, το αντιγράφετε σε έναν υπολογιστή με Windows Με εγκατεστημένο το βοηθητικό πρόγραμμα P12FromGostCSP (επί πληρωμή, παρεμπιπτόντως), το μετατρέπετε σε pfx και, στη συνέχεια, μετατρέπετε το pfx σε pem χρησιμοποιώντας το OpenSSL (το οποίο υποστηρίζει κρυπτογράφηση GOST). Δεν είναι πολύ βολικό, αλλά θέλω να είναι τόσο εύκολο όσο ένα κλικ.
Η Google ήρθε ξανά στη σωτηρία. Το βρήκε Το συναρμολόγησα όπως ήταν γραμμένο στο README — λειτούργησε. Έμαθα το bot να λειτουργεί με το βοηθητικό πρόγραμμα και είχα σχεδόν άμεση μετατροπή.

Μέχρι την τελική εφαρμογή, εκδόθηκε εντολή για μετάβαση σε μια νέα μορφή κρυπτογράφησης - gost-2012. Από όσο θυμάμαι, το βοηθητικό πρόγραμμα εκείνη την εποχή λειτουργούσε μόνο με το παλιό GOST (2001), ίσως ήταν ένα εντελώς διαφορετικό παρόμοιο βοηθητικό πρόγραμμα από ένα άλλο καλό άτομο, δεν θυμάμαι ακριβώς.
Μετά τη μετάβαση στο νέο GOST, η λειτουργικότητα του bot αφαιρέθηκε για λόγους ασφαλείας. Την υλοποίησα σε ένα docker container.
Dockerfile, σε περίπτωση που κάποιος το χρειάζεται:
FROM ubuntu:16.04
RUN apt update && apt -y install git sudo wget unzip gcc g++ make &&
cd /srv/ && git clone https://github.com/kov-serg/get-cpcert.git &&
cd get-cpcert && chmod +x *.sh && ./prepare.sh && ./build.sh &&
mkdir -p /srv/{in,out} &&
echo '#!/bin/bash' > /srv/getpem.sh &&
echo 'cd /srv/get-cpcert' >> /srv/getpem.sh &&
echo './get-cpcert /srv/in/$CONT.000 $PASS > /srv/out/$CONT.pem' >> /srv/getpem.sh &&
chmod +x /srv/getpem.sh ENTRYPOINT /srv/getpem.shΓια να μετατρέψετε, πρέπει να τοποθετήσετε το αρχικό κοντέινερ (κατάλογο όπως xxx.000) στον κατάλογο /srv/in και να βάλετε το ολοκληρωμένο pem στον κατάλογο /srv/out.
Για να μετατρέψετε, κάντε τα εξής:
docker run -t -i -e CONT='<имя директории с контейнером(без ".000")>' -e PASS='<пароль для контейнера>' -v /srv/in:/srv/in -v /srv/out:/srv/out --name ecptopem <адрес нашего репозитория>/med/ecptopem:latest /emstop και /emstart
Μια μέρα, ένας πραγματικά καταπληκτικός Oracle DBA με πολλή εμπειρία στη διαχείριση και ανάπτυξη DBMS εντάχθηκε στην εταιρεία μας. Και αμέσως, αντιμετώπισε πρόβλημα με τη σύνδεση ssh στους διακομιστές DBMS: είτε δεν ήξερε πού ή πώς να συνδεθεί, είτε οι προσβάσεις δεν περιγράφονταν με σαφήνεια, είτε δεν μπορούσε να προωθήσει κάτι που χρειαζόταν στον εαυτό του. Λοιπόν, χαρήκαμε να τον βοηθήσουμε, του είπαμε πώς να συνδεθεί, προωθήσαμε τον Enterprise Manager για αυτόν. Αλλά τα πράγματα ακόμα δεν λειτούργησαν με το ssh. Ένας από τους συναδέλφους μας το εξήγησε απλά: ένας καθαρόαιμος DBA 🙂 Αποφασίσαμε ότι αν χρειαζόταν να τροποποιήσουμε κάτι στον διακομιστή, θα το κάναμε μόνοι μας.
Το EM μερικές φορές κολλάει υπό μεγάλο φόρτο εργασίας και για να το επανεκκινήσετε... πρέπει να συνδεθείτε μέσω ssh και να το επανεκκινήσετε μέσω του τερματικού. «Οι διαχειριστές είναι καλοί σε αυτό», αποφάσισε ο νέος μας συνάδελφος. Τα μεγάλα φόρτα εργασίας στο DBMS δεν είναι ασυνήθιστα για εμάς και τα αιτήματα για επανεκκίνηση του EM έχουν γίνει συνηθισμένα. Στη συνέχεια, το ίδιο σενάριο: ένταση, εκνευρισμός και αναζήτηση λύσης στο πρόβλημα. Έτσι, στις ίδιες ομαδικές συνομιλίες, εμφανίστηκαν οι ακόλουθες εντολές: /emstop και /emstart.

/ σκοτώστε
Σε περίπτωση έντονου ανταγωνισμού στη βάση, και αυτό συμβαίνει μερικές φορές, είναι απαραίτητο να ξεφορτώσετε γρήγορα τη βάση δεδομένων. Ο πιο γρήγορος τρόπος είναι να τερματίσετε την προβληματική διεργασία... Για να το κάνετε αυτό, συνδεθείτε μέσω ssh, τερματίστε το -9... Το bot θα βοηθήσει!

Ο Alexey εκτίμησε την ομάδα και της έδωσε ένα στοργικό όνομα - «Κιλάλκα» ή ένα όπλο.
Μια μέρα, αφού είδα τον Alexey να προσπαθεί να υποφέρει, εισάγοντας /kill xxx κάθε φορά για κάθε μία από τις διεργασίες, αποφάσισα να προσθέσω το "multi-barrel" στο όπλο μας:

Αυτό είναι καλύτερο! Όλα για σένα, Αλεξέι, απλώς δουλειά, αγαπητέ/ή μου!
Φυσικά, μια τόσο σημαντική ομάδα ήταν περιορισμένη πρόσβαση μέσω user_id - "αλάνθαστη". Βλέποντας πώς η Lesha σκοτώνει επιδέξια τις διαδικασίες στον διακομιστή DB, αρκετοί άνθρωποι προσπάθησαν να εισάγουν μια εντολή με έναν τυχαίο αριθμό διεργασίας, αλλά το έξυπνο bot μου δεν μπορούσε να ξεγελαστεί, απάντησε αμέσως με άρνηση.
/alertlog
Λοιπόν, για κάθε ενδεχόμενο, έδωσα την εντολή:
/alertlog <αριθμός γραμμών> — λάβετε τον καθορισμένο αριθμό γραμμών καταγραφής ειδοποιήσεων
Το bot λαμβάνει το αρχείο alertlog και το στέλνει στην υπηρεσία μας, όπως το pastebin, που ονομάζεται pyste, και στέλνει έναν σύνδεσμο προς την επικόλληση στη συνομιλία αιτήματος.
/επιταγές
Τότε ήρθε ένα αίτημα παρακολούθηση της πραγματικής απόδοσης της εφαρμογής μας. Μέχρι τώρα, η τεχνική υποστήριξη του έργου συνέλεγε αυτά τα δεδομένα χειροκίνητα. Με τίποτα! Οι γενναίοι δοκιμαστές μας έχουν αναπτύξει δοκιμαστικές περιπτώσεις για αυτό. Το αρχείο καταγραφής δοκιμών που προκύπτει δεν είναι πολύ εύκολο στην ανάγνωση, ένας άπειρος χρήστης θα αφιερώσει πολύ χρόνο για να το καταλάβει και δεν είναι γεγονός ότι θα επισημάνει τις απαραίτητες πληροφορίες. Και δεν μας αρέσει να κάνουμε χειροκίνητα αυτό που μπορεί να γίνει χωρίς χέρια... Μια νέα εργασία για το bot!

Η εντολή /checks δίνει ένα απλό και σαφές μενού, αυτή τη φορά οι δικοί μας έμαθαν να χρησιμοποιούν αυτήν την εντολή χωρίς οδηγίες!
Όταν επιλέγετε το επιθυμητό στοιχείο, αντί για ένα μενού, εμφανίζεται μια ειδοποίηση σχετικά με την έναρξη της δοκιμής, έτσι ώστε οι ανυπόμονοι χρήστες να μην εκτελέσουν τη δοκιμή μας 100500 φορές:

Ανάλογα με το επιλεγμένο στοιχείο μενού, ξεκινά μια συγκεκριμένη δοκιμή από το δίκτυό μας, δηλαδή από το μηχάνημα όπου βρίσκεται το bot (το jmeter είναι προρυθμισμένο εκεί, τοποθετούνται οι απαραίτητες δοκιμές...) ή απευθείας από το κέντρο δεδομένων (από ένα προετοιμασμένο μηχάνημα δίπλα στην εφαρμογή), προκειμένου να εξαλειφθούν οι καθυστερήσεις δικτύου κατά τη διάρκεια των δοκιμών ή να μειωθούν στο ελάχιστο.
Αφού ολοκληρώσει τη δοκιμή και λάβει το αρχείο καταγραφής, το bot το αναλύει και παράγει το αποτέλεσμα σε «αναγνώσιμη από τον άνθρωπο» μορφή:

Συλλογή μετρήσεων
Η λειτουργικότητα «τέθηκε σε λειτουργία» και οι πρόθυμοι διαχειριστές έργων έλαβαν μια τέτοια λειτουργία για τις περιοχές τους. Και ένας συμπονετικός Διευθυντής Έργου είπε: «Θέλω να έχω στατιστικά στοιχεία ανά ώρα!» Κάποιος από το CIT της πρότεινε ότι θα ήταν βολικό να παρακολουθούνται όλα αυτά στο Zabbix. Ζάμπιξ, άρα Ζάμπιξ...
Σκέφτηκα ότι έπρεπε να προετοιμαστώ για την ανάγκη αναπαραγωγής της λύσης... Τυποποίησα την ιδέα σε ένα κοντέινερ docker. Στο κοντέινερ, το jmeter εκκινείται σύμφωνα με το χρονοδιάγραμμα (μία φορά κάθε 10 λεπτά), αποθηκεύει το αρχείο καταγραφής σε ένα συγκεκριμένο σημείο, η php το αναλύει και δίνει τα απαραίτητα δεδομένα με τη μορφή μιας ιστοσελίδας. Το Zabbix λαμβάνει αυτήν τη σελίδα χρησιμοποιώντας το κλειδί web.page.get, επιλέγει τα απαραίτητα δεδομένα για ορισμένα εξαρτώμενα στοιχεία χρησιμοποιώντας μια κανονική έκφραση και κατασκευάζει ένα γράφημα.

Νομίζω ότι βγήκε καλό. Κοιτάζοντας το γράφημα, βλέπουμε, πρώτον, την κατά προσέγγιση ταχύτητα της εφαρμογής και, σε περίπτωση ανίχνευσης κορυφών στο γράφημα, γνωρίζουμε περίπου πού βρίσκεται το "κολλήμα". Όλα είναι απλά. Μέχρι στιγμής αποδείχθηκε ότι έχει ζήτηση μόνο για μία περιοχή, αλλά είμαι έτοιμος να το αναπαράγω για όσους το θέλουν.
Βελτίωση εφαρμογής
Στατιστικά στοιχεία για παρόμοιες εργασίες μου έδωσαν πρόσφατα περισσότερες ιδέες για την απλοποίηση και τη διευκόλυνση της εργασίας. Σε ορισμένα έργα, υπάρχει ανάγκη εγκατάστασης κοντέινερ κλειδιών Crypto Pro σε διακομιστές εφαρμογών, υπάρχουν πολλά από αυτά και η ψηφιακή υπογραφή λήγει με την πάροδο του χρόνου. Μερικές φορές "φτάνουν" 2 εργασίες την ημέρα. Αλλά θεώρησα ότι δεν ήταν ασφαλές να χρησιμοποιήσω ένα bot για αυτούς τους σκοπούς και αποφάσισα να κάνω τη λειτουργικότητα απευθείας στην εφαρμογή. Φυσικά, με εξουσιοδότηση και έλεγχο δικαιωμάτων πρόσβασης. Στην περίπτωση των απαραίτητων προνομίων, θα είναι διαθέσιμο ένα επιπλέον στοιχείο μενού για εργασία με την ψηφιακή υπογραφή, εγκατάσταση, διαγραφή, προβολή πληροφοριών κ.λπ. Προς το παρόν, η λειτουργικότητα βρίσκεται σε διαδικασία ανάπτυξης. Όπως αποδείχθηκε, δεν είναι πολύ δύσκολο, πρέπει να διαβάσετε λίγο τις υπάρχουσες οδηγίες, να δείτε παραδείγματα κώδικα, να ρωτήσετε πιο έμπειρους συναδέλφους στην ανάπτυξη και να το κάνετε. Κατά τη διαδικασία της έρευνας, εμφανίστηκαν ιδέες για προσθήκη στην εφαρμογή. Δεν θα κάνω ναπολεόντεια σχέδια - υπάρχει μια ανάπτυξη, αφήστε τον καθένα να κάνει το δικό του. Αλλά προς το παρόν είναι ενδιαφέρον - το κάνω μόνος μου.
Σχέδια
Όπως είπα, γεννήθηκαν πολλές διαφορετικές ιδέες για τη χρήση του bot μας και όχι μόνο - γενικά, ας πούμε, ιδέες για "σημεία αυτοματισμού", πολλές από αυτές ξεχάστηκαν, αφού δεν είχα χρόνο να τις γράψω. Τώρα προσπαθώ να γράφω όλα όσα μου έρχονται στο μυαλό και προτείνω και σε άλλους να κάνουν το ίδιο.
Αλλά ο Αλεξέι δεν ξεχνάει να πει και τις ευχές του. Από τα τελευταία:
/kill_sql SQL_ID - τερματισμός όλων των συνεδριών με τέτοιο ερώτημα SQL_ID
/kill_block - τερματίστε τη συνεδρία αποκλεισμού root
/εμφάνιση_εμφανίσεων — εμφάνιση εικόνας απόδοσης EM
Ο πονηρός θέλει να κάνει DBA από το τηλέφωνό του =)
Έτσι εργαζόμαστε για το καλό της Πατρίδας!
Πώς απελευθερώνεστε από τις ρουτίνας και τις αδιάφορες δραστηριότητες;
Ελπίζω το ανάγνωσμα να αποδείχθηκε ενδιαφέρον, και ίσως ακόμη και χρήσιμο σε κάποιον, και να μην είχα χρόνο να κουράσω τον αναγνώστη... Καλή τύχη σε όλους μας.
Πηγή: www.habr.com
