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