纯干货!python 在运维中的应用 (一):批量 sshsftp

纯干货!python 在运维中的应用 (一):批量 sshsftp,第1张

日常工作中需要大量、频繁地使用ssh到服务器查看、拉取相关的信息或者对服务器进行变更。目前公司大量使用的shell,但是随着逻辑的复杂化、脚本管理的精细化,shell已经不满足日常需求,于是我尝试整合工作中的需求,制作适合的工具。 由于管理制度的缺陷,我以工作流程为核心思考适合自己的运维方式,提升工作效率,把时间留给更有价值的事情。 完整代码在最后,请大家参考。

生产:4000+物理服务器,近 3000 台虚拟机。

开发环境:python36、redhat79,除了paramiko为第三方模块需要自己安装,其他的直接import即可。

批量执行 *** 作是一把双刃剑。批量执行 *** 作可以提升工作效率,但是随之而来的风险不可忽略。

风险案例如下:

挂载很多数据盘,通常先格式化硬盘,再挂载数据盘,最后再写入将开机挂载信息写入/etc/fstab文件。在批量lsblk检查硬盘信息的时候发现有的系统盘在/sda有的在/sdm,如果不事先检查机器相关配置是否一致直接按照工作经验去执行批量 *** 作,会很容易造成个人难以承受的灾难。

在执行批量 *** 作时按照惯例:格式化硬盘->挂载->开机挂载的顺序去执行,假设有的机器因为某些故障导致格式化硬盘没法正确执行。在处理这类问题的时候通常会先提取出失败的ip,并再按照惯例执行 *** 作。运维人员会很容易忽略开机挂载的信息已经写过了,导致复写(这都是血和泪的教训)。

所以,为了避免故障,提升工作效率,我认为应当建立团队在工作上的共识,应当遵守以下原则:

当然,代码的规范也应当重视起来,不仅是为了便于审计,同时也需要便于溯源。我认为应当注意以下几点:

1、ssh no existing session,sftp超时时间设置:

在代码无错的情况下大量ip出现No existing session,排查后定位在代码的写法上,下面是一个正确的示例。由于最开始没考虑到ssh连接的几种情况导致了重写好几遍。另外sftp的实例貌似不能直接设置连接超时时间,所以我采用了先建立ssh连接再打开sftp的方法。

2、sftp中的get()和put()方法仅能传文件,不支持直接传目录:

不能直接传目录,那换个思路,遍历路径中的目录和文件,先创建目录再传文件就能达到一样的效果了。在paramiko的sftp中sftplistdir_attr()方法可以获取远程路径中的文件、目录信息。那么我们可以写一个递归来遍历远程路径中的所有文件和目录(传入一个列表是为了接收递归返回的值)。

python自带的os模块中的oswalk()方法可以遍历到本地路径中的目录和文件。

3、多线程多个ip使用sftpget()方法时无法并发。

改成多进程即可。

4、多个ip需要执行相同命令或不同的命令。

由于是日常使用的场景不会很复杂,所以借鉴了ansible的playbook,读取提前准备好的配置文件即可,然后再整合到之前定义的ssh函数中。

同时,我们还衍生出一个需求,既然都要读取配置,那同样也可以提前把ip地址准备在文件里。正好也能读取我们返回的执行程序的结果。

参数说明:

密码认证:

公钥认证:

可以配合 grep,awk 等命令精准过滤。

个人认为 Python 在初中级运维工作中的性质更像是工具,以提升工作效率、减少管理成本为主。可以从当前繁琐的工作中解脱出来,去 探索 更有价值的事情。python 本质上并不会减少故障的产生,所以在不同的阶段合理利用自身掌握的知识解决当前最重要的痛点,千万不要本末倒置。

