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

2022-01-29 10:10:06 标签 linuxshellfilesystemsshredhat

我试图运行一个。sh shell从我的redhat 7。9机器在不同的位置,而不是文件,因为这是所需要的。但标记错误不是这样的文件或目录,虽然我传递正确的路径标记错误。值得一提的是,如果它被执行在shell驻留的路径上,那么它执行起来不会有问题,但是需要的是能够在文件系统之外执行它。权限已经被授予给文件系统,用户被分配到组,它仍然标记相同。

#!/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=$', ' 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"

标记的错误是下面的“没有这样的文件或目录”

[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_parelo 。sh

/opt/IBM/db2/V11。1/bin/FLUJOS/flujos_01谢谢大家。

阅读全文

▼ 版权说明

相关文章也很精彩
推荐内容
更多标签
相关热门
全站排行
随便看看

错说 cuoshuo.com —— 程序员的报错记录

部分内容根据CC版权协议转载;网站内容仅供参考,生产环境使用务必查阅官方文档

辽ICP备19011660号-5

×

扫码关注公众号:职场神器
发送: 1
获取永久解锁本站全部文章的验证码