我試圖從我的redhat 7.9機器上運行一個.sh shell,其位置與檔案的位置不同,因為這是所需要的。但是標記錯誤不是這樣的檔案或目錄,盡管我通過了正確的路徑標記錯誤。值得一提的是,如果在shell所在的路徑中執行定位,它執行起來沒有問題,但需要的是能夠在該檔案系統之外執行。權限已經被賦予了檔案系統,用戶被分配到了組,它仍然標記相同。
#!/bin/bash
file=$1。
#Ruta del proyecto scripts[/span]。
#ruta=/home/db2inst1
ruta=/opt/IBM/db2/V11.1/bin/。
#Conexion a db2
/opt/IBM/db2/V11.1/bin/db2 連接到 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"/span>
#Lectura del archivo con las tablas a ingestar
while IFS= read line; do
tablaname=$(cut -d " "/span> -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"/span> > test_log_count
#echo "des.2019" | "su - db2inst1 -c "db2 'select count(*) from IS_STAGING.$tablaname' " > test_log_count
IFS=$', ' 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 & $tab_infost"/span>
echo "############################################################"/span>
echo "###################### $tablaname ##########################"/span>
echo "############################################################"/span>
echo " Count consultado: $((Count)) "
if [[ ${L[2]} -eq 0 ]]; then
runtime="1分鐘"。
endtime=$(date -ud "$runtime"/span> %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"/span> > test_log_count
IFS=$', ' GLOBIGNORE='*' command eval 'L=($(cat test_log_count))'
if [[ ${L[2]} -eq 0 ]]; then
繼續。
else[/span
echo "########Se lleno la tabla...##########"
break
fi
done
fi fi
if [[ ${L[2]} -eq 0 ]]; then
echo "################NO HAY DATOS################"/span>
time0="$(date "%Y-%m-%d - %H:%M:%S"/span>)"
echo "###################### ESTA VACIA LA TABLA ##########################"/span>
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 "標簽 $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")"/span>
#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 &
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 &
睡眠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 -p importMode=STANDARD
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[/span
echo "Estatus de la ejecucion: 失敗"
#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[/span
else
繼續
#echo "Tabla $tablaname vacia, esperando sea llenada..." # Ejecutar ingesta
#while
fi
else
echo "El Count de la tabla no es un entero"
sudo echo "錯誤。$tablename $tab_infost ${L[2]}"/span> >> $ruta/LOGS_INGESTA/TABLAS_ERROR
FI
done < $file
等待
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"。
標記的錯誤是下面的NO SUCH FILE OR DIRECTORY。
[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: 107行。FLUJOS/flujo_01: 沒有這樣的檔案或目錄
TERMINO EL FLUJO FLUJOS/flujo_01
[i2actinver@v2qlintfinan01 home]$
uj5u.com熱心網友回復:
我通過添加絕對路徑/opt/IBM/db2/V11.1/bin/script_ingesta_sudo_clean_paralelo.sh來作業。 /opt/IBM/db2/V11.1/bin/FLUJOS/flujos_01 謝謝大家。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/327316.html
標籤:
