python - Python 中的 crontab 创建 cron 作业,但不运行脚本
问题描述
不知道我做错了什么,无论是代码,目录还是其他东西。请帮忙!
from crontab import CronTab
my_cron = CronTab(user='bgoldberg')
job = my_cron.new(command='python /Users/bgoldberg/PythonScripts/FunStuff/writeDate.py')
job.minute.every(1)
my_cron.write()
这是 writeDate.py 脚本:
import datetime
with open('dateInfo.txt','a') as outFile:
outFile.write('\n' + str(datetime.datetime.now()))
writeDate.py 脚本只是将当前时间戳写入 txt 文件,单独运行时可以正常工作。当我运行 python scheduleCron.py 时,它运行没有错误,但似乎它没有运行 writeDate.py 脚本,因为没有创建 txt 文件。当我输入 crontab -l 它正确显示了创建的作业: ***** python /Users/bgoldberg/PythonScripts/FunStuff/writeDate.py
不知道我做错了什么......
解决方案
这是一个 cron “陷阱”。cron 使用命令
python /Users/bgoldberg/PythonScripts/FunStuff/writeDate.py
您希望将其写入当前工作目录,但/var/log/syslog
默认情况下 cron 将写入此目录或此目录的某些变体。它正在尝试写入您没有权限的某个地方(但它不会死),因此您需要指定输出文件的绝对路径。
更改您的线路writeDate.py
以写入绝对路径:
with open('/Users/bgoldberg/dateinfo.txt', 'a') as outFile:
将解决您的问题。
推荐阅读
- r - 并行分叉法
- excel - VBA 适用于第 2-15 页,但不适用于第 1 页
- java - 升级到 2.0.1.Final 后 Quarkus 多模块构建失败
- postgresql - 从在 Openshift 3.11 中运行的 Grafana 7.x 连接到 GCP Cloud SQL Postgres db - 密钥文件权限
- django - 如何将 dict 信息传递给 plotlyjs 饼图?
- javascript - 如何在 iframe 上加载 html 时转义 (') 引号或 (") 双引号
- momentjs - 服务器端渲染momentjs无法正确显示
- android-studio - 如何允许在 AVD 文件夹中创建 SD 卡?
- r - R中具有水平方向变量的治疗效果表
- node.js - i18next 将 en-US 语言环境映射到 en 命名空间文件夹/文件