python - 为什么 Python 没有正确设置我的 cron 作业的时间?

标签 python mysql cron

我创建了一个 python 脚本,每 1 分钟在 mysql 数据库中添加一个数据条目。 为此,我在 python 中使用了 cron。这是 script1.py 的代码:

import MySQLdb as mdb
from crontab import CronTab

con=mdb.connect('localhost','prabakar','****','timedb');
with con:
    cur=con.cursor()
    cur.execute("DROP TABLE IF EXISTS timer")
    cur.execute("CREATE TABLE timer(Time TIME)")
    cur.execute("INSERT INTO timer(Time) VALUES(CURRENT_TIMESTAMP)")
cron= CronTab(user=True)
job=cron.new(command='/home/praba1110/Delta_sysad_tasks/Task  2/script2.py')
job.minute.every(1)
cron.write()

script2.py 在哪里,

    import MySQLdb as mdb
    con=mdb.connect('localhost','prabakar','****','timedb');
    with con:
          cur=con.cursor()
          cur.execute("INSERT INTO timer(Time) VALUES(CURRENT_TIMESTAMP)")

当我在终端中执行命令“crontab -e”时,它显示了一个条目

    * * * * * /home/praba1110/Delta_sysad_tasks/Task  2/script2.py

而不是,

    */1 * * * * /home/praba1110/Delta_sysad_tasks/Task  2/script2.py

当我使第二个脚本单独运行时,它确实运行并在表中附加了当前时间。但是当尝试从 script1 执行时,它不起作用。脚本 2 没有从脚本 1 执行。 PS:我确实给了 script2.py rwx 权限

谁能告诉我为什么 script1.py 不起作用或者问题出在哪里?

<小时/>

已解决

如果我们给予,它就会起作用
job=cron.new(command='/user/bin/python2"/home/praba1110/Delta_sy Sad_tasks/Task 2/script2.py"')

最佳答案

* * * * * /home/praba1110/Delta_sysad_tasks/Task  2/script2.py

相当于

*/1 * * * * /home/praba1110/Delta_sysad_tasks/Task  2/script2.py

但是,这些 crontab 条目都不起作用,因为 shell 将尝试执行

/home/praba1110/Delta_sysad_tasks/Task

并将参数传递给它2/script2.py。 相反,您需要通过将命令括在引号中来保护目录路径中的空格:

job=cron.new(command='/path/to/python "/home/praba1110/Delta_sysad_tasks/Task  2/script2.py"')

这样 crontab 条目就变成了

* * * * * /path/to/python "/home/praba1110/Delta_sysad_tasks/Task  2/script2.py"

请注意,正确处理空格可能会很麻烦。 您可能希望避免路径中出现空格以使您的生活更轻松。

根据 Moo 的建议,我还添加了 python 的显式绝对路径 可执行文件,因为默认情况下 cron 作业不会看到与登录时相同的环境变量(例如 PATH)。

关于python - 为什么 Python 没有正确设置我的 cron 作业的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30559889/

相关文章:

python - Python 中带有 minidom 的 MemoryError

mysql - 插入mysql日期范围,每7天添加不同的值(轮类日历)

linux - 无法在 crontab 中执行 xrandr 命令(即使提供了 $DISPLAY arg)

ruby-on-rails - 使用 whenever gem 安排顺序任务

php - 从查询 yii2 获取数组而不是字符串

crontab中没有密码的mysqldump

python - 如何捕获多线程的异常?

Python - 使用 lxml Xpath 功能保留一些 HTML 标签

python - 如何在 Python 中测试一个数字是否为平方数?

php - 修复未索引的数据库 MySQL