我一直试图运行一个cron作业,该作业每分钟执行一次python脚本。 执行“哪个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
Job的描述在一行中,并且定义的末尾有一个换行符。
我在/var/mail/MyMac
中遇到以下错误:
/bin/bash: AnacondaProjects: command not found
所以我删除了:
SHELL=/bin/bash
然后我得到了
/bin/sh: MyMac: command not found
然后,我尝试了/ usr / bin / python的所有可能组合,无论是否带有lib,anaconda等,无论是否指定PATH,SHELL,MAIL。不幸的是,没有成功。
我在做什么错了?
这是我根据收到的建议所做的摘要:
我尝试过:
* * * * * env > /tmp/env.output,
首先我得到一个错误:
/bin/bash: /tmp/env.output: Permission denied,
所以我做了一个cron Job作为sudo。 env.output中的路径为:
PATH= bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/Users/MyMac/AnacondaProjects
最后,我将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
它仍然不起作用。 python代码是:
#!/usr/bin/env python
def main():
f = open("test.txt", "w+")
f.write("HELLO" + '\n')
f.close()
if __name__ == "__main__":
print("Print")
main()
我期待着获得并尝试新的方法。
答案 0 :(得分:2)
尝试这样做:
答案 1 :(得分:0)
尝试执行以下操作:
#!/Users/MyMac/anaconda3/bin/python
chmod +x /Users/MyMac/desktop/cron_test/test.py
* * * * * * /Users/MyMac/desktop/cron_test/test.py
,这是告诉cron每分钟执行一次作业的一种形式答案 2 :(得分:0)
尽量使cron的记录是这样的:
var arr = [{
'break_time': '09:00'
}, {
'break_time': '09:00'
}, {
'break_time': '09:00'
}, {
'break_time': '10:00'
}, {
'break_time': '10:00'
}, {
'break_time': '15:00'
}, {
'break_time': '09:00'
}];
var obj = {};
for(var i = 0; i < arr.length; i++) {
var arrObj = arr[i];
if(obj[arrObj.break_time]){
obj[arrObj.break_time]++;
} else {
obj[arrObj.break_time] = 1;
}
}
console.log(obj);
此将运行它的每分钟
在* * * * * /Users/MyMac/anaconda3/bin/python /Users/MyMac/desktop/cron_test/test.py
上,cron希望使用电子邮件地址,而不是某些姓名