Articles of python

在bash脚本中捕获Python脚本的输出

我有一个监视游戏服务器的脚本。 它是用bash写的。 不过,我试图把高级监视器放在一起,如果服务器已经locking了。 这需要一个小的python脚本来查询服务器,并返回OK,ERROR 1或ERROR 2.捕获输出的最好方法是什么? 目前与脚本variables是空的。 我可以确认脚本运行正常并返回消息。 if [ -f serverquery.py ];then echo -e "[\e[0;36m INFO\e[0;39m ] Running advanced monitoring serverquery.py" echo -e "$( date '+%b %d %H:%M:%S') ${servicename}: Running advanced monitoring serverquery.py" >> ${logfile} serverquery=`./serverquery.py 127.0.0.1 27015` if [ "${serverquery}" = "ERROR 1" ];then echo -e "[\e[0;31m FAIL\e[0;39m ] ${servicename}: serverquery.py Monitor detected […]

使用uWSGI从GIT提供文件

大家,早安! 在我的日常工作中,我们使用NGINX + uWSGI + MongoDB作为Python应用程序容器。 对于版本化和协作开发,我们在每台开发人员计算机上使用GIT进行安装,并将一个中央GIT存储库用于交付目的。 一切运转顺利,但有一个小问题。 到目前为止,当我们想要提供新版本的内部软件时,所有开发人员合并他们的变更,然后select一个(通常是项目经理)将最终产品推送到中央GIT服务器上的“分支主”存储库。 一旦这个推送完成,一个在GIT上持续查看的脚本将检索新版本,并将其推送到我们的uWSGI服务器上,然后为所有新连接加载新版本。 现在,我们想知道如何能够推送GIT服务器,并且uWSGI直接从这个GIT服务器加载和服务它的web应用程序。 有没有人有类似的解决scheme或uWSGIconfiguration这样做?

如何testing本地SYSTEM帐户? (从Python访问远程文件)

我试图从Web应用程序服务器访问一些远程文件。 我们称之为服务器M和R.两者都运行Windows Server(2008和2003)。 远程文件位于服务器R上的Everyone可以读取的文件共享(共享权限和安全权限允许Everyone可以读取)。 这个份额被称为\\R\EthRelease 。 Web应用程序在服务器M 。 我正在Tomcat servlet容器(通过BSF )下运行一个Python(真正的Jython)脚本,以便尝试访问R上的远程文件。 但不pipe我做什么,脚本都看不到远程共享文件夹。 例如,我使用Python代码,如: # Note, R: is a mapped network drive pointing to \\R\EthRelease for file in ['C:', 'C:\\', 'C:\\Users', 'R:', 'R:\\', r"\\R\EthRelease", r"\\172.xxx\EthRelease"]: output.append(" <accessCheck dir='%s' exists='%s' accessF='%s' accessR='%s'/>\n" % (file, os.path.exists(file), os.access(file, os.F_OK), os.access(file, os.R_OK))) 并且该脚本所存在的唯一文件夹是C:\和C:\Users : <accessCheck dir="C:" exists="False" accessF="False" accessR="False"/> <accessCheck […]

Python脚本通过Amazon SES发送邮件

我正在设置Splunk通过Amazon SES发送电子邮件。 但是在这之前,我发现了一个Python脚本(Splunk使用Python发送邮件),我想testing哪一个不能在我的Linux服务器上工作。 输出如下所示。 我可以使用Sendmail在命令行上发送testing邮件 – 所以我的Amazon SES证书没有任何问题。 不知何故,Python不能正确parsingAuth信息? 产量 [root@HOSTNAME ~]# python ses.py Message length is 47 send: 'ehlo HOSTNAME\r\n' reply: '250-email-smtp.amazonaws.com\r\n' reply: '250-8BITMIME\r\n' reply: '250-SIZE 10485760\r\n' reply: '250-STARTTLS\r\n' reply: '250-AUTH PLAIN LOGIN\r\n' reply: '250 Ok\r\n' reply: retcode (250); Msg: email-smtp.amazonaws.com 8BITMIME SIZE 10485760 STARTTLS AUTH PLAIN LOGIN Ok send: 'STARTTLS\r\n' reply: '220 Ready […]

为什么httpd似乎使用相同的可执行文件的不同版本的Python?

