Shellscript не работает в crontab для выполнения sqlcmd - PullRequest
0 голосов
/ 30 марта 2020

Я использую crontab в Red Hat для запуска сценария оболочки, который выведет CSV-файл в каталог. Я могу выполнить скрипт вручную, но когда я запускаю его через cron, он не запускается. Мой скрипт:

IndividualInformation. sh

#!/usr/bin/env bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
sqlcmd -S 192.168.0.0 -d TestDB -U xx -P xxxx -Q "EXEC BPE.IndividualInformation_GetList" -o "IndividualInformation.csv" -h-1 -s"," -W
exit 0

мой crontab выглядит так:

12 30 * * * /home/admin/cronTab_SQL/IndividualInformation.sh 2> /tmp/crontab_script_log.txt 2>&1

Я не могу запустить скрипт в crontab и когда я проверил журналы (crontab_script_log.txt), журналы были пусты.

Ответы [ 2 ]

2 голосов
/ 30 марта 2020
12 30 * * *

не является точным указанием времени. Заказ составляет minute, hour, day of month, month, day of week. Там нет часа 30.

Если вы хотите запускать скрипт каждый день в 12:30, он должен быть:

30 12 * * *

Также в команде

2> /tmp/crontab_script_log.txt

должно быть

> /tmp/crontab_script_log.txt

Вы перенаправляете stderr позже с 2>&1, вам нужно перенаправить stdout в файл.

0 голосов
/ 30 марта 2020

Возможно, ваш файл находится где-то еще (возможно, в вашем домашнем каталоге).

Попробуйте этот crontab:

12 30 * * * cd /home/admin/cronTab_SQL && /home/admin/cronTab_SQL/IndividualInformation.sh 2> /tmp/crontab_script_log.txt 2>&1
...