powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Запуск dbaccess из crontab
14 сообщений из 14, страница 1 из 1
Запуск dbaccess из crontab
    #35533953
Komedyant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый. Пытаюсь сделать update statistics через crontab. В crontab'e такая строка:

26 11 11 09 * /backupinformix/updstat/updstat.sh >> /tmp/log_out 2>&1

Содержание updstat.sh:

#!/bin/sh


INFPROFILE=/mnt/script/profileCAD
. $INFPROFILE
DAT=`date +%Y%m%d%H%M`
PROG=updstat
WORKDIR=/backupInformix/updstat/
cd $WORKDIR
echo ---------- begin ----------->>$PROG.log
date >> $PROG.log
dbaccess sicf /backupInformix/updstat/updstat.sql >> /backupInformix/updstat/upd_$DAT.log
echo ----------- end ------------>>$PROG.log
date >> $PROG.log


Содержание updstat.sql:

update statistics high for table help;

Содержание profileCAD:

#!/bin/sh

#folder name in date format year to minutes
#INFPROFILE=/mnt/script/cad_profile
#. $INFPROFILE
PROG=cad_profile
WORKDIR=/mnt/script/
echo ---------- begin ----------->>$PROG.log
date >> $PROG.log
/bin/bash --rcfile /mnt/script/cad_profile
echo ----------- end ------------>>$PROG.log
date >> $PROG.log


Содержание cad_profile:

# .bash_profile

export INFORMIXDIR=/opt/informix
export PATH=$INFORMIXDIR/bin:$PATH
export INFORMIXSERVER=ol_cad1
export INFORMIXSQLHOSTS=$INFORMIXDIR/etc/sqlhosts
export ONCONFIG=onconfig.cadastru
export DB_LOCALE=en_us.57372
export CLIENT_LOCALE=en_us.57372
export SERVER_LOCALE=en_us.57372
export DBTIME='%Y-%m-%d %H:%M'
export DBDATE=dmy4.
export GLDATE=dmy4.
export DBLANG=en_us.57372
export DBDELIMITER='|'


При выполнении из crontab'a дает ошибку:

/backupInformix/updstat/updstat.sh: line 13: dbaccess: command not found

Если просто из command line, то выполняется. Что нужно еще поставить/поменять для выполнения из crontab'a ?
...
Рейтинг: 0 / 0
Запуск dbaccess из crontab
    #35534024
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Komedyant
INFPROFILE=/mnt/script/profileCAD
. $INFPROFILE

~~~~~~~~~~~~~~~~~~~~~~~

PROG=cad_profile

PROG=cad_profile что делает эта строка по вашему мнению? Или пропустили
. $PROG
???
...
Рейтинг: 0 / 0
Запуск dbaccess из crontab
    #35534026
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и путь скорее всего должен быть полным.
...
Рейтинг: 0 / 0
Запуск dbaccess из crontab
    #35534075
Komedyant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Денис Komedyant
INFPROFILE=/mnt/script/profileCAD
. $INFPROFILE

~~~~~~~~~~~~~~~~~~~~~~~

PROG=cad_profile

PROG=cad_profile что делает эта строка по вашему мнению? Или пропустили
. $PROG
???

Я так понимаю в PROG заносит "cad_profile", просто для создания потом фаила с именем: cad_profile.log
...
Рейтинг: 0 / 0
Запуск dbaccess из crontab
    #35534081
Komedyant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Дениси путь скорее всего должен быть полным.

Какие именно пути?
...
Рейтинг: 0 / 0
Запуск dbaccess из crontab
    #35534094
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KomedyantЯ так понимаю в PROG заносит "cad_profile", просто для создания потом фаила с именем: cad_profile.logах вот оно что. Тогда зачем нужен файл cad_profile, откуда он вызывается? Ведь именно в нем устанавливается окружение (например путь к dbaccess)
...
Рейтинг: 0 / 0
Запуск dbaccess из crontab
    #35534101
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Komedyant Журавлев Дениси путь скорее всего должен быть полным.
Какие именно пути?
Ну я думал задумано было следующее:

PROG=/mnt/script/cad_profile
. $PROG
...
Рейтинг: 0 / 0
Запуск dbaccess из crontab
    #35534103
Komedyant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Денис KomedyantЯ так понимаю в PROG заносит "cad_profile", просто для создания потом фаила с именем: cad_profile.logах вот оно что. Тогда зачем нужен файл cad_profile, откуда он вызывается? Ведь именно в нем устанавливается окружение (например путь к dbaccess)

/bin/bash --rcfile /mnt/script/cad_profile
...
Рейтинг: 0 / 0
Запуск dbaccess из crontab
    #35534108
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для отладки можно set -x тогда правда всплывет

#!/bin/sh
set -x
...
Рейтинг: 0 / 0
Запуск dbaccess из crontab
    #35534121
Komedyant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Денисдля отладки можно set -x тогда правда всплывет

#!/bin/sh
set -x

Если в updstat.sh поставить вначале:

export INFORMIXDIR=/opt/informix
export PATH=$INFORMIXDIR/bin:$PATH
export INFORMIXSERVER=ol_cad1
export INFORMIXSQLHOSTS=$INFORMIXDIR/etc/sqlhosts
export ONCONFIG=onconfig.cadastru
export DB_LOCALE=en_us.57372
export CLIENT_LOCALE=en_us.57372
export SERVER_LOCALE=en_us.57372
export DBTIME='%Y-%m-%d %H:%M'
export DBDATE=dmy4.
export GLDATE=dmy4.
export DBLANG=en_us.57372
export DBDELIMITER='|'


возьмет ли он правильно environment variables?
...
Рейтинг: 0 / 0
Запуск dbaccess из crontab
    #35534124
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Komedyant
возьмет ли он правильно environment variables?конечно, куда он денется.
...
Рейтинг: 0 / 0
Запуск dbaccess из crontab
    #35534723
Paul Tatarenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Денис Komedyant
возьмет ли он правильно environment variables?конечно, куда он денется.
Только лучше всё же держать переменные в одном файле и использовать его там, где нужно, вот так примерно:
Код: plaintext
1.
PROG=/mnt/script/cad_profile
. $PROG
Тогда при необходимости изменения переменных не придётся перерывать кучу скриптов...
...
Рейтинг: 0 / 0
Запуск dbaccess из crontab
    #35534945
Алексан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Komedyant Журавлев Денис KomedyantЯ так понимаю в PROG заносит "cad_profile", просто для создания потом фаила с именем: cad_profile.logах вот оно что. Тогда зачем нужен файл cad_profile, откуда он вызывается? Ведь именно в нем устанавливается окружение (например путь к dbaccess)

/bin/bash --rcfile /mnt/script/cad_profile Эта команда порождает новый шел, в котором устанавливаются переменные окружения и, затем, этот новый щел закрывается - в желаемом шеле ничего не остаётся. Выполняйте скрипт cad_profile в текущем шеле, т.е. пишите "точка пробел cad_profile".
...
Рейтинг: 0 / 0
Запуск dbaccess из crontab
    #35535075
Komedyant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое всем спасибо за ответы, скрипт успешно запускается из crontab.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Запуск dbaccess из crontab
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]