在左窗格中,单击“接收端口”节点,在右窗格中,右键单击你希望将新的接收位置与其关联的接收端口,然后单击“属性”。在“接收端口属性”对话框的左窗格中,选择“接收位置”,然后在右窗格中单击“新建”以创建新的接收位置。在“接收位置属性”对话框的“传输”部分中,从“类型”下拉列表中选择“SFTP”,然后单击“配置”以配置接收位置的传输属性。在“SFTP 传输属性”对话框的“常规”选项卡中,执行以下 *** 作:�0�2 使用此选项 执行此 *** 作 ConnectionLimit指定服务器允许的并行打开的最大连接数。0 表示无限制。PollingInterval指定适配器轮询服务器的时间间隔。若要连续轮询,请将此值设置为零。默认值:零单位指定所指定的轮询间隔的单位,例如,秒、分钟、小时或天。默认值:秒AccessAnySSHServerHostKey如果设置为 True,则接收位置接受来自服务器的任何 SSH 公共主机密钥。如果设置为 False,则接收位置使用服务器的指纹进行身份验证。你在 SSHServerHostKeyFingerPrint 属性中指定指纹。默认值:FalseClientAuthenticationMode指定接收位置用于对连接 SSH 服务器的客户端进行身份验证的身份验证方法。如果设置为“密码”,则必须在“密码”属性中指定值。如果设置为 PublicKeyAuthentication,则必须在 PrivateKey 属性中指定用户的私钥。此外,如果该私钥受密码保护,则还要为 PrivateKeyPassword 属性指定密码。默认值: 密码密码如果将 ClientAuthenticationMode 设置为“密码”,则指定 SFTP 用户密码。PrivateKey如果将 ClientAuthenticationMode 设置为 PublicKeyAuthentication,则指定 SFTP 用户的私钥。便笺 该私钥必须是指定的 pkf 文件。PrivateKeyPassword指定私钥密码,如果在 PrivateKey 属性中指定的密钥要求这样做。SSHServerHostKey指定安全 FTP 服务器的 SSH 公共主机密钥。用户名指定安全 FTP 服务器的用户名。FileMask指定在从安全 FTP 服务器检索文件时要使用的文件掩码。FolderPath指定安全 FTP 服务器上可供接收位置从中检索文件的文件夹路径。端口指定在其上进行文件传输的安全 FTP 服务器的端口地址。ServerAddress指定安全 FTP 服务器的服务器名称或 IP 地址。单击“确定”。

Linux系统提供多种不同的Shell以供选择。

常用的有Bourne Shell(简称sh)、C-Shelll(简称csh)、Korn Shell(简称ksh)和Bourne Again Shell (简称bash)。

Bourne Shell是AT&T Bell实验室的 Steven Bourne为AT&T的Unix开发的,它是Unix的默认Shell,也是其它Shell的开发基础。Bourne Shell在编程方面相当优秀,但在处理与用户的交互方面不如其它几种Shell。

C Shell是加州伯克利大学的Bill Joy为BSD Unix开发的,与sh不同,它的语法与C语言很相似。它提供了Bourne Shell所不能处理的用户交互特征,如命令补全、命令别名、历史命令替换等。但是,C Shell与BourneShell并不兼容。

Korn Shell是AT&T Bell实验室的David Korn开发的,它集合了C Shell和Bourne Shell的优点,并且与Bourne Shell向下完全兼容。Korn Shell的效率很高,其命令交互界面和编程交互界面都很好。

Bourne Again Shell (即bash)是自由软件基金会(GNU)开发的一个Shell,它是Linux系统中一个默认的Shell。Bash不但与Bourne Shell兼容,还继承了C Shell、Korn Shell等优点

分类: 电脑/网络 >> 互联网

问题描述:

哎, 最近装了个 flashfxp

但服务器的 帐号 密码全不知道

大家 可以推荐一些吗??

解析:

教育网资源

ftp2022021214/ 西南农业大学 里面有不少的discovery

ftp1621051428/ 北京大学 不少的科教片

ftpbbs:ytht@16210527104/ 北京大学 有声文学和曲艺

ftp16210530160/ 北京大学信息科学学院软件工程实验室 **

ftpmedia:media@16611112026/ 清华大学 **

ftp16611113244/ 清华大学 **

ftp16611144179/ 清华大学 有限元资料

ftp20211410611/ 武汉大学 **和音乐

ftpgaoya:gaoya@202114103130/ 武汉大学高压实验室 影视

ftp20211411112/ 华中科技大学 软件和linux教学视频

ftp20211412140/ 武汉大学 专门的音乐站点

ftpxp:xp@2021145824/ 武汉理工大学东院图书馆 大量的**和软件

ftp2021146751/ 武汉大学 **

ftp202114705/ 武汉大学 **

ftpissloveme:issloveme@20211473197/ 武汉大学 DVD

ftp20211473200/ 武汉大学 电视剧,有老友记和24季

ftp2021173379/ 西安交通大学 一些**

