Εξέλιξη Κομματιού
Ημέρα 1
Μονάδα 1: Εισαγωγή στην Python για Χρήστες Unix
Θέματα
Γιατί Python για scripting και αυτοματοποίηση
• πλεονεκτήματα της Python για scripting
• χρήση της Python στη διαχείριση συστημάτων και DevOps
Σύγκριση Bash vs Python
• μεταβλητές
• έλεγχος ροής (if, loops)
• εργασία με αρχεία
• εκτέλεση εντολών συστήματος
Δομή ενός σεναρίου Python
• εκτέλεση σεναρίων Python
• χρήση του διακομιστή ερμηνείας (interpreter)
• ορίσματα γραμμής εντολών
• εισαγωγή στο argparse
Εφαρμογές
Εφαρμογή 1 – Μετατροπή ενός απλού σεναρίου Bash σε Python
Σενάριο Bash που:
• καταχωρεί τα αρχεία από έναν κατάλογο
• φιλτράρει ανά επέκταση
• εμφανίζει στατιστικά
Οι συμμετέχοντες θα ξαναγράψουν το σενάριο σε Python.
Εφαρμογή 2 – Σενάριο Python με ορίσματα CLI
Δημιουργία ενός σεναρίου Python που:
• λαμβάνει παραμέτρους από τη γραμμή εντολών
• επεξεργάζεται αρχεία
• εμφανίζει δομημένα αποτελέσματα
Μονάδα 2: Χειρισμός Αρχείων και Καταλόγων
Θέματα
Εργασία με το αρχείο σύστημα στην Python
• ανάγνωση και εγγραφή αρχείων
• πλοήγηση σε καταλόγους
• διαχείριση διαδρομών
Χρήση της μονάδας pathlib • διαχείριση διαδρομών • εργασίες αρχείων
Αντικατάσταση εργαλείων Unix • grep • find • sed • awk με υλοποιήσεις σε Python
Εφαρμογές
Εφαρμογή 1 – Σάρωση αρχείου συστήματος
Σενάριο Python που:
• αναζητεί μεγάλα αρχεία
• εντοπίζει παλιά αρχεία
• δημιουργεί μια αναφορά
Εφαρμογή 2 – Επεξεργασία αρχείων ρυθμίσεων
Σενάριο Python που:
• διαβάζει κείμενα αρχεία
• εξάγει σχετικές πληροφορίες
• δημιουργεί στατιστικά
Ημέρα 2
Μονάδα 3: Επεξεργασία Λογαριασμών και Χειρισμός Κειμένου
Θέματα
Εργασία με κείμενο στην Python
• λειτουργίες συμβολοσειρών
• φιλτράρισμα και μετασχηματισμός δεδομένων
Τακτικές εκφράσεις (regex)
• αναγνώριση μοτίβων
• ερμηνεία logs (log parsing)
Αντικατάσταση αλυσίδων επεξεργασίας shell
Παράδειγμα:
grep | awk | sed | sort
υλοποιημένο σε Python
Εφαρμογές
Εφαρμογή 1 – Ανάλυση αρχείων logs
Σενάριο Python που:
• διαβάζει logs συστήματος
• εντοπίζει σφάλματα
• υπολογίζει τη συχνότητα σφαλμάτων
Εφαρμογή 2 – Μετατροπή μιας αλυσίδας shell σε Python Μια σύνθετη αλυσίδα Bash που μετατρέπεται σε σενάριο Python
Μονάδα 4: Αυτοματοποίηση Εντολών Συστήματος
Θέματα
Εκτέλεση εντολών shell από Python
• module subprocess
• λήψη εξόδου
• διαχείριση σφαλμάτων
Αυτοματοποίηση διοικητικών εργασιών • εκτέλεση εντολών συστήματος • ολοκλήρωση με cron jobs • scripting για επαναλαμβανόμενες εργασίες
Διαχείριση διεργασιών • παρακολούθηση διεργασιών • απλή παράλληλη εκτέλεση
Εφαρμογές
Εφαρμογή 1 – Σενάριο Python που εκτελεί εντολές συστήματος
Σενάριο που:
• εκτελεί εντολές Unix
• λαμβάνει έξοδο
• δημιουργεί αναφορές
Εφαρμογή 2 – Παρακολούθηση υπηρεσιών
Σενάριο Python που:
• ελέγχει την κατάσταση μιας υπηρεσίας
• συλλέγει πληροφορίες
• εμφανίζει αποτελέσματα
Ημέρα 3
Μονάδα 5: Προχωρημένη Αυτοματοποίηση και Αλληλεπίδραση με Εξωτερικές Υπηρεσίες
Θέματα
Εργασία με API στην Python
• εισαγωγή σε HTTP αιτήματα
• ταυτοποίηση και tokens
• επεξεργασία απαντήσεων JSON
Python για αυτοματοποίηση DevOps • συλλογή δεδομένων από εξωτερικές υπηρεσίες • ολοκλήρωση με υπάρχοντα εργαλεία • scripting υποδομής
Εφαρμογές
Εφαρμογή 1 – Σενάριο Python που καταναλώνει ένα API
Σενάριο που:
• συλλέγει δεδομένα από ένα API
• επεξεργάζεται τις πληροφορίες
• δημιουργεί μια αναφορά
Εφαρμογή 2 – Αυτοματοποίηση συλλογής δεδομένων
Σενάριο Python που:
• συλλέγει πληροφορίες συστήματος
• δημιουργεί μια αναφορά JSON ή CSV
Μονάδα 6: Κατασκευή ενός Εργαλείου CLI για Διαχείριση
Θέματα
Οργάνωση ενός έργου Python
• οργάνωση κώδικα
• επαναχρησιμοποίηση συναρτήσεων
• modules και packages
Δημιουργία ενός εργαλείου CLI • ορίσματα γραμμής εντολών • δομημένη έξοδος • διαχείριση σφαλμάτων
Τελική εφαρμογή
Οι συμμετέχοντες θα κατασκευάσουν ένα εργαλείο αυτοματοποίησης CLI σε Python που:
• αναλύει αρχεία logs
• εντοπίζει σφάλματα
• δημιουργεί στατιστικά
• μπορεί να εκτελεστεί από τη γραμμή εντολών
Αποτελέσματα Σεμιναρίου
Στο τέλος του σεμιναρίου, οι συμμετέχοντες θα είναι σε θέση να:
• μετατρέψουν σενάρια shell σε σενάρια Python
• χρησιμοποιούν την Python για αυτοματοποίηση εργασιών συστήματος
• επεξεργάζονται logs και σύνθετα δεδομένα
• κατασκευάζουν εργαλεία CLI για διαχείριση συστημάτων Unix
Απαιτήσεις
Προαπαιτούμενες Γνώσεις
- Βασικές γνώσεις των λειτουργικών συστημάτων Unix/Linux
- Εξοικείωση με τη χρήση της γραμμής εντολών (shell/Bash)
- Εμπειρία στη συγγραφή απλών σεναρίων shell (π.χ. βρόχοι, συνθήκες, εργασίες αρχείων)
- Η γενική κατανόηση εννοιών διαχείρισης συστημάτων είναι ευεργετική
- Δεν απαιτείται προηγούμενη εμπειρία με Python
Κοινό-Στόχος
- Διαχειριστές συστημάτων που εργάζονται σε περιβάλλοντα Unix/Linux
- Μηχανικούς DevOps που επιθυμούν να βελτιώσουν τις ικανότητες αυτοματοποίησής τους
- Μηχανικούς και τεχνικούς ειδικούς που χρησιμοποιούν scripting σε shell για καθημερινές εργασίες
- Επαγγελματίες IT που ενδιαφέρονται να μεταβούν από το Bash στο Python
- Ανάπτυξη λογισμικού (Developers) που εργάζονται σε περιβάλλοντα Unix και επιθυμούν να αυτοματοποιούν τις διαδικασίες τους πιο αποτελεσματικά
Σχόλια (2)
Η πρακτική εξάσκηση σχετικά με το υλικό βοηθά πραγματικά να κατανοήσουμε περισσότερα για κάθε θέμα. Επιπλέον, ο τρόπος ξεκινήσης των μαθημάτων με διδασκαλία και συνέχεια με πρακτική εξάσκηση είναι καλός και χρήσιμος για να συνδεθεί με τη διδασκαλία που παρουσιάστηκε αρχικά.
Nazeera Mohamad - Ministry of Science, Technology and Innovation
Κομμάτι - Introduction to Data Science and AI using Python
Μηχανική Μετάφραση
Παραδείγματα/Ασκήσεις που είναι τέλεια για τον τομέα μας
Luc - CS Group
Κομμάτι - Scaling Data Analysis with Python and Dask
Μηχανική Μετάφραση