我每小时都有一个crontab..bash_profile当用户从终端运行作业时,运行它的用户在该工作中具有环境变量,但是,显然这些在运行时不被crontab拾取.
我试着在设置它们.profile和.bashrc,但他们似乎仍然没有得到回升.有谁知道我可以把crontab可以拿到的环境变量放在哪里?
我正在尝试使用linux crontab执行python脚本,但我找到了很多解决方案,但没有一个能够正常工作.例如:在/etc/cron.d编辑anacron或使用crontab -e.
我想每10分钟运行一次这个脚本.
我必须编辑哪个文件来配置它?
提前致谢
编辑
我把这一行放在文件的末尾,但它不会改变任何东西.我必须重新启动任何服务吗?
*/2 * * * * /usr/bin/python /home/souza/Documets/Listener/listener.py
Run Code Online (Sandbox Code Playgroud)
编辑[2]
伙计们,我已经遵循了源代码.这里可能有问题,但是当我手动执行它时,它可以工作:
我一直试图运行一个每分钟执行一个 python 脚本的 cron 作业。执行“which python”后,我按如下方式设置了 cron 作业:
SHELL=/bin/bash
MAILTO=MyMac
PATH=bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
*/1 * * * * * /Users/MyMac/anaconda3/bin/python
/Users/MyMac/desktop/cron_test/test.py
Run Code Online (Sandbox Code Playgroud)
作业的描述在一行中,并且在定义的末尾有一个换行符。
我收到以下错误/var/mail/MyMac:
/bin/bash: AnacondaProjects: command not found
Run Code Online (Sandbox Code Playgroud)
所以我删除了:
SHELL=/bin/bash
Run Code Online (Sandbox Code Playgroud)
我得到了:
/bin/sh: MyMac: command not found
Run Code Online (Sandbox Code Playgroud)
然后我尝试了 /usr/bin/python 的所有可能组合,有或没有 lib、anaconda 等,有或没有指定 PATH、SHELL、MAIL。不幸的是,没有成功。
我究竟做错了什么?
所以这是我根据收到的建议所做的总结:
我试过:
* * * * * env > /tmp/env.output,
Run Code Online (Sandbox Code Playgroud)
首先我得到一个错误:
/bin/bash: /tmp/env.output: Permission denied,
Run Code Online (Sandbox Code Playgroud)
所以我做了一个 cron Job 作为 sudo。env.output 中的路径是:
PATH= bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/Users/MyMac/AnacondaProjects
Run Code Online (Sandbox Code Playgroud)
最后,我将我的 cronjob(作为普通用户而不是 sudo)设置为:
SHELL=/bin/bash
MAILTO=my_address@mail.com
PATH=bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/Users/MyMac/AnacondaProjects:/Users/MyMac/anaconda3/bin/python:/usr/bin/env
* * * * * /Users/MyMac/anaconda3/bin/python /Users/MyMac/desktop/cron_test/test.py …Run Code Online (Sandbox Code Playgroud)