Crontab 没有 运行 在 macOs 中设置我的 python 脚本,尽管该脚本在手动 运行 时有效
Crontab isn't running my python script in macOs although the script works when run manually
我的学校总是希望我们下载 pptx 和 docx 用于讲座和实践,我讨厌我总是需要在阅读完成后手动删除它。因此,我创建了一个脚本来清除文件夹中的任何内容,并希望 crontab 将其安排为每小时 运行。
当我通过终端手动 运行 这段代码时一切正常。
def remove_trash():
import os
dir_path = os.path.dirname(os.path.realpath(__file__))
filename = os.path.join(dir_path, "trash_script.py")
with open(filename, "r") as f:
_ = f.read()
os.system(f"rm -df {dir_path}/* && touch {filename}")
with open(filename, "w") as f:
f.write(_)
if __name__ == "__main__":
remove_trash()
但是当我在我的 crontab 中添加这个时,
0 * * * * python ~/Desktop/Projects/script/Trash/trash_script.py
我尝试授予文件执行权限,但它仍然不会 运行 每分钟 0.
chmod +x trash_script.py
我建议先将您的脚本移动到 bash 脚本中,然后添加一些日志来查找问题。 bash 脚本将如下所示:
trash.sh
cd ~/Desktop/Projects/script/Trash
python trash_script.py
更改脚本的执行权限
chmod +x trash.sh
将您的 cron 作业修改为如下所示:
0 * * * * sh <path_to_bash_script>/trash.sh >> ~/Desktop/Projects/script/Trash/trash.log 2>&1
这将有助于每次脚本运行时都有一些输出。
我的学校总是希望我们下载 pptx 和 docx 用于讲座和实践,我讨厌我总是需要在阅读完成后手动删除它。因此,我创建了一个脚本来清除文件夹中的任何内容,并希望 crontab 将其安排为每小时 运行。
当我通过终端手动 运行 这段代码时一切正常。
def remove_trash():
import os
dir_path = os.path.dirname(os.path.realpath(__file__))
filename = os.path.join(dir_path, "trash_script.py")
with open(filename, "r") as f:
_ = f.read()
os.system(f"rm -df {dir_path}/* && touch {filename}")
with open(filename, "w") as f:
f.write(_)
if __name__ == "__main__":
remove_trash()
但是当我在我的 crontab 中添加这个时,
0 * * * * python ~/Desktop/Projects/script/Trash/trash_script.py
我尝试授予文件执行权限,但它仍然不会 运行 每分钟 0.
chmod +x trash_script.py
我建议先将您的脚本移动到 bash 脚本中,然后添加一些日志来查找问题。 bash 脚本将如下所示:
trash.sh
cd ~/Desktop/Projects/script/Trash
python trash_script.py
更改脚本的执行权限
chmod +x trash.sh
将您的 cron 作业修改为如下所示:
0 * * * * sh <path_to_bash_script>/trash.sh >> ~/Desktop/Projects/script/Trash/trash.log 2>&1
这将有助于每次脚本运行时都有一些输出。