Articles of python

如何运行需要root权限的python脚本,在openbsd中用mod_python在apache中执行

我想用mod_python在Apache 2.x中运行python脚本。 我与发布者编辑了httpd.conf LoadModule python_module /usr/local/apache2/modules/mod_python.so <Directory /usr/local/apache2/htdocs/mod_python> SetHandler mod_python PythonHandler mod_python.publisher PythonDebug On </Directory> 我正在尝试使用需要root权限的python脚本在防火墙中添加规则。 它要求root权限? 请有人帮忙

python脚本崩溃防止/原因检查

我几天前在我的Ubuntu 12.04上使用'python a.py'运行一个python脚本。 我认为它一直在运行,但是现在我发现它在两天前坠毁了。 有没有Ubuntu的日志信息,我可以find它如何坠毁? 系统logging的任何debugging消息? 另外,有没有办法build立一个警报检查,如发送电子邮件,如果这个Python脚本不再运行? 我需要它一直在运行。 谢谢

Apache获取文件和文件夹的所有权

我有一个django网站在Ubuntu上运行,configuration了mod_wsgi的apache2。 media (用户上传文件所在的文件夹)由ubuntu用户拥有(使用sudo访问), media文件夹组为www-data 。 当apache在媒体文件夹中创build一个或多个新文件夹时,某个外部Python进程(例如subprocess.popen )无法写入该文件夹,因为该特定文件夹由www-data拥有。 这个问题的解决scheme是什么? 我到目前为止所做的( django是系统用户): sudo chown django:django -R mysite/media/ sudo chgrp -R www-data mysite/media/ sudo chmod -R g+w mysite/media/ ls -la media文件夹的结果(媒体文件夹包含一些以整数命名的其他文件夹): drwxr-sr-x 2 www-data www-data 4096 Jun 8 02:20 11 drwxrwsr-x 6 django www-data 4096 Jun 7 18:15 10 drwxrwsr-x 5 django www-data 4096 Jun 7 18:13 9 […]

在supervisord下运行时会覆盖PYTHONPATH

我有以下主pipe程序configuration: [program:showvars] environment=TESTVAR=hi,PYTHONPATH=/home/eric/python/tools/ command=python /home/eric/showvars.py showvars.py简单地遍历环境variables并打印它们的值: import os for param in os.environ.keys(): print "%20s %s" % (param,os.environ[param]) 我得到以下(删节)输出: TESTVAR hi PYTHONPATH / 什么可以重置我的PYTHONPATH?

奇怪的crontab行为

今天晚上我第一次玩cron,开始有奇怪的结果。 我试图运行的脚本是一个监视器,它允许我使用Web界面pipe理其他脚本。 当我从shell运行看门狗脚本时, sudo ./watchdog.py每次都能正常工作,并启动它应该使用的脚本。 当我将它添加到crotab中时, sudo crontab -e与*/1 * * * * /home/user/watchdog.py ,它不会启动它们,或者它们在启动后立即崩溃。 这些脚本确实需要以root身份运行,所以我也尝试了*/1 * * * * sudo /home/user/watchdog.py ,但没有任何改变。 我的问题是2部分。 1:如何解决这个问题? 2:是什么原因造成的,为什么?

Nginx使用Python-urllib返回404,但是如果从浏览器访问则罚款

我们有一个在Windows服务器上运行的repo服务器,它提供一些静态文件,这些静态文件应该由我们的工作者节点使用Python-urllib抓取。 问题在于,当我们向使用Python存在的文件发出请求时,我们会收到一个404错误,但是,如果我直接从浏览器访问文件,使用Python-urllib正在使用的相同链接,它工作得很好,文件被下载。 示例访问日志: xxx.xxx.xxx.xxx – – [24/Jul/2013:17:15:53 -0400] "POST /x/dl/Bukkit_Beta.jar.conf HTTP/1.1" 405 172 "-" "Python-urllib/2.7" 我在error.log中发现了一些奇怪的东西: 2013/08/04 22:29:11 [error] 6456#2696: *807 CreateFile() "C:\Users\Administrator\Desktop\Nginx/html/MCProHosting/dl/405" failed (2: The system cannot find the file specified), client: 198.15.64.226, server: localhost, request: "GET /MCProHosting/dl/405 HTTP/1.1", host: "repo.mcprohosting.com" 从这些日志看来确实正在生成一个405,而不是404,但是Python显示了一个404页面。 请注意,如果我们通过htdocs / html文件夹传输,这是一个新的下载的nginx下相同的目录结构在Apache下工作。 没有对Nginx进行configuration更改

在Ubuntu上设置邮件发送到Django

我有一个运行Python 2.7和Django 1.6的服务器。 我想让Django尽可能less的开销发送和接收电子邮件。 我宁愿不要为Django设置一个邮箱。 理想情况下,当一个消息进来,它只是调用一个Django的方法与消息的内容。 我一直在阅读Ubuntu 邮件服务器,但他们听起来像一个令人难以置信的复杂的过程,我宁愿不要让我的服务器停止不必要的进程。 有谁知道一个很好的方法来完成这个? 如果重要的话,一切都在Ubuntu 12.04上运行。

python-ldap将成员添加到Active Directory组

我正尝试使用python-ldap模块将脚本添加到Active Directory组中。 这是我迄今为止的尝试: import ldap from ldap import modlist as modlist l = ldap.initialize(server) l.simple_bind_s(username, password) l.set_option(ldap.OPT_REFERRAL) old_members = new_members = dict() new_members['member'] = 'cn=Forename Name,ou=Users,dc=DOMAIN' old_members group_dn = 'cn=GROUP,ou=Groups,dc=DOMAIN' try: ldif = modlist.modifyModlist(old_members,new_members) l.modify_s(group_dn, ldif) except ldap.LDAPError,e: print e 我得到这个错误: LdapError: DSID-0C090C48, comment: Error in attribute conversion 在searchGoogle之后,我不知道这个错误来自哪里。 我会很高兴有一个提示,或其他方式来添加用户组,这应该是一个相当普遍的任务从python-ldap 非常感谢

python中的bash rsync脚本奇怪

我有这个问题在python中的bash。 我想制作脚本,使基于系统date的文件夹 – 这工作得很好。 问题是,当我想rsync两个目录与​​我的文件备份和其他名称与系统date创build。 import os f = os.system("bash -c 'DATE=folder-`date +%y%m%d;mkdir /home/lol/$DATE;'") g = os.system("bash -c 'rsync -av /folderToBackup/ /home/lol/$DATE/;'") 而当rsync复制文件,他们都在/ home / lol /不在/ home / lol / $ DATE 请如果有人知道解决scheme,我试过不同的目录和rsynced文件总是落在创build文件夹与date但更高,例如在/ home / lol /

得到pyenv为特定的目录工作

在我的〜目录中,input“python”将开始,以及python。 但是,在我的/ usr / python / cgi-bin目录中,inputpython会给我一个错误信息 pyenv: python3: command not found The `python3' command exists in these Python versions: 3.4.1 那么,这是很好,但无用的。 如果在/ usr / python / cgi-bin目录中input pyenv local 我真的没用 pyenv: no local version configured for this directory 无论谁写这些东西,当你开始popup错误消息的时候,你应该完全放下做什么或看哪里 我如何设置pyenv,使我的〜目录中的pyenv和其他目录中的pyenv – 为了参数让我们使用/ usr / python / cgi-bin目录 – 都做同样的事情?