【发布时间】:2016-11-11 04:41:26
【问题描述】:
我不知道为什么,但我的 crontab 无法在 Ubunut 14.0.x - Amazon Web Services (AWS) EC2 中运行。
我已经尝试了很多东西。
例如
sudo nano test.cron
--> * * * * * sudo /usr/bin/python3 /home/ubuntu/Dropbox/MeteoData/test.py
我也试过
--> * * * * * /usr/bin/python3 /home/ubuntu/Dropbox/MeteoData/test.py
然后
chrontab test.cron
crontab -l
会给我下一个结果:
MAILTO=myemail@hotmail.com
* * * * * sudo /usr/bin/python3 /home/ubuntu/Dropbox/MeteoData/test.py
或
MAILTO=myemail@hotmail.com
* * * * * /usr/bin/python3 /home/ubuntu/Dropbox/MeteoData/test.py
但是 crontab 什么也没做 :(
尽管如此,如果我正常执行脚本,python 脚本可以完美运行...
import sys, urllib
from selenium.webdriver.common.proxy import *
from bs4 import BeautifulSoup
import csv
import re, os
import urllib.parse
from time import localtime, gmtime, strftime, mktime, sleep
from geopy.geocoders import Nominatim
import csv
from geopy.geocoders.googlev3 import GoogleV3
from _ast import Try
import datetime
def main(args):
keys = ['Name', 'Latitude','Longitude','Altitude','firstDay']
f = open("testNUUUUU.csv", 'w')
try:
writer = csv.writer(f,delimiter=',', lineterminator='\n')
writer.writerow( keys )
finally:
f.close()
if __name__ == "__main__":
try:
main(sys.argv[1:]) # chop off the sys.argv[0] (script name) and pass the rest.
except KeyboardInterrupt:
print('\nUser Break.')
另外,我很确定 crontab 服务器正在运行:
sudo service cron restart
cron stop/waiting
cron start/running, process 3210
-
我也试过了
crontab -e
没有任何结果 :'(
因此,如果我在终端中执行代码 --> 它可以工作(它将创建文件)
如果我想让crontab执行代码,它不会起作用:'(
换句话说,有人可以帮忙吗?
【问题讨论】:
-
您是否为该用户授予了 python 的 sudo 权限?您是否尝试在与 cron 相同的用户 ID 下手动运行脚本?尝试以root身份运行它?仅仅因为它在您的用户 ID 下的 shell 中对您工作正常并不意味着它会在另一个用户的 id/shell 下。
-
@MarcB - 一个不起眼的问题,你是怎么做到的
-
文件:/etc/sudoers
-
你检查过日志吗?它们可能位于 /var/log/syslog。
-
将答案发布为答案,以便人们可以找到它。不要将答案编辑到问题中,也不要在标题中添加“已解决”。 (是的,回答你自己的问题并接受你自己的答案是完全可以的。)
标签: amazon-web-services amazon-ec2 scheduled-tasks ubuntu-14.04 crontab