Precisa de um script Linux para agendar um trabalho sem usar o Cron ou

1

Para um sistema operacional Redhat Linux mais antigo, tendo problemas para conseguir que um trabalho seja executado a partir do Cron, mas funciona bem na minha conta de usuário / linha de comando.

Parece ter algo a ver com o Cron usando um shell diferente do meu usuário.

Existe uma maneira de ter um script em execução em segundo plano usando minha conta de usuário que agenda 1 ou mais tarefas em determinados horários?

Entrada do Cron:

00      08      *       *       *       DBPATH='/usr2/customer/actr/data/409';export DBPATH;/usr2/customer/actr/systems/adsnew/scripts/rb3pamrx8.sh 'lp -d macaplp01 -s -oL' 'Y' '409' 'today+1' '1' 'DEV'
    
por user5586678 05.10.2017 / 16:57

2 respostas

2

Coloque seu código em um script e agende o script. Se for mais do que um único comando, ou usar qualquer coisa "chique", basta colocá-lo em um script:

#!/bin/sh

DBPATH='/usr2/customer/actr/data/409'
export DBPATH

/usr2/customer/actr/systems/adsnew/scripts/rb3pamrx8.sh \
    'lp -d macaplp01 -s -oL' \
    'Y' '409' 'today+1' \
    '1' 'DEV'

Isso torna mais legível e, como não está escondido em um crontab em algum lugar, você pode alterá-lo sem ter que modificar a entrada do crontab. Também torna possível adicionar estruturas de controle e lógica, se necessário, sem ter que tentar fazer tudo em uma linha.

Resumindo: separa a ação (o script) do agendamento.

A entrada do crontab pode ser

0 8 * * * /usr2/customer/actr/cronscripts/theprintjob.sh

ou algo assim.

    
por 05.10.2017 / 17:10
0

Aqui está um exemplo do crontab do meu usuário:

SHELL=/usr/local/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/noc
LOGNAME=jessebutryn
USER=jessebutryn
HOME=/Users/jessebutryn
#
0 12 * * * /Users/jessebutryn/Documents/scripts/shell/tools/mantasync.sh
0,15,30,45 * * * * /Users/jessebutryn/Documents/scripts/shell/tools/ntoolssync.sh

Se você não quiser definir variáveis para toda a sua guia cron, mas tiver uma tarefa que precise ser executada com o ambiente do seu usuário, normalmente você pode apenas criar o seu perfil bash, similar a este:

0 2,6,10,14,18,22 * * * . /root/.bash_profile ; /opt/local/bin/fraudchk
    
por 05.10.2017 / 17:01