1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

[Python] Cron job que roda um bash script (que roda um script em python) se comportando...

Discussão em 'Python' iniciado por Stack, Setembro 16, 2024.

  1. Stack

    Stack Membro Participativo

    Ola..Eu tenho um script em python que plota dois graficos diferentes e que precisa ser rodado diariamente para atualizar esses graficos em um site

    Os dados que sao usados por esse script, estao em um determinado diretorio em formato HDF

    Eu criei um Bash script que copia os dados desse diretorio, converte para Netcdf, cola em outro diretorio, executa esse script em python e atualiza os graficos no site

    Como eu disse, preciso que esses graficos sejam atualizados diariamente no site, por isso, programei esse bash script para ser rodado diariamente por crontab

    O crontab esta de fato executando o bash script: Os dados estao sendo copiados, convertidos e colados...o script em python esta rodando e plotando os graficos soh que um deles, esta vindo com problema

    Em um dos graficos ( o que plota a orbita de um satelite), eu preciso colocar a hora inicial e final de colteta de dados

    Algo desse tipo:

    Start: 00:00:38 UTC

    End: 01:29:57 UTC

    SOH QUE ...quando rodado por crontab, o que esta sendo plotado eh isso:

    Start: 0 UTC

    End: 4 UTC

    Se eu rodo manualmente, ele funciona perfeitamente, e plota as horas do jeito certo

    Essa eh a parte do meu script em python que esta plotando as horas:

    def cal_protime2dt(time):

    d = int(time % 100)
    m = int((time-d) % 10000)
    y = int(time-m-d)
    return dt.datetime(2000 + y//10000, m//100, d) + dt.timedelta(time % 1)

    dates = [cal_protime2dt(time) for i in np.arange(len(time))]
    datestr = [i.strftime('%H:%M:%S') for i in dates]

    t1=str(datestr[0])
    t2=str(datestr[-1])

    x, y = m(longitude[0], latitude[0])

    m.plot(x, y, marker='D', color='m', markersize=2.1)
    plt.text(-95,94.5, 'Start: {:} UTC \n\n\n '.format(t1), fontsize=5.55, color='m', ha='right',va='center')#, bbox=dict(facecolor='w', alpha=0.2))

    z, w = m(longitude[-1], latitude[-1])
    m.plot(z, w, marker='D', color='b', markersize=2.1)
    plt.text(-97, 94.5, ' End: {:} UTC '.format(t2), fontsize=5.55, color='b',ha='right',va='center')


    Esse eh o meu bash script:

    #!/bin/bash

    ontem=$(date --date="2 days ago" +"%Y-%m-%d");

    date=$ontem

    year=`date +"%Y"`

    previous_year=`date +"%Y" -d "-1 year"`

    h4=/mnt/raid/CALIPSO/SCRIPTS/

    dir=/mnt/raid/CALIPSO/DATA/NETCDF_TEMP/

    cd /mnt/raid/CALIPSO/DATA/L1.5/2017/

    cp CAL_LID_L15_Exp-Beta-V3-40.${date}T*.hdf /mnt/raid/CALIPSO/DATA/NETCDF_TEMP

    for i in ${dir}*.hdf; do ${h4}h4tonccf_nc4 $i; done

    python ${h4}CalipsoLatLonTimeLoop_TimTrack.py

    rsync -u -z -v -e "ssh -p 8222" /mnt/raid/CALIPSO/PICS/${year}* update@140.203.204.132:/home/www/html/rt/PICS/${year}/
    rsync -u -z -v -e "ssh -p 8222" /mnt/raid/CALIPSO/PICS/${previous_year}* update@140.203.204.132:/home/www/html/rt/PICS/${previous_year}/


    E esse eh o jeito que eu programei o crontab para rodar:

    0 9 * * * /mnt/raid/CALIPSO/SCRIPTS/copy_convert_plot_update_twodaysago.sh


    Alguem tem alguma ideia do que pode estar acontecendo?

    Continue reading...

Compartilhe esta Página