2017-10-16 1 views
0

Je veux ajouter plusieurs fois (à l'heure comme 12,13,14) dans crontab en utilisant python2.7.8. Comment puis je faire ça .Ajouter Plusieurs heures spécifiques dans crontab par programmation python

for job in cron.find_comment(cron_id): 
      job.hour.on(int ('5')) 
      job.minute.on(int ('30')) 
"""It displaying 
"30 5 * * * '/export/home/www/current/abc.sh' # IMPORT_TUD 
" 
""" 
#And I am trying to do like.... 

for job in cron.find_comment(cron_id): 
      job.hour.on(int ('5,6,7')) 
      job.minute.on(int ('30')) 
"""Output should be like this.. 

"30 5,6,7 * * * '/export/home/www/current/abc.sh' # IMPORT_TUD " Mais cela ne fonctionne pas "" »

Ceci est du code travailler pour l'entrée d'une heure .... Son fonctionnement bien, mais maintenant j'ai

fois comme ça ['13: 00: 00 ',' 14:00:00 ',' 15:00:00 ']

if daily_job > 0: 

     sched_str = sched_str.replace(r'",', r",") # this replaces ", with ; 
     sched_str = sched_str.replace(r'"', '') 

     time_str = sched_str.split(':') 

     for job in cron.find_comment(cron_id): 
      job.hour.on(int(time_str[0])) 
      job.minute.on(int(time_str[1])) 
+0

Si vous avez une image, s'il vous plaît le mettre dans le message directement. Qu'avez-vous déjà essayé? – Mazz

+0

Je pose une question la première fois, donc, je ne sais pas comment ajouter une image – Meena

+0

Vous ne pouvez pas poster une image, parce que vous avez besoin de> 50 (IIRC) réputation pour le faire. De toute façon, vous ne devriez pas afficher d'images de texte, mais plutôt le coller directement dans votre question et utiliser le bouton de code ('{}') pour le formater. Aussi, s'il vous plaît montrer quel effort vous avez fait pour coder vous-même - SO n'est pas le lieu pour les demandes "Ecrire mon code pour moi". – SiHa

Répondre

0
I found two approach: 
1. If we want No. times = No. of cronTab entry like... 
    30 3 * * * '/etc/crontab/abc.sh' # hello 
    30 4 * * * '/etc/crontab/abc.sh' # hello 
    30 5 * * * '/etc/crontab/abc.sh' # hello 



     file_cron.remove_all(comment='hello') 
     for i in sched_str: 
      time_str = i.split(':') 
      cur_hour = int (time_str[0]) 
      cur_minute = int (time_str[1]) 
      cron_job = file_cron.new('/etc/crontab', comment='hello') 
      cron_job.hour.on(cur_hour) 
      cron_job.minute.on(cur_minute) 

      file_cron.write() 
2. For single line of cronTab like (30 3,4,5,6 * * *'/etc/crontab/abc.sh' # hello) 

     file_cron = CronTab(tabfile='filename.tab') 
     sched_hour = ['11','13','15'] 

     def one(): 
      cron_job.hour.on(sched_hour[0]) 

     def two(): 
      cron_job.hour.on(sched_hour[0],sched_hour[1]) 

     def three(): 
      cron_job.hour.on(sched_hour[0],sched_hour[1],sched_hour[2]) 


     options = {1: one, 
        2: two, 
        3: three, 
        } 

     a = len(sched_hour) 
     for cron_job in file_cron.find_comment('hello'): 
      options[a]() 
      cron_job.minute.on(40) 

     file_cron.write()