【问题标题】:crontab not executing a python scriptcrontab 不执行 python 脚本
【发布时间】:2020-03-16 05:17:21
【问题描述】:

我有一个名为backupapp.py的python脚本

import subprocess, time
from datetime import date

app_name = 'xxxxx'

capture_backup = subprocess.check_output(['heroku','pg:backups:capture','--app',app_name]) # Make a new backup 

time.sleep(5)

info_backup = subprocess.check_output(['heroku','pg:backups:info','--app',app_name])

name_backup = info_backup[11:15] # Extract the name of the backup database

today = date.today().strftime("%m_%d_%Y")
filename = name_backup + '_' + today + '.dump'

url = subprocess.check_output(['heroku','pg:backups:url', name_backup,'--app',app_name])

url = url[:-1] # Remove \n from the string

print "Beginning Download....."

download_backup = subprocess.check_output(['curl', '-o', filename, url])

当我在终端 python backupapp.py 中运行此脚本时,它可以工作

但是,我想每天中午运行这个。

所以我使用了crontab -e 并添加了这个:

0 12 * * * cd /Users/myuser/Desktop/Work/appbackup && python backupapp.py

但这没有运行。我在网上查了一些答案以查看日志,但日志不存在。

【问题讨论】:

  • 您是否尝试过使用 python 的绝对路径?
  • 你的意思是不用cd,直接python /Users/myuser/Desktop/Work/appbackup/backupapp.py?
  • 不,我的意思是/path/to/python /Users/myuser/Desktop/Work/appbackup/backupapp.pycd /Users/myuser/Desktop/Work/appbackup && /path/to/python backupapp.py
  • 如果我可以提出建议(我假设是 linux),我几乎完全从 cron 切换到 systemd 计时器文件。设置工作稍多, 更易于管理和排除故障。 YMMV。
  • @JaredSmith,根据路径 IMO 这是 MacOS

标签: python cron scheduled-tasks


【解决方案1】:
0 12 * * * root cd /Users/myuser/Desktop/Work/appbackup && ./backupapp.py

确保您的 python 文件在顶部有一个有效的 shebang,并带有指向您的 python 二进制文件的适当路径,例如

#!/usr/local/bin/python3

【讨论】:

  • 这仅适用于特定情况!你为什么root,在路径中你会看到用户名。
  • 路径中的用户名就是那个,试图运行的脚本的路径。 root 这里指示 crontab 用户将执行脚本。我在这里添加了root,但我想它可能是别的东西。然而,至关重要的是,OP 有秩序。
  • 这(再次)将在特定情况下工作。并且可能无法在 MacOS 中运行。在 MacOS 中,这是用户名(本例中为 myuser)
  • 我明白你在说什么。没错,/Users/... 确实比其他操作系统看起来更像 MacOS...非常棒!
  • 谢谢!在这种情况下我应该将root 更改为myuser 吗?我假设我还必须使用chmod +x 使.py 文件可执行?请注意,如果我在终端中运行它 -- cd /Users/myuser/Desktop/Work/appbackup && ./backupapp.py,它可以工作。
猜你喜欢
  • 2012-09-14
  • 1970-01-01
  • 1970-01-01
  • 2012-02-02
  • 2012-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-19
相关资源
最近更新 更多