我想向crontab请求python模块的帮助。我有一个简单的shell脚本,可以使用curl命令录制internet广播流。我想提前安排录音。我找到了python crontab模块,它允许我直接写crontab。但每次我安排新的录制时,旧的crontab条目都会被重写。是否可以使用python crontab编写持久的crontab条目?在
我简化了代码来演示我的问题:
from crontab import CronTab
def get_recording_parameters(Min,Hour,day,month,job_number):
radio_cron = CronTab()
cmd = "sh /home/pifik/Documents/record_radio.sh"
cron_job = radio_cron.new(cmd, comment='job_'+str(job_number))
cron_job.setall(Min, Hour, day, month, None)
radio_cron.write()
如果我使用以下参数运行它:get_recording_参数(0,22,23,12,1),并用crontab-l命令检查终端中的crontab,那么我得到0 22 23 12*sh/home/pifik/Documents/record_收音机.sh#工作1。 如果我用不同的参数再次运行它,例如:get_recording_parameters(10,23,25,12,2)并用crontab-l检查crontab,我得到10 23 25 12*sh/home/pifik/Documents/record_收音机.sh#作业2,作业1被覆盖。在
我试图将第三行代码改为radio_cron=CronTab(tabfile='/home/pifik/Documents)/文件名.tab'并且所有新条目都被附加到文件名.tab但是没有写入crontab。 我正在运行ubuntu14.04和python3.4.3。在
我修改了史蒂文的代码,使之适合我。 为了不丢失先前计划的crontab作业,我创建了cron_作业.txt将所有现有的计划作业从crontab归档并复制到cron_作业.txt子流程调用“crontab-l>;/home/pifik/Documents/cron”_作业.txt". 每次我这样做,我都会覆盖文件中的所有内容。然后我创建一个新的录制作业并将其附加到cron_作业.txt文件。之后,我通过运行subprocess.call('crontab/home/pifik/Documents/cron_作业.txt“,shell=True)”。在
这是一种解决方法,可以让它正常工作,但是我仍然有兴趣知道是否可以使用python crontab模块直接附加新的作业,而不需要cron_作业.txt文件。可以说,按照我现在这样做的方式,也可以不使用模块来完成,但模块通过激活或停用作业以及删除过期作业,使我更容易进一步管理作业。我会在上面放一些小图形,现在就搞定了。在
看起来每次添加作业并将其写回时,都会覆盖crontab中已经存在的内容。我看了文件,弄不清头绪。我不知道你应该怎么去补充我的生活。在
您可以通过将它重新作为一个类来解决这个问题,该类将所有作业组合在一起,然后再将它们写出来。当然,这会把你画到你已经在其中的一个角落里进行附加是行不通的(除非你在写作之前再把旧条目放进去):
问题是您没有为CronTab指定任何要从中加载的用户或文件名。错误在于,默认情况下,它会将空的crontab写出给用户,即使您没有指定用户。在
现有文件指出:
这是正确的,因为你正在生成一个空的crontab。因此,我已经提交了一个修复程序和一个测试,以确保如果您试图在不指定用户或文件名的情况下编写一个空的\u cron,它会导致错误。在
请将
user=True
添加到代码中,使其按预期工作。在相关问题 更多 >
编程相关推荐