#linux #shell #filesystems #sh #redhat
Вопрос:
Я пытаюсь запустить оболочку .sh со своей машины redhat 7.9 в другом месте, чем файл, так как это то, что требуется. Но пометьте ошибку не таким файлом или каталогом, хотя я передаю правильный путь пометьте ошибку. Стоит отметить, что если он выполняется в том месте, где находится оболочка, он выполняет его без проблем, но что требуется, так это возможность выполнить его за пределами этой файловой системы. Разрешения для файловой системы уже были предоставлены, пользователь был назначен в группы, и он по-прежнему отмечает то же самое.
#!/bin/bash
file=$1
#Ruta del proyecto scripts
#ruta=/home/db2inst1
ruta=/opt/IBM/db2/V11.1/bin/
#Conexion a db2
/opt/IBM/db2/V11.1/bin/db2 connect to INFOST > connect_db2_log
fecha="$(date "%Y-%m-%d - %Hhr_%Mmin_%Sseg")"
date0="$(date "%Y-%m-%d - %H:%M:%S")"
fecha_flujo_inicio="$(date %s)"
#echo "Timestamp inicio $fecha_flujo_inicio"
#Lectura del archivo con las tablas a ingestar
while IFS= read line; do
tablaname=$(cut -d " " -f1 <<< $line)
tab_infost=$(cut -d " " -f2 <<< $line)
echo $fecha
echo "Nombre de la tabla: $tablaname"
#sleep 20
/opt/IBM/db2/V11.1/bin/db2 "select count(*) from IS_STAGING.$tablaname" > test_log_count
#echo "des.2019" | "su - db2inst1 -c "db2 'select count(*) from IS_STAGING.$tablaname'" > test_log_count
IFS=
ошибка, которая отмечается, заключается в следующем: ТАКОГО ФАЙЛА ИЛИ КАТАЛОГА НЕТ
[i2actinver@v2qlintfinan01 home]$ /opt/IBM/db2/V11.1/bin/script_ingesta_sudo_clean_paralelo.sh FLUJOS/flujo_01
/opt/IBM/db2/V11.1/bin/script_ingesta_sudo_clean_paralelo.sh: line 107: FLUJOS/flujo_01: No such file or directory
TERMINO EL FLUJO FLUJOS/flujo_01
[i2actinver@v2qlintfinan01 home]$
Комментарии:
1. Каков абсолютный путь к файлу?
2. /opt/IBM/db2/V11.1/bin/
3. Я имею в виду, каков абсолютный путь к FLUJOS/flujo_01, так как именно этот файл вы с трудом открываете
4. Относительные пути интерпретируются относительно каталога, в котором вы находитесь, а не каталога сценария. Поэтому аргументом должен быть абсолютный путь к
FLUJOS/flujo_01
файлу.5. путь ПОТОКОВ - /opt/IBM/db2/V11.1/bin/FLUJOS/flujos_01
Ответ №1:
Я работаю, добавляя абсолютный путь /opt/IBM/db2/V11.1/bin/script_ingesta_sudo_clean_paralelo.sh /opt/IBM/db2/V11.1/bin/FLUJOS/flujos_01 спасибо вам всем.
, ' GLOBIGNORE='*' command eval 'L=($(cat test_log_count))'
Count=${L[2]}
echo $Count
#f=$ruta/BITACORA_TABLAS/Bitacora_$tablaname
#Verificacion de que el COUNT de la tabla sea entero
if [[ "$((Count))" =~ ^[0-9] $ ]]; then
#Caso en el que la BITACORA esta VACIA
#if [[ ! -s $f ]]; then
echo "Ingesta de $tablaname amp; $tab_infost"
echo "############################################################"
echo "###################### $tablaname ##########################"
echo "############################################################"
echo "Count consultado: $((Count))"
if [[ ${L[2]} -eq 0 ]]; then
runtime="1 minute"
endtime=$(date -ud "$runtime" %s)
echo "####### Esperando que se llene la tabla... ######"
while [[ $(date -u %s) -le $endtime ]]; do
#sleep 210
/opt/IBM/db2/V11.1/bin/db2 "select count(*) from IS_STAGING.$tablaname" > test_log_count
IFS=ошибка, которая отмечается, заключается в следующем: ТАКОГО ФАЙЛА ИЛИ КАТАЛОГА НЕТ
Комментарии:
1. Каков абсолютный путь к файлу?
2. /opt/IBM/db2/V11.1/bin/
3. Я имею в виду, каков абсолютный путь к FLUJOS/flujo_01, так как именно этот файл вы с трудом открываете
4. Относительные пути интерпретируются относительно каталога, в котором вы находитесь, а не каталога сценария. Поэтому аргументом должен быть абсолютный путь к
FLUJOS/flujo_01
файлу.5. путь ПОТОКОВ - /opt/IBM/db2/V11.1/bin/FLUJOS/flujos_01
Ответ №1:
Я работаю, добавляя абсолютный путь /opt/IBM/db2/V11.1/bin/script_ingesta_sudo_clean_paralelo.sh /opt/IBM/db2/V11.1/bin/FLUJOS/flujos_01 спасибо вам всем.
, ' GLOBIGNORE='*' command eval 'L=($(cat test_log_count))'
if [[ ${L[2]} -eq 0 ]]; then
continue
else
echo "########Se lleno la tabla...##########"
break
fi
done
fi
if [[ ${L[2]} -eq 0 ]]; then
echo "################NO HAY DATOS################"
time0="$(date "%Y-%m-%d - %H:%M:%S")"
echo "###################### ESTA VACIA LA TABLA ##########################"
sudo echo $time0 $tablaname $tab_infost ${L[2]} >> $ruta/LOGS_INGESTA/TABLAS_VACIAS
fi
#echo ${L[2]}
#Count diferente de 0
#sleep 10
if [[ ${L[2]} -ne 0 ]]; then
echo "Ingestando..."
echo "Tabla $tablaname esta llena con ${L[2]}, ejecutando ingesta al INFO STORE..." # Ejecutar ingesta
#echo "${fecha}" ${L[2]} >> $ruta/BITACORA_TABLAS/Bitacora_$tablaname
time1="$(date "%Y-%m-%d-%H:%M:%S")"
#sudo sh /opt/IBM/i2EIA/toolkit/scripts/setup -t ingestInformationStoreRecords -p importMappingsFile=/opt/IBM/i2EIA/toolkit/configuration/data_actinver/mapping.xml -p importMappingId=$tab_infost -p importMode=STANDARD amp;
if [[ ${L[2]} -gt 14000 ]]; then
sudo sh /opt/IBM/i2EIA/toolkit/scripts/setup -t ingestInformationStoreRecords -p importMappingsFile=/opt/IBM/i2EIA/toolkit/configuration/data_actinver/mapping.xml -p importMappingId=$tab_infost -p importMode=STANDARD amp;
sleep 45
echo "Espera 50 segundos"
else
sudo sh /opt/IBM/i2EIA/toolkit/scripts/setup -t ingestInformationStoreRecords -p importMappingsFile=/opt/IBM/i2EIA/toolkit/configuration/data_actinver/mapping.xml -p importMappingId=$tab_infost -p importMode=STANDARD
fi
status=$?
time2="$(date "%Y-%m-%d-%H:%M:%S")"
#Estatus de la ejecucion
#echo "Estatus: $status"
if [ $status -eq 0 ]; then
echo "Estatus de la ejecucion: Exitoso"
sudo echo "Tabla: $tab_infost Tiempo: $time1 -> $time2 Numero_registros_ingestados: ${L[2]}" >> $ruta/LOGS_INGESTA/TABLAS_EXITOSAS
else
echo "Estatus de la ejecucion: Failed"
#sudo echo "Error_archivo $tab_infost Tiempo: $time0 $time1" Numero_registros: ${L[2]} >> $ruta/log_error_ingesta
sudo echo $time1 $tablaname $tab_infost ${L[2]} >> $ruta/LOGS_INGESTA/TABLAS_FALTANTES
fi
#break
#Esperar ingesta
else
continue
#echo "Tabla $tablaname vacia, esperando sea llenada..." # Ejecutar ingesta
#while
fi
else
echo "El Count de la tabla no es un entero"
sudo echo "Error: $tablename $tab_infost ${L[2]}" >> $ruta/LOGS_INGESTA/TABLAS_ERROR
fi
done < $file
wait
date1="$(date "%Y-%m-%d - %H:%M:%S")"
fecha_flujo_final="$(date %s)"
#echo "Timestamp final $fecha_flujo_final"
#t_delta=$((fecha_flujo_final - fecha_flujo_inicio))
sudo echo "Flujo: $file, Fechas: $date0 -> $date1, Tiempo trancurrido: $((fecha_flujo_final - fecha_flujo_inicio)) segundos" >> $ruta/LOGS_INGESTA/FLUJOS_LOG
echo "TERMINO EL FLUJO $file"
ошибка, которая отмечается, заключается в следующем: ТАКОГО ФАЙЛА ИЛИ КАТАЛОГА НЕТ
Комментарии:
1. Каков абсолютный путь к файлу?
2. /opt/IBM/db2/V11.1/bin/
3. Я имею в виду, каков абсолютный путь к FLUJOS/flujo_01, так как именно этот файл вы с трудом открываете
4. Относительные пути интерпретируются относительно каталога, в котором вы находитесь, а не каталога сценария. Поэтому аргументом должен быть абсолютный путь к
FLUJOS/flujo_01
файлу.5. путь ПОТОКОВ — /opt/IBM/db2/V11.1/bin/FLUJOS/flujos_01
Ответ №1:
Я работаю, добавляя абсолютный путь /opt/IBM/db2/V11.1/bin/script_ingesta_sudo_clean_paralelo.sh /opt/IBM/db2/V11.1/bin/FLUJOS/flujos_01 спасибо вам всем.