如何使用Python进行自动化的系统管理?
Python已经成为系统管理员最流行的编程语言之一,因为它简单、灵活,并且广泛支持各种系统管理任务。无论您是自动执行重复性任务,管理文件和目录,还是处理用户权限,Python都提供了一组强大的工具来简化您的工作流程。
本文探讨了如何将Python用于系统管理任务,重点关注通用库,自动化系统监控,管理文件,处理用户权限,自动化网络配置和调度任务。
用于系统管理任务的通用库
Python的优势在于其丰富的库生态系统,这些库使系统管理任务更加高效。以下是一些用于系统管理员任务的常用库:
- os:提供与操作系统交互的方式。它包括文件处理、环境变量和进程管理功能。
- subprocess:允许从Python脚本中执行shell命令,使其成为与系统进程交互的理想选择。
- shutil:帮助文件和目录管理,包括复制和删除文件。
- psutil:提供检索系统和进程信息的函数,使其对系统监视有用。
- socket:用于处理网络连接和配置的核心库。
- paramiko:用于SSH操作,允许通过Python远程管理系统。
自动化系统监控
系统管理员经常需要监控各种系统指标,如CPU使用率、内存消耗、磁盘使用率和运行进程。Python使用像psutil这样的库简化了这个过程。
示例:监视系统资源
- psutil.cpu_percent():计算一段时间间隔内的CPU使用率。
- psutil.virtual_memory():获取内存使用统计信息。
- psutil.disk_usage():查看磁盘空间使用情况。
使用此脚本,您可以通过以设置的时间间隔运行它或将其集成到更大的系统健康监视应用程序中来自动化系统监视。
import psutil# Get CPU usage
cpu_percent = psutil.cpu_percent(interval=1)
print(f"CPU Usage: {cpu_percent}%")# Get memory usage
memory = psutil.virtual_memory()
print(f"Memory Usage: {memory.percent}%")# Get disk usage
disk = psutil.disk_usage('/')
print(f"Disk Usage: {disk.percent}%")
输出
CPU Usage: 7.2%
Memory Usage: 81.3%
Disk Usage: 35.0%
管理文件和目录
管理文件和目录是系统管理的核心任务。Python的os和shutil库提供了几个函数来导航和操作文件系统。
示例:管理文件和目录
- os.mkdir():创建一个新目录。
- shutil.move():在目录之间移动文件。
- shutil.copy():复制系统中的文件。
- os.remove():删除文件。
这种自动化允许您管理备份、移动日志文件和处理其他常规文件操作,而无需手动干预。
import os
import shutil# Create a new directory
os.mkdir('backup_folder')# Move a file to the new directory
shutil.move('file.txt', 'backup_folder/file.txt')# Copy a file
shutil.copy('backup_folder/file.txt', 'backup_folder/copy_of_file.txt')# Delete a file
os.remove('backup_folder/copy_of_file.txt')
输出
File Deleted and Resotre in Backup Folder
用户和权限管理
Python还可以管理系统上的用户、组和权限。虽然某些任务(如添加或修改用户)需要root权限,但Python的操作系统和子进程库可以帮助用户管理。
示例:创建用户和管理用户
- subprocess.run():执行系统级命令,例如添加用户。
- os.chmod():修改文件权限。
通过自动化用户创建和权限管理,您可以加快系统配置和安全管理。
import os
import subprocess# Create a new user (requires root)
def create_user(username):subprocess.run(['sudo', 'useradd', username])print(f"User {username} created.")# Change file permissions
os.chmod('file.txt', 0o644)
print("Permissions changed to 644 for file.txt.")
输出
Permissions changed to 644 for file.txt.
自动化网络配置
Python可用于配置网络设置、管理IP地址以及自动执行其他与网络相关的任务。套接字和子进程库对此很有用。
示例:检索IP地址
- socket.gethostname():检索计算机的当前主机名。
- socket.gethostbyname():将主机名解析为IP地址。
对于更复杂的任务,如配置接口或管理网络服务,您可以使用subprocess与ifconfig、iptables或ip等系统命令进行交互。
import socket# Get the hostname
hostname = socket.gethostname()# Get the IP address
ip_address = socket.gethostbyname(hostname)print(f"Hostname: {hostname}")
print(f"IP Address: {ip_address}")
输出
Hostname: User_name
IP Address: 192.168.320.20
调度脚本和任务
在Windows上,您可以使用任务管理器来自动执行Python脚本。以下是如何使用任务调度来调度Python脚本:
使用任务调度Python脚本的步骤
-
打开任务栏并选择创建基本任务。
-
命名您的任务并设置触发器(例如,每天、每周或在特定时间)。
-
在操作步骤中,选择启动程序。
-
浏览到Python可执行文件(例如,C:\Python\python.exe)。
-
在“添加参数”框中,输入脚本的路径:
C:\path\to\script.py
-
完成并保存任务。
总结
Python的多功能性使其成为系统管理任务的理想工具。凭借其全面的库和自动化复杂流程的能力,Python可以大大提高管理系统、处理文件、管理用户权限、自动化网络配置和调度任务的效率。无论是监控系统性能、自动化备份还是配置服务器,Python都提供了简化工作流程所需的工具,使其成为任何系统管理员的必备工具。
相关文章:
如何使用Python进行自动化的系统管理?
Python已经成为系统管理员最流行的编程语言之一,因为它简单、灵活,并且广泛支持各种系统管理任务。无论您是自动执行重复性任务,管理文件和目录,还是处理用户权限,Python都提供了一组强大的工具来简化您的工作流程。 …...
拆机装机,通电主板亮灯风扇不转无法开机解决办法
电源开机线 重启线 usb耳机模块 灯线 看来电源没问题 参考https://zhidao.baidu.com/question/83939532/answer/2321171868.html 买了个新主板过几天到看看会不会好...
IntelliSense 已完成初始化,但在尝试加载文档时出错
系列文章目录 文章目录 系列文章目录前言一、原因二、使用步骤 前言 IntelliSense 已完成初始化,但在尝试加载文档时出错 File path: E:\QtExercise\DigitalPlatform\DigitalPlatform\main\propertyWin.ui Frame GUID:96fe523d-6182-49f5-8992-3bea5f7e6ff6 Frame …...
SuperMap iClient3D for WebGL 如何加载WMTS服务
在 SuperMap iClient3D for WebGL 中加载WMTS服务时,参数配置很关键!下面我们详细介绍如何正确填写参数,确保影像服务完美加载。 一、数据制作 对于上述视频中的地图制作,此处不做讲述,如有需要可访问:Onl…...
[密码学实战]基于Python的国密算法与通用密码学工具箱
引言 在当今数字化浪潮中,信息安全已成为个人隐私保护与商业机密守护的核心议题。作为一位在密码学领域深耕多年的技术实践者,我深谙密码学工具在构建数字安全防线中的关键作用。正是基于这份认知与责任,我倾力打造了一款全方位、高性能的密…...
[密码学实战]详解gmssl库与第三方工具兼容性问题及解决方案
[密码学实战]详解gmssl库与第三方工具兼容性问题及解决方案 引言 国密算法(SM2/SM3/SM4)在金融、政务等领域广泛应用,但开发者在集成gmssl库实现SM2签名时,常遇到与第三方工具(如OpenSSL、国密网关)验证不…...
LIB-ZC, 一个跨平台(Linux)平台通用C/C++扩展库, stream 流操作
LIB-ZC, 一个跨平台(Linux)平台通用C/C扩展库, stream 流操作 lib-zc 封装了流操作命名空间 zcc基础类 stream(基类), iostream(io流封装) class stream 介绍 连接相关 // 都是虚函数, 为 iostream 等做准备virtual inline bool connect(const char *destination) { return …...
从零开始解剖Spring Boot启动流程:一个Java小白的奇幻冒险之旅
大家好呀!今天我们要一起探索一个神奇的话题——Spring Boot的启动流程。我知道很多小伙伴一听到"启动流程"四个字就开始头疼,别担心!我会用最通俗易懂的方式,带你从main()方法开始,一步步揭开Spring Boot的…...
概率多假设跟踪(PMHT):多目标跟踪中的概率软关联与高效跟踪算法解析
一、PMHT 的起源与核心定位 (一)背景 在多目标跟踪中,传统算法面临以下瓶颈: JPDA:单帧局部最优关联,无法处理跨帧长时间断联,且假设目标数固定(如雷达跟踪中预设目标数范围&…...
4.信号和槽|存在意义|信号和槽的连接方式|信号和槽断开|lambda表达式|信号和槽优缺点(C++)
信号和槽存在意义 所谓的信号槽,终究要解决的问题,就是响应用户的操作 信号槽,其实在GUI开发的各种框架中,是一个比较有特色的存在 其他的GUI开发框架,搞的方式都要更简洁一些~~ 网页开发 (js dom api) 网…...
电脑 BIOS 操作指南(Computer BIOS Operation Guide)
电脑 BIOS 操作指南 电脑的BIOS界面(应为“BIOS”)是一个固件界面,允许用户配置电脑的硬件设置。 进入BIOS后,你可以进行多种设置,具体包括: 1.启动配置 启动顺序:设置从哪个设备启动&#x…...
Scrapeless Scraping Browser: A high-concurrency automation solution for AI
介绍:升级无缝抓取浏览器的并发能力 作为 Scrapeless 的开发者和创始团队,我们对人工智能自动化的未来充满真诚的热情。我们的使命是创建一个真正为 AI 设计的自动化浏览器。在过去的几年中,从 Browserless.io 到众多云服务供应商推出的“浏…...
Java项目—— 拼图小游戏(进阶版)
项目需求 在拼图小游戏基础版的基础上,完成下列要求: 一、实现更换拼图图片功能 1,给美女,动物,运动菜单按钮添加单击事件(动作监听) 2,当我们点击了美女之后,就会从13…...
解析:深度优先搜索、广度优先搜索和回溯搜索
一、深度优先搜索(DFS) 1. 原理 思想:从起始节点出发,顺着一条路径不断深入,直到到达目标或无路可走,然后回溯到最近的分支点,继续探索其他分支。 应用场景:路径查找、连通性检测、…...
探索大语言模型(LLM):循环神经网络的深度解析与实战(RNN、LSTM 与 GRU)
一、循环神经网络(RNN) 1.1 基本原理 循环神经网络之所以得名,是因为它在处理序列数据时,隐藏层的节点之间存在循环连接。这意味着网络能够记住之前时间步的信息,并利用这些信息来处理当前的输入。 想象一下…...
从零开始开发 MCP Server
作者:张星宇 在大型语言模型(LLM)生态快速演进的今天,Model Context Protocol(MCP)作为连接 AI 能力与真实世界的标准化协议,正逐步成为智能体开发的事实标准。该协议通过定义 Resources&#…...
Oracle日志系统之重做日志和归档日志
Oracle日志系统之重做日志和归档日志 重做日志归档日志 本文讨论Oracle日志系统中对数据恢复非常重要的两个日志:重做日志和归档日志。 重做日志 重做日志,英文名Redo Log,顾名思义,是用来数据重做的,主要使用场景是事…...
嵌入式开发--STM32G4系列硬件CRC支持MODBUS和CRC32
需求 在项目中,需要用到MODBUS CRC16校验,也要用到CRC32的校验,出于效率的考虑,准备用硬件CRC。 CRC 16的参数模型有很多种,我这里用的是MODBUS,对于不同的参数模型,会有不同的参数设置和初值&a…...
基于尚硅谷FreeRTOS视频笔记——4—多任务处理
目录 多任务处理 任务调度 任务的调度策略 优先级不同 优先级相同 多任务处理 通俗来讲就是 能够在同一时间 同时 进行多个任务的处理,这就时多任务处理。 但是,单核处理器一次只能处理一个任务,就是说在while中,任务们只能…...
中小型及初创企业如何实现数字化转型?
在当今动态的商业环境中,财务团队开始肩负起推动企业数字化转型的重任,即从传统的财务规划系统稳步迈向基于商业智能平台和以创新技术为驱动的解决方案领域。这些举措有望提高运营和分析效率,同时依托数据驱动的决策机制,帮助企业…...
java输出、输入语句
先创建一个用于测试的java 编写程序 #java.util使java标准库的一个包,这里拉取Scanner类 import java.util.Scanner;public class VariableTest {public static void main(String[] args) {#创建一个 Scanner 对象Scanner scanner new Scanner(System.in);System.…...
Python基础知识语法归纳总结(数据类型-1)
Python基础知识&语法归纳总结(数据类型) 一、Python基本数据类型 尤其注意,Python中的变量不需要特定的去声明,每个变量在使用前都必须对其进行赋值,它没有类型,我们所说的“类型”是变量所指的内存中对…...
Spring数据访问全解析:ORM整合与JDBC高效实践
目录 一、Spring ORM集成深度剖析 🌟 ORM模块架构设计 核心集成特性: 整合MyBatis示例配置: 二、Spring JDBC高效实践指南 🌟 传统JDBC vs Spring JDBC对比 🌟 JdbcTemplate核心操作示例 批量操作优化…...
哪种电脑更稳定?Mac?Windows?还是云电脑? 实测解密
随着科技的发展进步,电脑已成为当下各类群体的必备产品之一,它的妙用有很多,无论是学生党、打工人还是已经退休的人群或都离不开它的存在。然而,电脑虽好却也差异很大、不同品牌、不同系统、不同配置、不同价位的统统都会有区别。…...
【AI模型学习】关于写论文——论文的审美
文章目录 一、“补丁法”(Patching)1.1 介绍1.2 方法论1.3 实例 二、判断工作的价值2.1 介绍2.2 详细思路2.3 科研性vs工程性 三、novelty以及误区3.1 介绍3.2 举例 看了李沐老师的读论文系列后,总结三个老师提到的有关课题研究和论文写作的三…...
【面经】杭州产链数字科技一面
1.介绍一下自己 面试官您好!我叫***,目前是就读于****计算机科学与技术专业的一名学生。我平时在学校也自学了编程相关的知识,比如Java基础、Springboot、SpringCloud,关系型数据库Mysql,非关系型数据库Redisÿ…...
微信小程序调用yolo目标检测模型
目录 后端 前端微信小程序 完整代码 后端 利用Flask,调用目标检测模型,后端代码如下。 # flask_yolo.py from flask import Flask, request, jsonify from ultralytics import YOLO from PIL import Imageapp Flask(__name__) model_path best.p…...
vmware17 虚拟机 ubuntu22.04 桥接模式,虚拟机无法接收组播消息
问题描述: 在一个项目中,宿主机win10中,使用的vmware17pro 虚拟机安装的ubuntu22.04,按照网上的教程使用Qt绑定组播消息,在另外一个Ubuntu工控机上发送用wiresahrk抓包的组播消息 sudo tcpreplay -i enp1s0 --loop0 y…...
Kaggle-Bag of Words Meets Bags of Popcorn-(二分类+NLP+Bert模型)
Bag of Words Meets Bags of Popcorn 题意: 有很多条电影评论记录,问你每一条记录是积极性的评论还是消极性的评论。 数据处理: 1.首先这是文件是zip形式,要先解压,注意sep ‘\t’。 2.加载预训练的 BERT 分词器 …...
数字信号处理技术架构与功能演进
数字信号处理(DSP)是通过数字运算实现信号分析、变换、滤波及调制解调的技术领域,其发展过程与技术应用如下: 一、定义与核心功能 技术定义:通过算法将模拟信号转换为数字形式进行处理,具有高精度、可编程…...
IaaS架构剖析、场景实践
一、什么是 IaaS 1.1 定义 Infrastructure as a Service(IaaS,基础设施即服务)是一种按需、弹性提供计算、存储、网络和安全等底层 IT 资源的云服务模式。用户通过 API、CLI 或 Web 控制台即可在几分钟内创建、扩容或释放资源,而…...
国产之光DeepSeek架构理解与应用分析02
本专栏 国产之光DeepSeek架构理解与应用分析-CSDN博客 国产之光DeepSeek架构理解与应用分析02-CSDN博客 前置的一些内容理解 GPU TPU NPU的区别? 设计目的 GPU:最初是为了加速图形渲染而设计的,用于处理图像和视频数据,以提供高…...
EDID结构
EDID DDC通讯中传输显示设备数据 VGA , DVI 的EDID由128字节组成,hdmi的EDID增加扩展块128字节。扩展快的内容主要是和音频属性相关的,DVI和vga没有音频,hdmi自带音频,扩展快数据规范按照cea-861x标准。 Edid为了让pc或其他的图像…...
4.黑马学习笔记-SpringMVC(P43-P47)
1.SpringMVC简介 SpringMVC技术(更少的代码,简便)与servlet技术功能相同,属于web层开发技术。 SpringMVC是一种基于java实现MVC模型的轻量级web框架。 轻量级指的是(内存占用比较低,运行效率高)…...
CSS 文件格式
A QFrame#andrFrm[status"android_en"] A:表示父类或顶层窗口的类型。如果 A 是一个自定义的类名,确保该类已经正确注册到 Qt 系统中。QFrame:表示具体的控件类型。#andrFrm:表示控件的对象名称(通过 setOb…...
java输出HelloWorld
创建一个java格式文件,这里命令为HelloWorld 这里我选择用notepad编译,也可以直接用记事本 #public 访问修饰词,表示这个类可以被其他任何类访问 #class 定义类的关键字 #HelloWorld 类名,遵循驼峰命名法(首字母大写…...
【SAP ME 44】在 HANA DB中报废SFC时的SHOP_ORDER表记录锁定
症状 SELECT…FROM SHOP_ORDER FOR UPDATE 在 SFC 报废期间持有锁,当同时调用数量较大时,可能会导致 HANA 数据库出现大量锁积压。这有时会导致因等待 HANA 数据库释放“选择更新”锁而导致报废 SFC 花费数分钟。 HANA 数据库日志中的示例: # begin PreparedStatement_ex…...
《软件设计师》复习笔记(12.1)——范围管理、进度管理
目录 一、范围管理 1. 核心概念 2. 范围管理过程 WBS(工作分解结构)示例 真题示例: 二、进度管理 1. 核心过程 2. 关键工具与技术 真题示例: 一、范围管理 1. 核心概念 项目范围:为交付产品必须完成的工作…...
Git-使用教程(新手向)
一、基本概念: 1.Git,Github的关系: Git --- 本地用于管理代码的工具,可类比为游戏存档。(存档,仓库,项目在Git中是一个东西) Github --- 远程仓库平台,可类比为云端。…...
密码学中的盐值是什么?
目录 1. 盐值的基本概念 2. 盐值的作用 (1) 防止彩虹表攻击 (2) 防止相同的密码生成相同的哈希值 (3) 增加暴力破解的难度 3. 如何使用盐值? (1) 生成盐值 (2) 将盐值附加到密码 (3) 存储盐值和哈希值 (4) 验证密码 4. 盐值如何增加暴力破解的难度 在线暴…...
[工具]Java xml 转 Json
[工具]Java xml 转 Json 依赖 <!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all --> <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.37</version> </dependen…...
安全光幕的CE认证
在工业自动化飞速发展的当下,安全光幕作为保障操作人员安全的关键设备,其重要性不言而喻。对于想要进军欧盟市场的安全光幕制造商来说,CE 认证是必须跨越的一道关卡。今天,我们就来深入探讨安全光幕的 CE 认证流程。 什么是安全…...
DNS解析失败怎么解决?
在互联网时代,畅快地浏览网页、使用各类网络服务已成为生活常态。然而,当屏幕突然弹出 “DNS解析失败”的提示,原本顺畅的网络连接戛然而止,让人倍感困扰。DNS即域名系统,它如同互联网的 “电话簿”,负责将…...
亚马逊商品详情API数据接口概述,Amazon API
亚马逊商品详情API数据接口概述 亚马逊商品详情API(如Amazon Product Advertising API或Selling Partner API (SP-API))是亚马逊为开发者提供的官方接口,允许通过编程方式获取商品的详细信息,包括商品标题、价格、描述、图片、用…...
TCP/IP和UDP协议的发展历程
TCP/IP和UDP协议的发展历程 引言 互联网的发展史是人类技术创新的辉煌篇章,而在这一发展过程中,通信协议发挥了奠基性的作用。TCP/IP(传输控制协议/互联网协议)和UDP(用户数据报协议)作为互联网通信的基础…...
LeetCode 259 题全解析:Swift 快速找出“满足条件”的三人组
文章目录 摘要描述示例 1:示例 2:示例 3: 题解答案(Swift)题解代码分析示例测试及结果时间复杂度空间复杂度总结 摘要 本文围绕 LeetCode 259 题“较小的三数之和”,通过 Swift 给出两种解法,并…...
【MySQL】MySQL表的增删改查(CRUD) —— 上篇
目录 MySQL表的增删改查(CRUD) 1. 新增(Create)/插入数据 1.1 单行数据 全列插入 insert into 表名 values(值, 值......); 1.2 单行数据 指定列插入 1.3 多行数据 指定列插入 1.4 关于时间日期(datetime&am…...
基于大模型的腹股沟疝诊疗全流程风险预测与方案制定研究报告
目录 一、引言 1.1 研究背景与意义 1.2 国内外研究现状 1.3 研究目的与创新点 二、大模型技术概述 2.1 大模型基本原理 2.2 常用大模型类型及特点 2.3 大模型在医疗领域的应用潜力 三、腹股沟疝诊疗流程分析 3.1 腹股沟疝的发病机制与分类 3.2 传统术前评估方法与局…...
使用nssm将Nginx配置为Windows服务
使用nssm将Nginx配置为Windows服务 下载nssm工具 :使用NSSM创建服务启动并验证服务管理服务(启动/停止/重启) 下载nssm工具 : nssm下载网址 下载到指定路径下,解压就行。 使用NSSM创建服务 winr打开运行命令框&am…...
(8)VTK C++开发示例 --- 交互式3D部件
文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容👉内容导航 👈👉VTK开发 👈 1. 概述 这个例子介绍了3D小部件(vtkBoxWidget)。3D小部件利用了前面介绍的事件/观察者设计模式。它们…...