LINUX.ORG.RU

Сообщения krdgroup

 

Загрузка в БД oracle developer результата выполнения bash скрипта

Добрый день. Есть БД oracle plsql developer с таблицей db.audit. Сама бд расположена на сервере 10.29.11.5 На другом компе 10.31.1.186 лежит скрипт test.sh который выводит определенную информацию в файл log.txt echo "info">>log.txt

В идеале нужно сделать чтобы данные писались не в лог а напрямую в бд. Но можно и брать их из log.txt.

Какой алгоритм действий тут должен быть и как это сделать? т.е. на сколько понимаю мне нужно создать скрипт где: а) идет подключение к бд по ip адресу с логиным паролем б) создается переменная которой присваивается результат выполнения echo «info»>>log.txt в) в бд передается значение этой переменной

 , , ,

krdgroup
()

не работает переход в соседний каталог

Есть 2 каталога 1./home/iumadma/test/ex/Rv3600/PROCESSED/BIS/WORK6 2./home/iumadma/test/NUMBER_OF_LINES/IUM01/p1/scripts

Во 2 каталоге лежит скрипт который должен записать лог в 1. Но он все равно пишет его во 2 каталог.В чем тут ошибка?

pathtofile=/home/iumadma/test/ex/Rv3600/PROCESSED/BIS/WORK6
cd $pathtofile
echo "test">>log.txt

 , ,

krdgroup
()

Bash. Суммировать и агрегировать вывод цикла

Есть скрипт который выводит кол-во строк\путь\дату:

month="$(date --date='1 day ago' +%y%m)"

for catalog in $(find ./ -type d -name "$month")
   do 
    sum=0
   find $catalog -type f -name "*.z" | while read FN 
   do   
    sum=$((sum+$(zcat $FN | awk 1 | wc -l)))
    echo "no of lines $sum;source $(find $catalog -type d );data $(date +"%d-%m-%Y %T")"
    done
done

Сейчас при каждом цикле накапливает результат и выводит:

no of lines 3;source ./AXE/CNA5/LBN/2211;data 01-12-2022 17:35:49
no of lines 6;source ./AXE/CNA5/LBN/2211;data 01-12-2022 17:35:50
no of lines 9;source ./AXE/CNA5/LBN/2211;data 01-12-2022 17:35:50
no of lines 13;source ./AXE/CNA5/LBN/2211;data 01-12-2022 17:35:51
no of lines 3;source ./AXE/TELLIN/2211;data 01-12-2022 17:35:51
no of lines 7;source ./AXE/TELLIN/2211;data 01-12-2022 17:35:51

Как сделать чтобы выводил

no of lines 13;source ./AXE/CNA5/LBN/2211;data 01-12-2022 17:35:51
no of lines 7;source ./AXE/TELLIN/2211;data 01-12-2022 17:35:51

 ,

krdgroup
()

как вывести полный путь к файлам

вывожу путь к нужной папке

p= find . -type d -name «$folder» #параметр $folder может меняться echo $p

результат - ./AXE/CNA5/LBN/2211

как вывести файлы в таком виде

./AXE/CNA5/LBN/2211/1.z ./AXE/CNA5/LBN/2211/234.z

т.е. все файлы которые находятся в данном каталоге

 , ,

krdgroup
()

bash посчитать количество строк в файле по заданному пути

Добрый день. Есть задача: Посчитать количество строк в файлах и записать в файл текущая дата\путь к файлу\количество строк . Причем если текущая дата 1 число то считаем предыдущий месяц (папка 2210), если не 1 то текущий месяц (2211)

Пока написал такой скрипт

#!/bin/bash

#заносим в переменную текущее число месяца

timestamp=$(date +%d)

#если сейчас 1 число то присваиваем переменной предыдущий месяц, иначе текущий

if [[ $timestamp == 1 ]]; then

folder= date -d " - $(date +%d) days" +%y%m

else

folder=$(date +%y%m)

fi

#находим путь до нужных файлов ($folder либо текущий либо предыдущий месяц)

find . ( -name «$folder» ) -exec ls ‘{}’ ;

Но тут возник вопрос - Как теперь посчитать кол-во строк в файлах по этому пути и записать в файл текущая дата\путь к файлу\количество строк

 , , , ,

krdgroup
()

RSS подписка на новые темы