星空网 > 软件开发 > 操作系统

初学Python

 

 

  这几天突发奇想,想学习一下Python。看了点基础,觉得有点枯燥,所以想搞点什么。想了想,就随便弄个检测Linux用户登录的小工具吧~

  首先,明确一下功能:

    1、能够捕获 linux 用户登录的信息。(这个很容易,方法比较多)

    2、能够将捕捉的信息记录下来。(不然要这信息干嘛……)

    3、最好能够一发现有人登陆,就给管理员发个邮件。(这个功能比较实用~)

    4、没想好。(功能可以不断完善嘛)

 

  嗯,那现在就要着手解决技术难点了(对我来说可能是难点吧,毕竟才看了几天书……)。

    1、捕获linux登录信息。

      这个可以去查日志啊,/var/log/ 目录下面日志很详细的。不过我选择使用linux的命令——lastlog。

      初学Pythonimages/loading.gif' data-original="http://images2015.cnblogs.com/blog/890330/201603/890330-20160306135215065-124939581.png" width="340" height="266" />

      这个命令输出的信息,比较易读,也比较好筛选。

      Python 执行Linux命令可以用 os.popen() 这个函数。当然也有其他方法,不过我们需要捕获回显,所以os.popen()比较合适,这个函数会把回显以文件指针(不知道这说法对不……)的形式返回回来。如下所示:

        lastLogList = os.popen('lastlog').readlines()。#这样就能得到命令输出的每一行

      具体流程就是:每过一定的时间(我觉得60秒不错~毕竟不需要多么高的时效性),就查询一次登录记录,与程序备份的登录记录做对比,给出差异部分,这就是在60秒内登录的用户信息咯。然后再次备份登录信息等待下次查询。

      

    2、记录信息。

      这个比较随意啦。把捕获到的信息,直接追加方式写入文件就行。(不过在登录比较密集的系统上,要适当优化,或者定期清理。我懒得弄,就直接写了)。如下代码(就是写文件嘛):

        f = open('test.log', 'a')

        f.write(''.join(lastLogList)) #获得的信息是集合(list)形式,所以都弄成一个字符串,再写到文件里。就是偷懒,你奈我何~

 

    3、捕获到信息后,经邮件发给管理员。

      这个就有点蛋疼了(并不麻烦,只是我在做的过程中遇到点麻烦)。

      首先要承认的是,Python 已经提供了比较完备的关于邮件操作库供我们使用。我用的是 smtplib 和 email 两个。细节就不说了,网上教程一大把(就是突出一个字:懒)。

      但是我要提醒一句,如果使用 starttls() 函数对服务器进行加密连接的话。在 Python 的较早版本中(可能是2.6之前)需要在 starttls() 函数之前调用 ehlo() 函数。否则会报错:SMTP AUTH extension not supported by server。  

  比较棘手的问题都解决了~。

 

  其实代码我已经垒好了,鉴于初学,代码太丑,就不放出来了。给大家看看截图吧~

    这是程序记录下来的登录信息的一部分:

    初学Python

    

    这是程序发给我的邮件其中的一封:

    初学Python

 

  

  如果有什么问题欢迎留言,大家共同学习。如果有什么建议或者意见,也请留言或私信,各位的善言,就是我指引我进步的明灯,先谢谢大家了~ 么么哒(づ ̄ 3 ̄)づ。

      




原标题:初学Python

关键词:python

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

跨境电商赢商荟:https://www.goluckyvip.com/tag/36547.html
跨境电商应该了解什么:https://www.goluckyvip.com/tag/36548.html
跨境电商用户全旅程数字化运营指南:https://www.goluckyvip.com/tag/36549.html
旺季运营:https://www.goluckyvip.com/tag/3655.html
跨境电商优缺点:https://www.goluckyvip.com/tag/36550.html
跨境电商优势:https://www.goluckyvip.com/tag/36551.html
37号文今后是否会更新?一文详解关键信息 :https://www.kjdsnews.com/a/1836441.html
探讨内地人开设香港账户的可行性 :https://www.kjdsnews.com/a/1836442.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流