shell script para encontrar o dia e hora e executar os próximos passos [Redhat6.7]

0

Eu tenho um cenário em que preciso executar um script de shell de acordo com o dia em que ele é. aqui está o código:

cd /home/test/check
perl test.pl check.ini parameters

Eu quero executar essas duas linhas apenas se o dia não for uma quinta-feira se o dia for quinta-feira, não deverá executar as linhas a seguir. Como eu posso conseguir o mesmo? Eu sou novo em shell scripts, qualquer ajuda é apreciada.

    
por Rebbeca 10.08.2017 / 16:50

3 respostas

0

Use date "+%u" para obter um dia numérico da semana (1 é segunda-feira).

if [ $(date "+%u") !=  "4" ]; then
   cd /home/test/check
   perl test.pl check.ini parameters
fi 
    
por 10.08.2017 / 16:54
0

Você pode usar crontab para executar scripts em um determinado momento. Editar crontab usando crontab -e

 # Use the hash sign to prefix a comment
    # +---------------- minute (0 - 59)
    # |  +------------- hour (0 - 23)
    # |  |  +---------- day of month (1 - 31)
    # |  |  |  +------- month (1 - 12)
    # |  |  |  |  +---- day of week (0 - 7) (Sunday=0 or 7)
    # |  |  |  |  |
    # *  *  *  *  *  command to be executed
    #--------------------------------------------------------------------------

, por exemplo, isso ocorre todos os dias às 11h59, exceto na quinta-feira. :

59 11 * * 1,2,3,5,6,7 nohup /usr/local/bin/perl  /home/test/check/perl.pl check parameters > /tmp/script.log 2>&1
    
por 10.08.2017 / 16:58
0

Isso ocorre seis dias por semana e é bastante autodocumentado. Substitua || com & & se você quiser correr apenas 1 dia, na quinta-feira.

cd /home/test/check
date | egrep '^Thu ' || perl test.pl check.ini parameters
    
por 05.09.2017 / 03:30