我在RedHat 5机器上运行Apache httpd 2.4.4。 我正在使用Django并通过mod_wsgi运行。 我在/ usr / bin中安装了Python 2.4.3,在/ usr / local / bin中安装了Python 2.7.6,我想使用2.7.6。 我从源代码构build2.7.6,并构build了mod_wsgi-3.4。 我已经创build了一个使用2.7.6的virtualenv,并且从命令shell中,python -V告诉我它正在使用2.7.6(在执行. virtpy/bin/activate )。 运行import sys; sys.version import sys; sys.version显示我2.7.6以及sys.executable显示我/www/sqla/virtpy/bin/python 。 当我从httpd运行它时,加载库时出现问题,当我查看sys.version ,我看到2.7.3 。 奇怪的是, sys.executable仍然显示我/www/sqla/virtpy/bin/python , 与我从命令shell中看到的完全一样 。 具体来说,当python试图加载_socket,我看到这个错误从httpd: ImportError: /www/sqla/virtpy/lib/python2.7/lib-dynload/_socket.so: undefined symbol: _PyInt_AsInt 如果我尝试从命令shell导入_socket,没问题。 我有. /www/sqla/virtpy/bin/activate . /www/sqla/virtpy/bin/activate在我的/ etc / sysconfig / httpd中. /www/sqla/virtpy/bin/activate ,并重新启动了Apache。 同一个可执行文件如何给出不同版本的python? […]

是否有可能安排一个python脚本运行在logrotate结束?

我在一个没有运行任何javascript的站点上使用Piwik Analytics,我宁愿从访问日志中创build数据,而不是从图片跟踪器中创build数据 – 日志的结果实际上更好,因为它们可以包含静态文件下载。 这是一个Ubuntu 12.04和nginx 1.4.5的LEMP服务器。 python脚本位于/var/www/example1.com/public/piwik/misc/log-analytics/import-logs.py ,需要运行几个选项。 访问日志位于/var/www/example2.com/logs/access.log.1 。 /etc/logrotate.d/nginx的相关部分包含: /var/www/*/logs/*.log { daily missingok rotate 36500 compress delaycompress notifempty create 0640 www-data adm sharedscripts prerotate if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ run-parts /etc/logrotate.d/httpd-prerotate; \ fi; \ endscript postrotate [ -s /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid` endscript } 我不知道如何整合一个python脚本,以便它可以在循环结束后运行(循环完成后)。 编辑: 另外一个我最初没有考虑的问题是,这个脚本只需要运行一个域 […]

yum或apt-get在amazon-aws上不起作用

当我做yum ,它说 bash: /usr/bin/yum: /usr/bin/python2.62.7: bad interpreter: No such file or directory 我的aws实例细节如下: Linux ip-72-311-15-127 3.14.27-25.47.amzn1.x86_64 #1 SMP Wed Dec 17 18:36:15 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux /usr/bin/apt-get也不可用 /usr/bin/yum在那里,所以我试过了 /usr/bin/yum install -u mongodb-org 这使 bash: /usr/bin/yum: /usr/bin/python2.62.7: bad interpreter: No such file or directory 对此有何build议?

从标准input压缩到标准输出 – funzip,python

目标是从标准input读取压缩文件并解压缩到标准输出。 Funzip的作品,是我正在寻找的解决scheme,该zip包含一个单一的文件,不幸的是,当压缩文件大小大约是1GB或更大时,funzip失败: funzip error: invalid compressed data–length error 更新:我发现上面的错误可能不表示一个实际的错误。 比较两个未压缩的文件,一个传统解压缩,另一个通过使用funzip的pipe道(将上面的错误写入stderr)文件是相同的。 我想保持这个开放,所以这可以确认或报告。 一个相关的解决scheme使用python: 解压缩通过pipe道飞入的文件 但是,这个输出被定向到一个文件。

AWS RDS Postgres性能问题

我们使用实例types为db.m4.2xlarge的rds(postgres)。 通常大部分时间连接数是8-10。 但在某些情况下,连接数量增加到100-200。 数据库变得不响应。 数据库无响应性,我们已经看到很多时候在数量突然激增或读取连接的情况下(即使在连接从10增加到100的情况下)。 在max上执行的查询需要2秒才能执行。 我的应用程序服务器运行在Django / Python堆栈(与Gunicorn)。 DB服务器响应时间增加时,这些服务器的延迟变高。 postgres rdsconfiguration的任何改变,我们应该做的改善性能(目前大部分的设置是默认的)?

我如何检查Ansible的软件版本?

我有三个Linux服务器,我创build了可靠的库存文件: [web] 192.168.0.155 192.168.0.165 192.168.0.175 我有playbook.yml: — – hosts: web tasks: – name: Check drinks versions shell: "python3.4 {{ item.sw_path }} -v" sudo: yes with_items: – { sw_path: '/home/beer.py' } – { sw_path: '/home/vodka.py' } – { sw_path: '/home/whisky.py' } 脚本(beer.py,vodka.py和whisky.py)以如下格式打印其版本:“/home/beer.py 1.0.0”。 我需要得到这个版本,比较它与我存储在数据库中的版本(这是实际版本),如果版本不相等,然后从svn(也存储在数据库中的svnpath)复制实际版本到服务器。 我该如何使用可靠的function呢?