仅为记录自己在使用python过程的的一些心得!
1、服务器上运行脚本:
windows服务器:
显式运行:在cmd中直接用python xxxx.py 运行一个py脚本文件。
后台运行:在cmd中用pythonw xxxx.py 在后台运行一个py脚本文件,系统会在后台启动一个python进程来执行脚本。
Linux服务器:
显式运行:直接用python xxxx.py运行py文件
后台运行:使用 nohup 命令,语法格式: nohup Command [ Arg … ] [ & ]
示例: nohup python xxxx.py &
定期运行:配置任务计划,每隔10分钟运行一次,此方案前提是脚本运行时长必须是可控的,不能超过间隔时长。
新建aaa.sh文件(假设目录为:/usr/py/),添加如下内容:
#!/bin/bash cd /usr/py python monitor.py
确保py文件有被执行的权限:chmod a+x /usr/py/monitor.py
py文件最开头添加:#!/usr/bin/python
运行crontab -e 启动任务计划编辑,在最后添加一行: */10 * * * * /bin/bash /usr/py/aaa.sh ,然后保存退出即可,任务将每隔10分钟运行一次(如整点、整点10分、整点20分等);
注意事项:此运行模式下,需确保py文件中所引用的资源为绝对路径(如其他py文件、ini文件等),不能使用相对路径。
采用sh脚本来启动python,执行py脚本,是因为直接在crontab中配置启动python的话,总是不能成功启动,原因未知。
2、运行过程中占用内存不断增加,需手动释放内存,用del命令删掉使用过的对象
del dictNodeInfo
del objServerJson
del objHealthJson
del objNodesJson
del serverinfo
del healthinfo
del nodesread
del conn
3、类库使用:
pymssql:
使用 import pymssql 时需注意python和pymssql的版本,需保持一致,32位的python配32位的pymssql
错误示例:import pymssql DLL load failed: %1 不是有效的 Win32 应用程序
pika
将pika目录,拷贝至python安装目录的Lib下即可,如:
4、操作cmd命令:
(1)引入类包
import os
(2)执行cmd命令
import os
os.system(“ping www.baidu.com”)
1.用os.system(cmd) 不过取不了返回值
2.用os.popen(cmd) 要得到命令的输出内容,只需再调用下read()或readlines()等
如a=os.popen(cmd).read()
user=os.popen(runpath,'r').read()
3.用 commands 模块。其实也是对popen的封装。此模块主要有如下方法
- commands.getstatusoutput(cmd) 返回(status, output).
- commands.getoutput(cmd) 只返回输出结果
- commands.getstatus(file) 返回ls -ld file的执行结果字符串,调用了getoutput,不建议使用此方法.
- 如
-
>>> import commands>>> commands.getstatusoutput('ls /bin/ls')(0, '/bin/ls')>>> commands.getstatusoutput('cat /bin/junk')(256, 'cat: /bin/junk: No such file or directory')>>> commands.getstatusoutput('/bin/junk')(256, 'sh: /bin/junk: not found')>>> commands.getoutput('ls /bin/ls')'/bin/ls'>>> commands.getstatus('/bin/ls')'-rwxr-xr-x 1 root 13352 Oct 14 1994 /bin/ls'