Si vous utilisez une distribution de type Debian et que vous êtes un nouvel utilisateur ou que vous commencez tout juste votre carrière en tant que administrateur système, vous connaissez probablement déjà l'importance de la mise à jour des paquets. en utilisant la mise à jour apt. Vous souhaiterez peut-être également comprendre ce que fait chaque package pour en savoir plus sur Linux. De plus, les administrateurs système (administrateurs système) doivent souvent communiquer ou documenter aux parties prenantes quelles mises à jour sont urgentes ou liées à la sécurité.
Dans cet article, je vais vous montrer comment combiner Python, la commande apt list -u et Gemini AI pour créer des résumés lisibles par l'homme des mises à jour de packages en attente.
apt list -u | awk '{ print }' | sed 's|/.*||'
Voici une répartition de la solution en deux scripts :
Ce script exécute apt list -u pour récupérer les mises à jour en attente, traite la sortie et utilise la fonction d'invite pour obtenir des résumés catégorisés de Gemini AI.
import subprocess from utils.gemini_cfg import prompt try: # Run 'apt list -u' to list upgradable packages result = subprocess.run(["apt", "list", "-u"], capture_output=True, text=True, check=True) output = result.stdout # Get command output # Use the Gemini AI model to summarize the updates summary = prompt(output) # Save the AI-generated summary to a Markdown file with open("./gemini_result.md", "w") as file: file.write(summary) print("Summary saved to gemini_result.md") except subprocess.CalledProcessError as e: print("Error while running apt list:", e)
Ce script configure l'API Gemini et définit la fonction d'invite pour le contenu généré par l'IA.
import google.generativeai as genai from environs import Env # Load API key from .env file env = Env() env.read_env() key = env("TOKEN") # Replace with your environment variable key name # Configure Gemini API genai.configure(api_key=key) model = genai.GenerativeModel("gemini-1.5-flash") # Function to prompt Gemini AI for summaries def prompt(content): message = ( "You work as a sysadmin (Debian server infrastructure). " "You must create a list categorizing the importance in terms of security and priority, " "providing a brief summary for each package so that business managers can understand " "what each library is from this output of the `apt list -u` command: " f"{content}" ) response = model.generate_content([message]) return response.text
Le script fait ce qui suit :
Ouvrez gemini_result.md pour voir un résumé clair et catégorisé des mises à jour pour faciliter la communication.
Voici un exemple de ce à quoi pourrait ressembler le résumé généré :
## Debian Package Update List: Priority and Security The list below categorizes the packages available for update, considering their importance in terms of security and business operation priority. The classification is subjective and may vary depending on your company's specific context. **Category 1: High Priority - Critical Security (update immediately)** - **linux-generic, linux-headers-generic:** Critical kernel updates to fix security vulnerabilities. - **libcurl4:** Resolves potential security issues for data transfer operations. ... **Category 2: High Priority - Maintenance and Stability (update soon)** * **`e2fsprogs`, `logsave`:** Packages related to ext2/ext3/ext4 file systems. Update to ensure data integrity and file system stability. **Medium-High priority.** ... **Category 3: Medium Priority - Applications (update as needed)** * **`code`:** Visual Studio Code editor. Update for new features and bug fixes, but not critical for system security. * **`firefox`, `firefox-locale-en`, `firefox-locale-pt`:** Firefox browser. Updates for security fixes and new functionalities. Priority depends on Firefox usage in your infrastructure. ...
Avec un peu de Python et Gemini AI, vous pouvez automatiser et améliorer la façon dont vous communiquez les mises à jour des paquets Debian. Ce script constitue une excellente base pour intégrer l'IA dans les flux de travail de l'administrateur système. Cet article est à des fins éducatives, alors soyez attentif aux ressources de l'API Gemini, ainsi qu'à la gestion sécurisée de votre système.
Merci d'avoir lu ! ?
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!