我的机器上有两个 Python 脚本,我想在特定时间段每天执行两次。我如何自动执行此任务?由于我将离开家并离开我的计算机一段时间,我想将它们上传到一个站点并从那里自动执行,而无需我做任何事情。
我该怎么做?
最佳答案
如果您使用的是 Linux 机器,则可以使用 cron
执行此操作。 Cron 是用于在特定时间执行特定任务的系统守护进程。
cron
的工作原理是 crontab
,这是一个包含在指定时间运行的命令列表的文本文件。它遵循特定的格式,可以在 man 5 crontab
crontab 的格式
每个部分都由一个空格分隔,最后一节中有一个或多个空格。第 1-5 节之间不允许有空格,只能在它们之间。第 1-5 部分用于指示您希望任务执行的时间和频率。这是 cron 作业的布局方式:
分钟 (0-59), 小时 (0-23, 0 = 午夜), 日 (1-31), 月 (1-12), 工作日 (0-6, 0 = 周日), 命令
01 04 1 1 1/usr/bin/somedirectory/somecommand
以上示例将在 1 月 1 日凌晨 4:01 以及 1 月的每个星期一运行/usr/bin/somedirectory/somecommand。可以使用星号 (*) 以便使用时间段的每个实例(每小时、每个工作日、每月等)。代码:
01 04 * * */usr/bin/somedirectory/somecommand
以上示例将在每个月的每天凌晨 4:01 运行/usr/bin/somedirectory/somecommand。
逗号分隔值可用于在一段时间内运行特定命令的多个实例。破折号分隔的值可用于连续运行命令。代码:
01,31 04,05 1-15 1,6 */usr/bin/somedirectory/somecommand
以上示例将在每年一月和六月的 1 日至 15 日凌晨 4:00 和 5:00 后的 01 点和 31 点运行 /usr/bin/somedirectory/somecommand
。
上面示例中的“/usr/bin/somedirectory/somecommand”文本表示将在指定时间运行的任务。建议您使用上述示例中所示的所需命令的完整路径。在终端中输入 which somecommand
以找到 somecommand 的完整路径。 crontab 将在正确编辑和保存后立即开始运行。
您可能希望每个时间单位运行脚本一定次数。例如,如果您想每 10 分钟运行一次,请使用以下 crontab 条目(运行时间可被 10 整除:0、10、20、30 等)
*/10 * * * */usr/bin/somedirectory/somecommand
这也相当于比较麻烦
0,10,20,30,40,50 * * * */usr/bin/somedirectory/somecommand
关于python - 如何按时执行脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30835547/