我正试着让cron调用正确的路径.当我从shell运行Python脚本时,脚本运行良好,因为它使用了在bashrc中设置的路径,但当我使用cron时,所有路径都不会从bashrc中使用.是否有一个文件可以为像bashrc这样的cron输入路径,或者有一种从bashrc调用路径的方法?

抱歉,我认为我的措辞不正确,我可以运行正确的脚本(这意味着crontab中的脚本路径不是这里的问题),只是当脚本运行时,我运行一个构建,这使用了.bashrc中设置的路径.当我在登录时运行脚本时,.bashrc条路径被拉入.因为cron不是在shell中运行的,所以说它不会拉入.bashrc.有没有一种不用编写bash脚本包装器就可以实现的方法?

推荐答案

我用了/etc/crontab.我使用了vi,在这个文件中输入了我需要的路径,并以root用户身份运行它.普通crontab会覆盖您设置的路径.A good tutorial on how to do this

系统范围的cron文件如下所示:

This has the username field, as used by /etc/crontab.
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file.
# This file also has a username field, that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user   command
42 6 * * *   root    run-parts --report /etc/cron.daily
47 6 * * 7   root    run-parts --report /etc/cron.weekly
52 6 1 * *   root    run-parts --report /etc/cron.monthly
01 01 * * 1-5 root python /path/to/file.py

Linux相关问答推荐

在shell 中使用排除模式的grep

是否有例外情况需要在.gitconfig中使用?

如何将数据从Linux内核中的块驱动程序持久存储到存储中?

Linux 的 __fastfail 替代方案?

Git - 打印以不同编码混合的文件

运行系统命令失败,但相同的命令可以直接在 bash 中执行

Docker 默认使用交换文件吗?

Linux内核模块构建过程中,许可信息添加了前缀

linux 提取字符串中可能是第二常见模式的部分

如何在 DolphinDB 中递归查找目录中的所有文件?

文件未在脚本中使用 cp 命令复制到 Docker 容器中

跨多台计算机管理用户配置文件

如何找出哪个进程正在消耗等待 CPU(即 I/O 阻塞)

如何使用 AWK 合并两个文件?

用于将文件夹从本地计算机复制到远程服务器的 scp 命令语法

php.ini 更改,但在 Ubuntu 上无效

将标准输出作为命令行工具的文件名传递?

区分 Windows 和类 Unix 系统的 Makefile

限制程序在 Linux 中运行的时间

使用 SED 将单词的首字母大写