shell redhat 中没有这样的文件或目录

No such file or directory in shell redhat

我正在尝试从我的 redhat 7.9 机器中 运行 一个 .sh shell 与文件所在的位置不同,因为这是必需的。但是标记错误不是这样的文件或目录,尽管我传递了正确的路径标记错误。值得一提的是,如果在 shell 所在的路径执行,则执行没有问题,但需要能够在该文件系统之外执行。权限已经被授予文件系统,用户被分配到组,它仍然标记相同。

#!/bin/bash

file=
#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=$', ' 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"
        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=$', ' 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 &
        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 &
                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"

标记的错误是以下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: line 107: FLUJOS/flujo_01: No such file or directory
TERMINO EL FLUJO FLUJOS/flujo_01
[i2actinver@v2qlintfinan01 home]$

我的工作方式是添加绝对路径/opt/IBM/db2/V11.1/bin/script_ingesta_sudo_clean_paralelo.sh /opt/IBM/db2/V11.1/bin/FLUJOS/flujos_01谢谢大家。