ftphit:hit@202118224241/ 哈尔滨工业大学 大量的教学资源

ftp202207240119/ 太原理工大学 大量**包括历年的oscar 需要finaltyutedu/注册下载

ftp202207240168/ 太原理工大学 大量的电子书和教学视频

ftp20238127180/ 清华大学 **

ftp21034132101/ 集美大学 **和动画 密码见进站说明

ftp21034212105/ 鹭江大学图书馆FTP站 大量**

ftp211648611/ 济南大学法学院 **

ftp21167108250/ 华中科技大学 有一些discovery

ftphncjedu:hncjedu@21167112123/ 平顶山工学院 大量的**

ftphust:hust@bigfoothustedu/ 华中科技大学的大脚网 大量的**

ftpcs:whucsftp@cswhuedu/ 武汉大学计算机学院 **和软件

ftparkhitedu/ 哈尔滨工业大学方舟软件园 软件

ftp16611117149:7721/ 清华大学 大量**

ftpfanfish3322/ 清华大学 曲艺,喜欢戏剧的朋友可以看看

ftp2103516811/ 江西教育网 各种软件

ftpftptzpcedu/ 泰州职业技术学院 软件

ftpftpcustedu/ 长春理工大学 软件、**、音乐

ftpftpxznuedu/ 徐州师范大学 软件、教学资源

ftp2021149937/ 武汉大学未来网服务器 大量DVD 需要去bbsfuture注册下载

ftp2021149940/ 武汉大学自强网服务器 大量**

ftpftpzzuedu/ 郑州大学 软件、电子书、教学视频

ftpphoenixhoenix@219224169241/ 清华大学 大量名导演的代表作

ftpmoviehnedu/ 中南大学 大量**去聊来聊去网站的bbs注册下载速度更快

ftpjmu:jmu@21034132102/ 集美大学 大量**

ftpvodzziaedu/ 郑州航院 大量** 耐心一点连

ftp202113294/ 南开大学数学学院 大量的学习资料和软件

ftp2104048/ 贵州大学计算机科学系 软件和书

ftpilovexmu:xmuloveme@21034416/ 厦门大学 大量DVD

ftp2181981274/ 郑州轻工业学院 **

ftp20219835153/ 吉林大学车辆学院智能车辆课题组 **

ftp202120165151/ 同济大学 电子书

ftp20211624102/ 暨南大学 漫画

ftpren:ren@2021129488/ 北京师范大学 **

ftp202114122194/ 武汉大学 TV有红楼梦

ftp202115143234/ 成都理工学院 DVD

ftpmovie:movie@1621053658/ 北京大学 艺术**、名导演的作品

ftparchpkuedu/ 北京大学 **、教育资源

ftpxmumovie:xmumovie@210344124/ 厦门大学 **

ftptemp:temp@2103414166:2121/ 厦门大学 **

ftptemp:temp@2103414167:2121/ 厦门大学 **

ftptv:tv@21034414/ 厦门大学 TV

ftpgeming:mao @16611138236/ 大量国内早期影片(如地道战、地雷战)

ftp2104122447/ 成都信息工程学院 电子书和软件

ftp20211745201/ 西安交通大学 DVD和RMVB

ftpftpnjuedu/ 南京大学 DVD 难连但是连上速度巨快

ftpftp2njuedu/ 南京大学 影视动画 难连但是连上速度巨快

ftpftpzsuedu/ 中山大学 综合ftp 资源丰富但是难连

ftpftpants3322/ 南京电力高专 需去ants3322/注册,**不少,呵呵,还有铁甲008这样的打小越南的片子

ftpkexie:17423@16611113244/ 北京大学化学系 DVD超级多

ftpsuepoutdown:suepoutdown@21035889/ 上海电力学院 **

ftphust:hust@financehustedu/ 华中科技大学管理学院财政金融管理系 不少**包括周星驰和周润发的

建议我们学校也建FTP,提供我们学习,休闲的必要资料.

ftphit:hit@202118224241

20211410611

2021173379

以上就是关于纯干货!python 在运维中的应用 (一):批量 ssh/sftp全部的内容,包括:纯干货!python 在运维中的应用 (一):批量 ssh/sftp、如何配置 SFTP 接收位置、linux定时通过shell脚本利用sftp命令上传文件。需要手动输入密码,用openSSH-clients这个插件可以解决么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9438838.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存