我想在某个时间每天运行一个python webscraping程序。为此,我在ubuntu的cron中使用此命令
28 22 * * * root /home/ahmed/Desktop python hello.py
它不起作用。一定有什么问题。有人可以帮我吗?
答案 0 :(得分:2)
尝试将#!/usr/bin/python
(称为shebang行)添加到Python脚本的顶部,然后
28 22 * * * root /home/ahmed/Desktop/hello.py
您必须使您的脚本像这样执行(将其作为单独的命令运行):
sudo chmod +x /home/ahmed/Desktop/hello.py
来自维基百科上的Shebang page:
在类Unix操作系统下,运行带有shebang的脚本时 作为程序,程序加载程序解析脚本的其余部分 初始行作为翻译指令;指定的解释器 而是运行程序,将其作为参数传递给它 最初在尝试运行脚本时使用。[8]例如,如果是 脚本以路径" path / to / script"命名,并以。开头 以下行: #!/ bin / sh然后指示程序加载程序运行程序" / bin / sh"相反(通常这是Bourne shell或兼容的 shell),传递" path / to / script"作为第一个论点。
如果你不想改变任何东西,这也会有效:
28 22 * * * root python /home/ahmed/Desktop/hello.py
答案 1 :(得分:2)
/home/ahmed/Desktop
(最有可能!)不是有效的命令名。你想要
28 22 * * * root python hello.py
或可能
28 22 * * * root python /home/ahmed/Desktop/hello.py
在某种程度上取决于你将文件夹名称放在那里的原因。
普通用户crontab
的语法不同。我可以想象没有合理的理由将{sciing program}作为root
运行。要从您自己的crontab
运行它,您应该使用
28 22 * * * python /home/ahmed/Desktop/hello.py
(可能没有路径名,或者在命令行中的其他位置使用路径)。